This commit is contained in:
Campbell Barton 2011-09-03 12:57:33 +00:00
commit 58227c1016
45 changed files with 633 additions and 645 deletions

@ -88,7 +88,7 @@ typedef unsigned long uintptr_t;
#define _UINTPTR_T_DEFINED
#endif
#elif defined(__linux__) || defined(__NetBSD__)
#elif defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__)
/* Linux-i386, Linux-Alpha, Linux-ppc */
#include <stdint.h>

@ -89,7 +89,7 @@ typedef unsigned long uintptr_t;
#define _UINTPTR_T_DEFINED
#endif
#elif defined(__linux__) || defined(__NetBSD__)
#elif defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__)
/* Linux-i386, Linux-Alpha, Linux-ppc */
#include <stdint.h>

@ -1023,46 +1023,70 @@ static void layerInterp_shapekey(void **sources, float *weights,
}
}
/* note, these numbered comments below are copied from trunk,
* while _most_ match, some at the end need adding and are out of sync */
static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
/* 0: CD_MVERT */
{sizeof(MVert), "MVert", 1, NULL, NULL, NULL, NULL, NULL, NULL},
/* 1: CD_MSTICKY */
{sizeof(MSticky), "MSticky", 1, NULL, NULL, NULL, layerInterp_msticky, NULL,
NULL},
/* 2: CD_MDEFORMVERT */
{sizeof(MDeformVert), "MDeformVert", 1, NULL, layerCopy_mdeformvert,
layerFree_mdeformvert, layerInterp_mdeformvert, NULL, NULL},
/* 3: CD_MEDGE */
{sizeof(MEdge), "MEdge", 1, NULL, NULL, NULL, NULL, NULL, NULL},
/* 4: CD_MFACE */
{sizeof(MFace), "MFace", 1, NULL, NULL, NULL, NULL, NULL, NULL},
/* 5: CD_MTFACE */
{sizeof(MTFace), "MTFace", 1, "UVTex", layerCopy_tface, NULL,
layerInterp_tface, layerSwap_tface, layerDefault_tface},
/* 6: CD_MCOL */
/* 4 MCol structs per face */
{sizeof(MCol)*4, "MCol", 4, "Col", NULL, NULL, layerInterp_mcol,
layerSwap_mcol, layerDefault_mcol},
/* 7: CD_ORIGINDEX */
{sizeof(int), "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 8: CD_NORMAL */
/* 3 floats per normal vector */
{sizeof(float)*3, "vec3f", 1, NULL, NULL, NULL, NULL, NULL, NULL},
/* 9: CD_FLAGS */
{sizeof(int), "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 10: CD_PROP_FLT */
{sizeof(MFloatProperty), "MFloatProperty",1,"Float", layerCopy_propFloat,NULL,NULL,NULL},
/* 11: CD_PROP_INT */
{sizeof(MIntProperty), "MIntProperty",1,"Int",layerCopy_propInt,NULL,NULL,NULL},
/* 12: CD_PROP_STR */
{sizeof(MStringProperty), "MStringProperty",1,"String",layerCopy_propString,NULL,NULL,NULL},
/* 13: CD_ORIGSPACE */
{sizeof(OrigSpaceFace), "OrigSpaceFace", 1, "UVTex", layerCopy_origspace_face, NULL,
layerInterp_origspace_face, layerSwap_origspace_face, layerDefault_origspace_face},
/* 14: CD_ORCO */
{sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 15: CD_MTEXPOLY */
{sizeof(MTexPoly), "MTexPoly", 1, "Face Texture", NULL, NULL, NULL, NULL, NULL},
/* 16: CD_MLOOPUV */
{sizeof(MLoopUV), "MLoopUV", 1, "UV coord", NULL, NULL, layerInterp_mloopuv, NULL, NULL,
layerEqual_mloopuv, layerMultiply_mloopuv, layerInitMinMax_mloopuv,
layerAdd_mloopuv, layerDoMinMax_mloopuv, layerCopyValue_mloopuv},
/* 17: CD_MLOOPCOL */
{sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL,
layerDefault_mloopcol, layerEqual_mloopcol, layerMultiply_mloopcol, layerInitMinMax_mloopcol,
layerAdd_mloopcol, layerDoMinMax_mloopcol, layerCopyValue_mloopcol},
{sizeof(float)*4*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 19: CD_MDISPS */
{sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps,
layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
layerRead_mdisps, layerWrite_mdisps, layerFilesize_mdisps, layerValidate_mdisps},
/* 20: CD_WEIGHT_MCOL */
{sizeof(MCol)*4, "MCol", 4, "WeightCol", NULL, NULL, layerInterp_mcol,
layerSwap_mcol, layerDefault_mcol},
{sizeof(MPoly), "MPoly", 1, "NGon Face", NULL, NULL, NULL, NULL, NULL},
{sizeof(MLoop), "MLoop", 1, "NGon Face-Vertex", NULL, NULL, NULL, NULL, NULL},
{sizeof(float)*3, "", 0, "ClothOrco", NULL, NULL, layerInterp_shapekey},
/* 21: CD_ID_MCOL */
{sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol,
layerSwap_mcol, layerDefault_mcol},
{sizeof(MCol)*4, "MCol", 4, "TextureCol", NULL, NULL, layerInterp_mcol,

@ -83,7 +83,7 @@ typedef unsigned long uintptr_t;
#define _UINTPTR_T_DEFINED
#endif
#elif defined(__linux__) || defined(__NetBSD__)
#elif defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__)
/* Linux-i386, Linux-Alpha, Linux-ppc */
#include <stdint.h>

@ -770,7 +770,11 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol)
glColor4f(0.f, 0.f, 0.f, 0.3f);
uiSetRoundBox(15);
uiDrawBox(GL_POLYGON, rect.xmin-1, rect.ymin-1, rect.xmax+1, rect.ymax+1, 3.0f);
/* need scissor test, histogram can draw outside of boundary */
glGetIntegerv(GL_VIEWPORT, scissor);
glScissor(ar->winrct.xmin + (rect.xmin-1), ar->winrct.ymin+(rect.ymin-1), (rect.xmax+1)-(rect.xmin-1), (rect.ymax+1)-(rect.ymin-1));
glColor4f(1.f, 1.f, 1.f, 0.08f);
/* draw grid lines here */
for (i=1; i<4; i++) {
@ -778,10 +782,6 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol)
fdrawline(rect.xmin+(i/4.f)*w, rect.ymin, rect.xmin+(i/4.f)*w, rect.ymax);
}
/* need scissor test, histogram can draw outside of boundary */
glGetIntegerv(GL_VIEWPORT, scissor);
glScissor(ar->winrct.xmin + (rect.xmin-1), ar->winrct.ymin+(rect.ymin-1), (rect.xmax+1)-(rect.xmin-1), (rect.ymax+1)-(rect.ymin-1));
if (hist->mode == HISTO_MODE_LUMA)
histogram_draw_one(1.0, 1.0, 1.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_luma, res);
else {

@ -1414,6 +1414,8 @@ static int forcefield_toggle_exec(bContext *C, wmOperator *UNUSED(op))
else
ob->pd->forcefield = 0;
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL);
return OPERATOR_FINISHED;
}

@ -184,7 +184,11 @@ static void rna_DomainFluidSettings_memory_estimate_get(PointerRNA *ptr, char *v
static int rna_DomainFluidSettings_memory_estimate_length(PointerRNA *ptr)
{
return 32;
#ifdef DISABLE_ELBEEM
return 0;
#else
return 31;
#endif
}
static char *rna_FluidSettings_path(PointerRNA *ptr)

@ -208,77 +208,34 @@ PyObject *PyC_Object_GetAttrStringArgs(PyObject *o, Py_ssize_t n, ...)
return item;
}
/* returns the exception string as a new PyUnicode object, depends on external StringIO module */
/* returns the exception string as a new PyUnicode object, depends on external traceback module */
PyObject *PyC_ExceptionBuffer(void)
{
PyObject *stdout_backup = PySys_GetObject("stdout"); /* borrowed */
PyObject *stderr_backup = PySys_GetObject("stderr"); /* borrowed */
PyObject *string_io = NULL;
PyObject *string_io_buf = NULL;
PyObject *string_io_mod= NULL;
PyObject *string_io_getvalue= NULL;
PyObject *error_type, *error_value, *error_traceback;
if (!PyErr_Occurred())
return NULL;
PyErr_Fetch(&error_type, &error_value, &error_traceback);
PyErr_Clear();
/* import io
* string_io = io.StringIO()
*/
if(! (string_io_mod= PyImport_ImportModule("io")) ) {
PyObject *traceback_mod= NULL;
PyObject *format_tb_func= NULL;
PyObject *ret= NULL;
if(! (traceback_mod= PyImport_ImportModule("traceback")) ) {
goto error_cleanup;
}
else if (! (string_io = PyObject_CallMethod(string_io_mod, (char *)"StringIO", NULL))) {
else if (! (format_tb_func= PyObject_GetAttrString(traceback_mod, "format_exc"))) {
goto error_cleanup;
}
else if (! (string_io_getvalue= PyObject_GetAttrString(string_io, "getvalue"))) {
goto error_cleanup;
ret= PyObject_CallObject(format_tb_func, NULL);
if(ret == Py_None) {
Py_DECREF(ret);
ret= NULL;
}
Py_INCREF(stdout_backup); // since these were borrowed we dont want them freed when replaced.
Py_INCREF(stderr_backup);
PySys_SetObject("stdout", string_io); // both of these are free'd when restoring
PySys_SetObject("stderr", string_io);
PyErr_Restore(error_type, error_value, error_traceback);
PyErr_Print(); /* print the error */
PyErr_Clear();
string_io_buf = PyObject_CallObject(string_io_getvalue, NULL);
PySys_SetObject("stdout", stdout_backup);
PySys_SetObject("stderr", stderr_backup);
Py_DECREF(stdout_backup); /* now sys owns the ref again */
Py_DECREF(stderr_backup);
Py_DECREF(string_io_mod);
Py_DECREF(string_io_getvalue);
Py_DECREF(string_io); /* free the original reference */
PyErr_Clear();
return string_io_buf;
error_cleanup:
/* could not import the module so print the error and close */
Py_XDECREF(string_io_mod);
Py_XDECREF(string_io);
PyErr_Restore(error_type, error_value, error_traceback);
PyErr_Print(); /* print the error */
PyErr_Clear();
return NULL;
}
Py_XDECREF(traceback_mod);
Py_XDECREF(format_tb_func);
return ret;
}
/* string conversion, escape non-unicode chars, coerce must be set to NULL */
const char *PyC_UnicodeAsByte(PyObject *py_str, PyObject **coerce)

@ -4631,28 +4631,28 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject
/* note: tp_base member is set to &PyType_Type on init */
PyTypeObject pyrna_struct_meta_idprop_Type= {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_struct_meta_idprop", /* tp_name */
sizeof(PyHeapTypeObject), /* tp_basicsize */ // XXX, would be PyTypeObject, but subtypes of Type must be PyHeapTypeObject's
0, /* tp_itemsize */
"bpy_struct_meta_idprop", /* tp_name */
sizeof(PyHeapTypeObject), /* tp_basicsize */ // XXX, would be PyTypeObject, but subtypes of Type must be PyHeapTypeObject's
0, /* tp_itemsize */
/* methods */
NULL, /* tp_dealloc */
NULL, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* deprecated in python 3.0! */
NULL, /* tp_repr */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* deprecated in python 3.0! */
NULL, /* tp_repr */
/* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */
NULL /*(getattrofunc) pyrna_struct_meta_idprop_getattro*/, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_struct_meta_idprop_setattro, /* setattrofunc tp_setattro; */
NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */
NULL /*(getattrofunc) pyrna_struct_meta_idprop_getattro*/, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_struct_meta_idprop_setattro, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */
@ -4660,7 +4660,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */
NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */
@ -4670,7 +4670,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
/*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/
NULL, /* richcmpfunc tp_richcompare; */
NULL, /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
0, /* long tp_weaklistoffset; */
@ -4681,9 +4681,9 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */
@ -4691,7 +4691,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */
NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */
NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */
@ -4709,45 +4709,45 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
/*-----------------------BPy_StructRNA method def------------------------------*/
PyTypeObject pyrna_struct_Type= {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_struct", /* tp_name */
sizeof(BPy_StructRNA), /* tp_basicsize */
0, /* tp_itemsize */
"bpy_struct", /* tp_name */
sizeof(BPy_StructRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
(destructor) pyrna_struct_dealloc,/* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_struct_repr, /* tp_repr */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_struct_repr, /* tp_repr */
/* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */
&pyrna_struct_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_struct_as_mapping, /* PyMappingMethods *tp_as_mapping; */
&pyrna_struct_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_struct_as_mapping, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
(hashfunc) pyrna_struct_hash, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
(hashfunc) pyrna_struct_hash, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
(reprfunc) pyrna_struct_str, /* reprfunc tp_str; */
(getattrofunc) pyrna_struct_getattro, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_struct_setattro, /* setattrofunc tp_setattro; */
(getattrofunc) pyrna_struct_getattro, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_struct_setattro, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /* long tp_flags; */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */
NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
#ifdef USE_PYRNA_STRUCT_REFERENCE
(traverseproc) pyrna_struct_traverse, /* traverseproc tp_traverse; */
(traverseproc) pyrna_struct_traverse, /* traverseproc tp_traverse; */
/* delete references to contained objects */
(inquiry)pyrna_struct_clear, /* inquiry tp_clear; */
(inquiry)pyrna_struct_clear, /* inquiry tp_clear; */
#else
NULL, /* traverseproc tp_traverse; */
@ -4757,11 +4757,11 @@ PyTypeObject pyrna_struct_Type= {
/*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/
(richcmpfunc)pyrna_struct_richcmp, /* richcmpfunc tp_richcompare; */
(richcmpfunc)pyrna_struct_richcmp, /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
#ifdef USE_WEAKREFS
offsetof(BPy_StructRNA, in_weakreflist), /* long tp_weaklistoffset; */
offsetof(BPy_StructRNA, in_weakreflist), /* long tp_weaklistoffset; */
#else
0,
#endif
@ -4771,9 +4771,9 @@ PyTypeObject pyrna_struct_Type= {
NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
pyrna_struct_methods, /* struct PyMethodDef *tp_methods; */
pyrna_struct_methods, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
pyrna_struct_getseters, /* struct PyGetSetDef *tp_getset; */
pyrna_struct_getseters, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */
@ -4781,7 +4781,7 @@ PyTypeObject pyrna_struct_Type= {
0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */
pyrna_struct_new, /* newfunc tp_new; */
pyrna_struct_new, /* newfunc tp_new; */
/* Low-level free-memory routine */
NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */
@ -4798,32 +4798,32 @@ PyTypeObject pyrna_struct_Type= {
/*-----------------------BPy_PropertyRNA method def------------------------------*/
PyTypeObject pyrna_prop_Type= {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */
"bpy_prop", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
(destructor) pyrna_prop_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_prop_repr, /* tp_repr */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_prop_repr, /* tp_repr */
/* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
(hashfunc) pyrna_prop_hash, /* hashfunc tp_hash; */
(hashfunc) pyrna_prop_hash, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
(reprfunc) pyrna_prop_str, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */
NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */
@ -4831,7 +4831,7 @@ PyTypeObject pyrna_prop_Type= {
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */
NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */
@ -4852,11 +4852,11 @@ PyTypeObject pyrna_prop_Type= {
/*** Added in release 2.2 ***/
/* Iterators */
NULL, /* getiterfunc tp_iter; */
NULL, /* getiterfunc tp_iter; */
NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
pyrna_prop_methods, /* struct PyMethodDef *tp_methods; */
pyrna_prop_methods, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
pyrna_prop_getseters, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */
@ -4866,7 +4866,7 @@ PyTypeObject pyrna_prop_Type= {
0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */
pyrna_prop_new, /* newfunc tp_new; */
pyrna_prop_new, /* newfunc tp_new; */
/* Low-level free-memory routine */
NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */
@ -4888,34 +4888,34 @@ PyTypeObject pyrna_prop_array_Type= {
/* methods */
(destructor)pyrna_prop_array_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL,/* subclassed */ /* tp_repr */
/* Method suites for standard classes */
&pyrna_prop_array_as_number, /* PyNumberMethods *tp_as_number; */
&pyrna_prop_array_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_prop_array_as_mapping, /* PyMappingMethods *tp_as_mapping; */
&pyrna_prop_array_as_number, /* PyNumberMethods *tp_as_number; */
&pyrna_prop_array_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_prop_array_as_mapping, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */
NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */
(getattrofunc) pyrna_prop_array_getattro, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
(getattrofunc) pyrna_prop_array_getattro, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */
NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */
@ -4925,7 +4925,7 @@ PyTypeObject pyrna_prop_array_Type= {
/*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/
NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */
NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
#ifdef USE_WEAKREFS
@ -4939,22 +4939,22 @@ PyTypeObject pyrna_prop_array_Type= {
NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
pyrna_prop_array_methods, /* struct PyMethodDef *tp_methods; */
pyrna_prop_array_methods, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_Type, /* struct _typeobject *tp_base; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_Type, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */
NULL, /* descrsetfunc tp_descr_set; */
0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */
NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */
NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */
NULL, /* inquiry tp_is_gc; */
NULL, /* PyObject *tp_bases; */
NULL, /* PyObject *tp_bases; */
/* method resolution order */
NULL, /* PyObject *tp_mro; */
NULL, /* PyObject *tp_cache; */
@ -4965,32 +4965,32 @@ PyTypeObject pyrna_prop_array_Type= {
PyTypeObject pyrna_prop_collection_Type= {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_collection", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */
"bpy_prop_collection", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
(destructor)pyrna_prop_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL, /* subclassed */ /* tp_repr */
/* Method suites for standard classes */
&pyrna_prop_collection_as_number, /* PyNumberMethods *tp_as_number; */
&pyrna_prop_collection_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_prop_collection_as_mapping, /* PyMappingMethods *tp_as_mapping; */
&pyrna_prop_collection_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_prop_collection_as_mapping, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */
NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */
(getattrofunc) pyrna_prop_collection_getattro, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_prop_collection_setattro, /* setattrofunc tp_setattro; */
(getattrofunc) pyrna_prop_collection_getattro, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_prop_collection_setattro, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */
@ -4998,7 +4998,7 @@ PyTypeObject pyrna_prop_collection_Type= {
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */
NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */
@ -5012,33 +5012,33 @@ PyTypeObject pyrna_prop_collection_Type= {
/*** weak reference enabler ***/
#ifdef USE_WEAKREFS
offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
#else
0,
#endif
/*** Added in release 2.2 ***/
/* Iterators */
(getiterfunc)pyrna_prop_collection_iter, /* getiterfunc tp_iter; */
(getiterfunc)pyrna_prop_collection_iter, /* getiterfunc tp_iter; */
NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
pyrna_prop_collection_methods, /* struct PyMethodDef *tp_methods; */
pyrna_prop_collection_methods, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_Type, /* struct _typeobject *tp_base; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_Type, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */
NULL, /* descrsetfunc tp_descr_set; */
0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */
NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */
NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */
NULL, /* inquiry tp_is_gc; */
NULL, /* PyObject *tp_bases; */
NULL, /* PyObject *tp_bases; */
/* method resolution order */
NULL, /* PyObject *tp_mro; */
NULL, /* PyObject *tp_cache; */
@ -5050,32 +5050,32 @@ PyTypeObject pyrna_prop_collection_Type= {
/* only for add/remove/move methods */
static PyTypeObject pyrna_prop_collection_idprop_Type= {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_collection_idprop", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */
"bpy_prop_collection_idprop", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
(destructor)pyrna_prop_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL, /* subclassed */ /* tp_repr */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL, /* subclassed */ /* tp_repr */
/* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */
NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */
NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */
@ -5083,7 +5083,7 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= {
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */
NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */
@ -5097,33 +5097,33 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= {
/*** weak reference enabler ***/
#ifdef USE_WEAKREFS
offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
#else
0,
#endif
/*** Added in release 2.2 ***/
/* Iterators */
NULL, /* getiterfunc tp_iter; */
NULL, /* getiterfunc tp_iter; */
NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
pyrna_prop_collection_idprop_methods, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_collection_Type, /* struct _typeobject *tp_base; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_collection_Type,/* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */
NULL, /* descrsetfunc tp_descr_set; */
0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */
NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */
NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */
NULL, /* inquiry tp_is_gc; */
NULL, /* PyObject *tp_bases; */
NULL, /* PyObject *tp_bases; */
/* method resolution order */
NULL, /* PyObject *tp_mro; */
NULL, /* PyObject *tp_cache; */
@ -5135,32 +5135,32 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= {
/*-----------------------BPy_PropertyRNA method def------------------------------*/
PyTypeObject pyrna_func_Type= {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_func", /* tp_name */
sizeof(BPy_FunctionRNA), /* tp_basicsize */
0, /* tp_itemsize */
"bpy_func", /* tp_name */
sizeof(BPy_FunctionRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
NULL, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_func_repr, /* tp_repr */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_func_repr, /* tp_repr */
/* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */
(ternaryfunc)pyrna_func_call, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */
NULL, /* hashfunc tp_hash; */
(ternaryfunc)pyrna_func_call, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */
NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */
@ -5168,7 +5168,7 @@ PyTypeObject pyrna_func_Type= {
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */
NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */
@ -5178,7 +5178,7 @@ PyTypeObject pyrna_func_Type= {
/*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/
NULL, /* richcmpfunc tp_richcompare; */
NULL, /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
#ifdef USE_WEAKREFS
@ -5189,13 +5189,13 @@ PyTypeObject pyrna_func_Type= {
/*** Added in release 2.2 ***/
/* Iterators */
NULL, /* getiterfunc tp_iter; */
NULL, /* getiterfunc tp_iter; */
NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */
@ -5203,7 +5203,7 @@ PyTypeObject pyrna_func_Type= {
0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */
NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */
NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */
@ -5231,32 +5231,32 @@ static PyObject *pyrna_prop_collection_iter_next(BPy_PropertyCollectionIterRNA *
PyTypeObject pyrna_prop_collection_iter_Type= {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_collection_iter", /* tp_name */
sizeof(BPy_PropertyCollectionIterRNA), /* tp_basicsize */
0, /* tp_itemsize */
"bpy_prop_collection_iter", /* tp_name */
sizeof(BPy_PropertyCollectionIterRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
(destructor)pyrna_prop_collection_iter_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL,/* subclassed */ /* tp_repr */
/* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */
NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */
PyObject_GenericGetAttr, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
PyObject_GenericGetAttr, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */
@ -5264,7 +5264,7 @@ PyTypeObject pyrna_prop_collection_iter_Type= {
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */
NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */
@ -5278,19 +5278,19 @@ PyTypeObject pyrna_prop_collection_iter_Type= {
/*** weak reference enabler ***/
#ifdef USE_WEAKREFS
offsetof(BPy_PropertyCollectionIterRNA, in_weakreflist), /* long tp_weaklistoffset; */
offsetof(BPy_PropertyCollectionIterRNA, in_weakreflist), /* long tp_weaklistoffset; */
#else
0,
#endif
/*** Added in release 2.2 ***/
/* Iterators */
PyObject_SelfIter, /* getiterfunc tp_iter; */
(iternextfunc) pyrna_prop_collection_iter_next, /* iternextfunc tp_iternext; */
PyObject_SelfIter, /* getiterfunc tp_iter; */
(iternextfunc) pyrna_prop_collection_iter_next, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */
@ -5298,12 +5298,12 @@ PyTypeObject pyrna_prop_collection_iter_Type= {
0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */
NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */
NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */
NULL, /* inquiry tp_is_gc; */
NULL, /* PyObject *tp_bases; */
NULL, /* PyObject *tp_bases; */
/* method resolution order */
NULL, /* PyObject *tp_mro; */
NULL, /* PyObject *tp_cache; */

@ -51,197 +51,195 @@
/**
Base Class for Blender specific inputdevices. Blender specific inputdevices are used when the gameengine is running in embedded mode instead of standalone mode.
*/
class BL_BlenderInputDevice : public SCA_IInputDevice
class BL_BlenderInputDevice : public SCA_IInputDevice
{
// this map is Blender specific: a conversion between blender and ketsji enums
std::map<int,KX_EnumInputs> m_reverseKeyTranslateTable;
public:
BL_BlenderInputDevice()
{
/* The reverse table. In order to not confuse ourselves, we */
/* immediately convert all events that come in to KX codes. */
m_reverseKeyTranslateTable[LEFTMOUSE ] = KX_LEFTMOUSE ;
m_reverseKeyTranslateTable[MIDDLEMOUSE ] = KX_MIDDLEMOUSE ;
m_reverseKeyTranslateTable[RIGHTMOUSE ] = KX_RIGHTMOUSE ;
m_reverseKeyTranslateTable[WHEELUPMOUSE ] = KX_WHEELUPMOUSE ;
m_reverseKeyTranslateTable[WHEELDOWNMOUSE ] = KX_WHEELDOWNMOUSE ;
m_reverseKeyTranslateTable[MOUSEX ] = KX_MOUSEX ;
m_reverseKeyTranslateTable[MOUSEY ] = KX_MOUSEY ;
// TIMERS
BL_BlenderInputDevice()
{
m_reverseKeyTranslateTable[TIMER0 ] = KX_TIMER0 ;
m_reverseKeyTranslateTable[TIMER1 ] = KX_TIMER1 ;
m_reverseKeyTranslateTable[TIMER2 ] = KX_TIMER2 ;
// SYSTEM
#if 0
/* **** XXX **** */
m_reverseKeyTranslateTable[KEYBD ] = KX_KEYBD ;
m_reverseKeyTranslateTable[RAWKEYBD ] = KX_RAWKEYBD ;
m_reverseKeyTranslateTable[REDRAW ] = KX_REDRAW ;
m_reverseKeyTranslateTable[INPUTCHANGE ] = KX_INPUTCHANGE ;
m_reverseKeyTranslateTable[QFULL ] = KX_QFULL ;
m_reverseKeyTranslateTable[WINFREEZE ] = KX_WINFREEZE ;
m_reverseKeyTranslateTable[WINTHAW ] = KX_WINTHAW ;
m_reverseKeyTranslateTable[WINCLOSE ] = KX_WINCLOSE ;
m_reverseKeyTranslateTable[WINQUIT ] = KX_WINQUIT ;
m_reverseKeyTranslateTable[Q_FIRSTTIME ] = KX_Q_FIRSTTIME ;
/* **** XXX **** */
#endif
// standard keyboard
m_reverseKeyTranslateTable[AKEY ] = KX_AKEY ;
m_reverseKeyTranslateTable[BKEY ] = KX_BKEY ;
m_reverseKeyTranslateTable[CKEY ] = KX_CKEY ;
m_reverseKeyTranslateTable[DKEY ] = KX_DKEY ;
m_reverseKeyTranslateTable[EKEY ] = KX_EKEY ;
m_reverseKeyTranslateTable[FKEY ] = KX_FKEY ;
m_reverseKeyTranslateTable[GKEY ] = KX_GKEY ;
//XXX clean up
/* The reverse table. In order to not confuse ourselves, we */
/* immediately convert all events that come in to KX codes. */
m_reverseKeyTranslateTable[LEFTMOUSE ] = KX_LEFTMOUSE;
m_reverseKeyTranslateTable[MIDDLEMOUSE ] = KX_MIDDLEMOUSE;
m_reverseKeyTranslateTable[RIGHTMOUSE ] = KX_RIGHTMOUSE;
m_reverseKeyTranslateTable[WHEELUPMOUSE ] = KX_WHEELUPMOUSE;
m_reverseKeyTranslateTable[WHEELDOWNMOUSE ] = KX_WHEELDOWNMOUSE;
m_reverseKeyTranslateTable[MOUSEX ] = KX_MOUSEX;
m_reverseKeyTranslateTable[MOUSEY ] = KX_MOUSEY;
// TIMERS
m_reverseKeyTranslateTable[TIMER0 ] = KX_TIMER0;
m_reverseKeyTranslateTable[TIMER1 ] = KX_TIMER1;
m_reverseKeyTranslateTable[TIMER2 ] = KX_TIMER2;
// SYSTEM
#if 0
/* **** XXX **** */
m_reverseKeyTranslateTable[KEYBD ] = KX_KEYBD;
m_reverseKeyTranslateTable[RAWKEYBD ] = KX_RAWKEYBD;
m_reverseKeyTranslateTable[REDRAW ] = KX_REDRAW;
m_reverseKeyTranslateTable[INPUTCHANGE ] = KX_INPUTCHANGE;
m_reverseKeyTranslateTable[QFULL ] = KX_QFULL;
m_reverseKeyTranslateTable[WINFREEZE ] = KX_WINFREEZE;
m_reverseKeyTranslateTable[WINTHAW ] = KX_WINTHAW;
m_reverseKeyTranslateTable[WINCLOSE ] = KX_WINCLOSE;
m_reverseKeyTranslateTable[WINQUIT ] = KX_WINQUIT;
m_reverseKeyTranslateTable[Q_FIRSTTIME ] = KX_Q_FIRSTTIME;
/* **** XXX **** */
#endif
// standard keyboard
m_reverseKeyTranslateTable[AKEY ] = KX_AKEY;
m_reverseKeyTranslateTable[BKEY ] = KX_BKEY;
m_reverseKeyTranslateTable[CKEY ] = KX_CKEY;
m_reverseKeyTranslateTable[DKEY ] = KX_DKEY;
m_reverseKeyTranslateTable[EKEY ] = KX_EKEY;
m_reverseKeyTranslateTable[FKEY ] = KX_FKEY;
m_reverseKeyTranslateTable[GKEY ] = KX_GKEY;
//XXX clean up
#ifdef WIN32
#define HKEY 'h'
#endif
m_reverseKeyTranslateTable[HKEY ] = KX_HKEY ;
//XXX clean up
m_reverseKeyTranslateTable[HKEY ] = KX_HKEY;
//XXX clean up
#ifdef WIN32
#undef HKEY
#endif
m_reverseKeyTranslateTable[IKEY ] = KX_IKEY ;
m_reverseKeyTranslateTable[JKEY ] = KX_JKEY ;
m_reverseKeyTranslateTable[KKEY ] = KX_KKEY ;
m_reverseKeyTranslateTable[LKEY ] = KX_LKEY ;
m_reverseKeyTranslateTable[MKEY ] = KX_MKEY ;
m_reverseKeyTranslateTable[NKEY ] = KX_NKEY ;
m_reverseKeyTranslateTable[OKEY ] = KX_OKEY ;
m_reverseKeyTranslateTable[PKEY ] = KX_PKEY ;
m_reverseKeyTranslateTable[QKEY ] = KX_QKEY ;
m_reverseKeyTranslateTable[RKEY ] = KX_RKEY ;
m_reverseKeyTranslateTable[SKEY ] = KX_SKEY ;
m_reverseKeyTranslateTable[TKEY ] = KX_TKEY ;
m_reverseKeyTranslateTable[UKEY ] = KX_UKEY ;
m_reverseKeyTranslateTable[VKEY ] = KX_VKEY ;
m_reverseKeyTranslateTable[WKEY ] = KX_WKEY ;
m_reverseKeyTranslateTable[XKEY ] = KX_XKEY ;
m_reverseKeyTranslateTable[YKEY ] = KX_YKEY ;
m_reverseKeyTranslateTable[ZKEY ] = KX_ZKEY ;
m_reverseKeyTranslateTable[ZEROKEY ] = KX_ZEROKEY ;
m_reverseKeyTranslateTable[ONEKEY ] = KX_ONEKEY ;
m_reverseKeyTranslateTable[TWOKEY ] = KX_TWOKEY ;
m_reverseKeyTranslateTable[THREEKEY ] = KX_THREEKEY ;
m_reverseKeyTranslateTable[FOURKEY ] = KX_FOURKEY ;
m_reverseKeyTranslateTable[FIVEKEY ] = KX_FIVEKEY ;
m_reverseKeyTranslateTable[SIXKEY ] = KX_SIXKEY ;
m_reverseKeyTranslateTable[SEVENKEY ] = KX_SEVENKEY ;
m_reverseKeyTranslateTable[EIGHTKEY ] = KX_EIGHTKEY ;
m_reverseKeyTranslateTable[NINEKEY ] = KX_NINEKEY ;
m_reverseKeyTranslateTable[CAPSLOCKKEY ] = KX_CAPSLOCKKEY ;
m_reverseKeyTranslateTable[LEFTCTRLKEY ] = KX_LEFTCTRLKEY ;
m_reverseKeyTranslateTable[LEFTALTKEY ] = KX_LEFTALTKEY ;
m_reverseKeyTranslateTable[RIGHTALTKEY ] = KX_RIGHTALTKEY ;
m_reverseKeyTranslateTable[RIGHTCTRLKEY ] = KX_RIGHTCTRLKEY ;
m_reverseKeyTranslateTable[RIGHTSHIFTKEY ] = KX_RIGHTSHIFTKEY ;
m_reverseKeyTranslateTable[LEFTSHIFTKEY ] = KX_LEFTSHIFTKEY ;
m_reverseKeyTranslateTable[ESCKEY ] = KX_ESCKEY ;
m_reverseKeyTranslateTable[TABKEY ] = KX_TABKEY ;
m_reverseKeyTranslateTable[RETKEY ] = KX_RETKEY ;
m_reverseKeyTranslateTable[SPACEKEY ] = KX_SPACEKEY ;
m_reverseKeyTranslateTable[LINEFEEDKEY ] = KX_LINEFEEDKEY ;
m_reverseKeyTranslateTable[BACKSPACEKEY ] = KX_BACKSPACEKEY ;
m_reverseKeyTranslateTable[DELKEY ] = KX_DELKEY ;
m_reverseKeyTranslateTable[SEMICOLONKEY ] = KX_SEMICOLONKEY ;
m_reverseKeyTranslateTable[PERIODKEY ] = KX_PERIODKEY ;
m_reverseKeyTranslateTable[COMMAKEY ] = KX_COMMAKEY ;
m_reverseKeyTranslateTable[QUOTEKEY ] = KX_QUOTEKEY ;
m_reverseKeyTranslateTable[ACCENTGRAVEKEY ] = KX_ACCENTGRAVEKEY ;
m_reverseKeyTranslateTable[MINUSKEY ] = KX_MINUSKEY ;
m_reverseKeyTranslateTable[SLASHKEY ] = KX_SLASHKEY ;
m_reverseKeyTranslateTable[BACKSLASHKEY ] = KX_BACKSLASHKEY ;
m_reverseKeyTranslateTable[EQUALKEY ] = KX_EQUALKEY ;
m_reverseKeyTranslateTable[LEFTBRACKETKEY ] = KX_LEFTBRACKETKEY ;
m_reverseKeyTranslateTable[RIGHTBRACKETKEY ] = KX_RIGHTBRACKETKEY ;
m_reverseKeyTranslateTable[LEFTARROWKEY ] = KX_LEFTARROWKEY ;
m_reverseKeyTranslateTable[DOWNARROWKEY ] = KX_DOWNARROWKEY ;
m_reverseKeyTranslateTable[RIGHTARROWKEY ] = KX_RIGHTARROWKEY ;
m_reverseKeyTranslateTable[UPARROWKEY ] = KX_UPARROWKEY ;
m_reverseKeyTranslateTable[PAD2 ] = KX_PAD2 ;
m_reverseKeyTranslateTable[PAD4 ] = KX_PAD4 ;
m_reverseKeyTranslateTable[PAD6 ] = KX_PAD6 ;
m_reverseKeyTranslateTable[PAD8 ] = KX_PAD8 ;
m_reverseKeyTranslateTable[PAD1 ] = KX_PAD1 ;
m_reverseKeyTranslateTable[PAD3 ] = KX_PAD3 ;
m_reverseKeyTranslateTable[PAD5 ] = KX_PAD5 ;
m_reverseKeyTranslateTable[PAD7 ] = KX_PAD7 ;
m_reverseKeyTranslateTable[PAD9 ] = KX_PAD9 ;
m_reverseKeyTranslateTable[IKEY ] = KX_IKEY;
m_reverseKeyTranslateTable[JKEY ] = KX_JKEY;
m_reverseKeyTranslateTable[KKEY ] = KX_KKEY;
m_reverseKeyTranslateTable[LKEY ] = KX_LKEY;
m_reverseKeyTranslateTable[MKEY ] = KX_MKEY;
m_reverseKeyTranslateTable[NKEY ] = KX_NKEY;
m_reverseKeyTranslateTable[OKEY ] = KX_OKEY;
m_reverseKeyTranslateTable[PKEY ] = KX_PKEY;
m_reverseKeyTranslateTable[QKEY ] = KX_QKEY;
m_reverseKeyTranslateTable[RKEY ] = KX_RKEY;
m_reverseKeyTranslateTable[SKEY ] = KX_SKEY;
m_reverseKeyTranslateTable[TKEY ] = KX_TKEY;
m_reverseKeyTranslateTable[UKEY ] = KX_UKEY;
m_reverseKeyTranslateTable[VKEY ] = KX_VKEY;
m_reverseKeyTranslateTable[WKEY ] = KX_WKEY;
m_reverseKeyTranslateTable[XKEY ] = KX_XKEY;
m_reverseKeyTranslateTable[YKEY ] = KX_YKEY;
m_reverseKeyTranslateTable[ZKEY ] = KX_ZKEY;
m_reverseKeyTranslateTable[PADPERIOD ] = KX_PADPERIOD ;
m_reverseKeyTranslateTable[PADSLASHKEY ] = KX_PADSLASHKEY ;
m_reverseKeyTranslateTable[PADASTERKEY ] = KX_PADASTERKEY ;
m_reverseKeyTranslateTable[PAD0 ] = KX_PAD0 ;
m_reverseKeyTranslateTable[PADMINUS ] = KX_PADMINUS ;
m_reverseKeyTranslateTable[PADENTER ] = KX_PADENTER ;
m_reverseKeyTranslateTable[PADPLUSKEY ] = KX_PADPLUSKEY ;
m_reverseKeyTranslateTable[F1KEY ] = KX_F1KEY ;
m_reverseKeyTranslateTable[F2KEY ] = KX_F2KEY ;
m_reverseKeyTranslateTable[F3KEY ] = KX_F3KEY ;
m_reverseKeyTranslateTable[F4KEY ] = KX_F4KEY ;
m_reverseKeyTranslateTable[F5KEY ] = KX_F5KEY ;
m_reverseKeyTranslateTable[F6KEY ] = KX_F6KEY ;
m_reverseKeyTranslateTable[F7KEY ] = KX_F7KEY ;
m_reverseKeyTranslateTable[F8KEY ] = KX_F8KEY ;
m_reverseKeyTranslateTable[F9KEY ] = KX_F9KEY ;
m_reverseKeyTranslateTable[F10KEY ] = KX_F10KEY ;
m_reverseKeyTranslateTable[F11KEY ] = KX_F11KEY ;
m_reverseKeyTranslateTable[F12KEY ] = KX_F12KEY ;
m_reverseKeyTranslateTable[F13KEY ] = KX_F13KEY ;
m_reverseKeyTranslateTable[F14KEY ] = KX_F14KEY ;
m_reverseKeyTranslateTable[F15KEY ] = KX_F15KEY ;
m_reverseKeyTranslateTable[F16KEY ] = KX_F16KEY ;
m_reverseKeyTranslateTable[F17KEY ] = KX_F17KEY ;
m_reverseKeyTranslateTable[F18KEY ] = KX_F18KEY ;
m_reverseKeyTranslateTable[F19KEY ] = KX_F19KEY ;
m_reverseKeyTranslateTable[PAUSEKEY ] = KX_PAUSEKEY ;
m_reverseKeyTranslateTable[INSERTKEY ] = KX_INSERTKEY ;
m_reverseKeyTranslateTable[HOMEKEY ] = KX_HOMEKEY ;
m_reverseKeyTranslateTable[PAGEUPKEY ] = KX_PAGEUPKEY ;
m_reverseKeyTranslateTable[PAGEDOWNKEY ] = KX_PAGEDOWNKEY ;
m_reverseKeyTranslateTable[ENDKEY ] = KX_ENDKEY ;
m_reverseKeyTranslateTable[ZEROKEY ] = KX_ZEROKEY;
m_reverseKeyTranslateTable[ONEKEY ] = KX_ONEKEY;
m_reverseKeyTranslateTable[TWOKEY ] = KX_TWOKEY;
m_reverseKeyTranslateTable[THREEKEY ] = KX_THREEKEY;
m_reverseKeyTranslateTable[FOURKEY ] = KX_FOURKEY;
m_reverseKeyTranslateTable[FIVEKEY ] = KX_FIVEKEY;
m_reverseKeyTranslateTable[SIXKEY ] = KX_SIXKEY;
m_reverseKeyTranslateTable[SEVENKEY ] = KX_SEVENKEY;
m_reverseKeyTranslateTable[EIGHTKEY ] = KX_EIGHTKEY;
m_reverseKeyTranslateTable[NINEKEY ] = KX_NINEKEY;
}
m_reverseKeyTranslateTable[CAPSLOCKKEY ] = KX_CAPSLOCKKEY;
m_reverseKeyTranslateTable[LEFTCTRLKEY ] = KX_LEFTCTRLKEY;
m_reverseKeyTranslateTable[LEFTALTKEY ] = KX_LEFTALTKEY;
m_reverseKeyTranslateTable[RIGHTALTKEY ] = KX_RIGHTALTKEY;
m_reverseKeyTranslateTable[RIGHTCTRLKEY ] = KX_RIGHTCTRLKEY;
m_reverseKeyTranslateTable[RIGHTSHIFTKEY ] = KX_RIGHTSHIFTKEY;
m_reverseKeyTranslateTable[LEFTSHIFTKEY ] = KX_LEFTSHIFTKEY;
m_reverseKeyTranslateTable[ESCKEY ] = KX_ESCKEY;
m_reverseKeyTranslateTable[TABKEY ] = KX_TABKEY;
m_reverseKeyTranslateTable[RETKEY ] = KX_RETKEY;
m_reverseKeyTranslateTable[SPACEKEY ] = KX_SPACEKEY;
m_reverseKeyTranslateTable[LINEFEEDKEY ] = KX_LINEFEEDKEY;
m_reverseKeyTranslateTable[BACKSPACEKEY ] = KX_BACKSPACEKEY;
m_reverseKeyTranslateTable[DELKEY ] = KX_DELKEY;
m_reverseKeyTranslateTable[SEMICOLONKEY ] = KX_SEMICOLONKEY;
m_reverseKeyTranslateTable[PERIODKEY ] = KX_PERIODKEY;
m_reverseKeyTranslateTable[COMMAKEY ] = KX_COMMAKEY;
m_reverseKeyTranslateTable[QUOTEKEY ] = KX_QUOTEKEY;
m_reverseKeyTranslateTable[ACCENTGRAVEKEY ] = KX_ACCENTGRAVEKEY;
m_reverseKeyTranslateTable[MINUSKEY ] = KX_MINUSKEY;
m_reverseKeyTranslateTable[SLASHKEY ] = KX_SLASHKEY;
m_reverseKeyTranslateTable[BACKSLASHKEY ] = KX_BACKSLASHKEY;
m_reverseKeyTranslateTable[EQUALKEY ] = KX_EQUALKEY;
m_reverseKeyTranslateTable[LEFTBRACKETKEY ] = KX_LEFTBRACKETKEY;
m_reverseKeyTranslateTable[RIGHTBRACKETKEY ] = KX_RIGHTBRACKETKEY;
m_reverseKeyTranslateTable[LEFTARROWKEY ] = KX_LEFTARROWKEY;
m_reverseKeyTranslateTable[DOWNARROWKEY ] = KX_DOWNARROWKEY;
m_reverseKeyTranslateTable[RIGHTARROWKEY ] = KX_RIGHTARROWKEY;
m_reverseKeyTranslateTable[UPARROWKEY ] = KX_UPARROWKEY;
m_reverseKeyTranslateTable[PAD2 ] = KX_PAD2;
m_reverseKeyTranslateTable[PAD4 ] = KX_PAD4;
m_reverseKeyTranslateTable[PAD6 ] = KX_PAD6;
m_reverseKeyTranslateTable[PAD8 ] = KX_PAD8;
m_reverseKeyTranslateTable[PAD1 ] = KX_PAD1;
m_reverseKeyTranslateTable[PAD3 ] = KX_PAD3;
m_reverseKeyTranslateTable[PAD5 ] = KX_PAD5;
m_reverseKeyTranslateTable[PAD7 ] = KX_PAD7;
m_reverseKeyTranslateTable[PAD9 ] = KX_PAD9;
m_reverseKeyTranslateTable[PADPERIOD ] = KX_PADPERIOD;
m_reverseKeyTranslateTable[PADSLASHKEY ] = KX_PADSLASHKEY;
m_reverseKeyTranslateTable[PADASTERKEY ] = KX_PADASTERKEY;
m_reverseKeyTranslateTable[PAD0 ] = KX_PAD0;
m_reverseKeyTranslateTable[PADMINUS ] = KX_PADMINUS;
m_reverseKeyTranslateTable[PADENTER ] = KX_PADENTER;
m_reverseKeyTranslateTable[PADPLUSKEY ] = KX_PADPLUSKEY;
m_reverseKeyTranslateTable[F1KEY ] = KX_F1KEY;
m_reverseKeyTranslateTable[F2KEY ] = KX_F2KEY;
m_reverseKeyTranslateTable[F3KEY ] = KX_F3KEY;
m_reverseKeyTranslateTable[F4KEY ] = KX_F4KEY;
m_reverseKeyTranslateTable[F5KEY ] = KX_F5KEY;
m_reverseKeyTranslateTable[F6KEY ] = KX_F6KEY;
m_reverseKeyTranslateTable[F7KEY ] = KX_F7KEY;
m_reverseKeyTranslateTable[F8KEY ] = KX_F8KEY;
m_reverseKeyTranslateTable[F9KEY ] = KX_F9KEY;
m_reverseKeyTranslateTable[F10KEY ] = KX_F10KEY;
m_reverseKeyTranslateTable[F11KEY ] = KX_F11KEY;
m_reverseKeyTranslateTable[F12KEY ] = KX_F12KEY;
m_reverseKeyTranslateTable[F13KEY ] = KX_F13KEY;
m_reverseKeyTranslateTable[F14KEY ] = KX_F14KEY;
m_reverseKeyTranslateTable[F15KEY ] = KX_F15KEY;
m_reverseKeyTranslateTable[F16KEY ] = KX_F16KEY;
m_reverseKeyTranslateTable[F17KEY ] = KX_F17KEY;
m_reverseKeyTranslateTable[F18KEY ] = KX_F18KEY;
m_reverseKeyTranslateTable[F19KEY ] = KX_F19KEY;
m_reverseKeyTranslateTable[PAUSEKEY ] = KX_PAUSEKEY;
m_reverseKeyTranslateTable[INSERTKEY ] = KX_INSERTKEY;
m_reverseKeyTranslateTable[HOMEKEY ] = KX_HOMEKEY;
m_reverseKeyTranslateTable[PAGEUPKEY ] = KX_PAGEUPKEY;
m_reverseKeyTranslateTable[PAGEDOWNKEY ] = KX_PAGEDOWNKEY;
m_reverseKeyTranslateTable[ENDKEY ] = KX_ENDKEY;
}
virtual ~BL_BlenderInputDevice()
{
{
}
KX_EnumInputs ToNative(unsigned short incode) {
}
KX_EnumInputs ToNative(unsigned short incode) {
return m_reverseKeyTranslateTable[incode];
}
virtual bool IsPressed(SCA_IInputDevice::KX_EnumInputs inputcode)=0;
// virtual const SCA_InputEvent& GetEventValue(SCA_IInputDevice::KX_EnumInputs inputcode)=0;
// virtual const SCA_InputEvent& GetEventValue(SCA_IInputDevice::KX_EnumInputs inputcode)=0;
virtual bool ConvertBlenderEvent(unsigned short incode,short val)=0;
#ifdef WITH_CXX_GUARDEDALLOC
public:
void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:BL_BlenderInputDevice"); }
void operator delete(void *mem) { MEM_freeN(mem); }
#endif
};
};
#endif //__KX_BLENDERINPUTDEVICE

@ -88,7 +88,7 @@ protected:
// --
int m_tvtot;
BL_DeformableGameObject* m_gameobj;
double m_lastDeformUpdate;
double m_lastDeformUpdate;
#ifdef WITH_CXX_GUARDEDALLOC

@ -46,8 +46,8 @@ class BL_ShapeDeformer : public BL_SkinDeformer
{
public:
BL_ShapeDeformer(BL_DeformableGameObject *gameobj,
Object *bmeshobj,
RAS_MeshObject *mesh);
Object *bmeshobj,
RAS_MeshObject *mesh);
/* this second constructor is needed for making a mesh deformable on the fly. */
BL_ShapeDeformer(BL_DeformableGameObject *gameobj,

@ -679,7 +679,7 @@ void KX_BlenderSceneConverter::ResetPhysicsObjectsAnimationIpo(bool clearIpo)
MEM_freeN( tmpicu );
localDel_ipoCurve( tmpicu );
}
}
}
} else
{ ipo = NULL; // XXX add_ipo(blenderObject->id.name+2, ID_OB);
blenderObject->ipo = ipo;

@ -942,7 +942,7 @@ void BL_ConvertActuators(char* maggiename,
case ACT_2DFILTER:
{
bTwoDFilterActuator *_2dfilter = (bTwoDFilterActuator*) bact->data;
SCA_2DFilterActuator *tmp = NULL;
SCA_2DFilterActuator *tmp = NULL;
RAS_2DFilterManager::RAS_2DFILTER_MODE filtermode;
switch(_2dfilter->type)

@ -52,19 +52,19 @@ private:
public:
SCA_2DFilterActuator(
class SCA_IObject* gameobj,
RAS_2DFilterManager::RAS_2DFILTER_MODE type,
short flag,
float float_arg,
int int_arg,
RAS_IRasterizer* rasterizer,
SCA_IScene* scene);
SCA_2DFilterActuator(
class SCA_IObject* gameobj,
RAS_2DFilterManager::RAS_2DFILTER_MODE type,
short flag,
float float_arg,
int int_arg,
RAS_IRasterizer* rasterizer,
SCA_IScene* scene);
void SetShaderText(const char *text);
virtual ~SCA_2DFilterActuator();
virtual bool Update();
virtual ~SCA_2DFilterActuator();
virtual bool Update();
virtual CValue* GetReplica();
virtual CValue* GetReplica();
};
#endif

@ -34,7 +34,7 @@
#ifndef KX_PYTHONCONTROLLER_H
#define KX_PYTHONCONTROLLER_H
#include "SCA_IController.h"
#include "SCA_LogicManager.h"
#include "BoolValue.h"

@ -207,10 +207,10 @@ bool SCA_RandomActuator::Update()
sensible values. The termination condition states two
things:
1. s >= 0 is not allowed: to prevent the distro from
getting a bias towards high values. This is a small
getting a bias towards high values. This is a small
correction, really, and might also be left out.
2. s == 0 is not allowed: to prevent a division by zero
when renormalising the drawn value to the desired
when renormalising the drawn value to the desired
distribution shape. As a side effect, the distro will
never yield the exact mean.
I am not sure whether this is consistent, since the error

@ -192,7 +192,7 @@ static LRESULT CALLBACK screenSaverWindowProc(HWND hwnd, UINT uMsg, WPARAM wPara
LONG dx = scr_save_mouse_pos.x - pt.x;
LONG dy = scr_save_mouse_pos.y - pt.y;
if (abs(dx) > SCR_SAVE_MOUSE_MOVE_THRESHOLD
|| abs(dy) > SCR_SAVE_MOUSE_MOVE_THRESHOLD)
|| abs(dy) > SCR_SAVE_MOUSE_MOVE_THRESHOLD)
{
close = TRUE;
}

@ -43,7 +43,7 @@ class KX_NetworkEventManager : public SCA_EventManager
public:
KX_NetworkEventManager(class SCA_LogicManager* logicmgr,
class NG_NetworkDeviceInterface *ndi);
class NG_NetworkDeviceInterface *ndi);
virtual ~KX_NetworkEventManager ();
virtual void NextFrame();
@ -51,7 +51,7 @@ public:
SCA_LogicManager* GetLogicManager() { return m_logicmgr; }
class NG_NetworkDeviceInterface* GetNetworkDevice() {
return m_ndi; }
return m_ndi; }
};
#endif //KX_NETWORK_EVENTMANAGER_H

@ -111,7 +111,7 @@ KX_GameObject::KX_GameObject(
m_pHitObject(NULL),
m_actionManager(NULL),
m_isDeformable(false)
#ifdef WITH_PYTHON
#ifdef WITH_PYTHON
, m_attr_dict(NULL)
#endif
{

@ -237,9 +237,9 @@ bool KX_ObjectActuator::Update()
if (m_current_linear_factor > 1.0)
m_current_linear_factor = 1.0;
linV = m_current_linear_factor * m_linear_velocity;
parent->setLinearVelocity(linV,(m_bitLocalFlag.LinearVelocity) != 0);
parent->setLinearVelocity(linV,(m_bitLocalFlag.LinearVelocity) != 0);
} else {
parent->setLinearVelocity(m_linear_velocity,(m_bitLocalFlag.LinearVelocity) != 0);
parent->setLinearVelocity(m_linear_velocity,(m_bitLocalFlag.LinearVelocity) != 0);
}
}
}
@ -260,7 +260,7 @@ bool KX_ObjectActuator::Update()
if (m_current_angular_factor > 1.0)
m_current_angular_factor = 1.0;
angV = m_current_angular_factor * m_angular_velocity;
parent->setAngularVelocity(angV,(m_bitLocalFlag.AngularVelocity) != 0);
parent->setAngularVelocity(angV,(m_bitLocalFlag.AngularVelocity) != 0);
} else {
parent->setAngularVelocity(m_angular_velocity,(m_bitLocalFlag.AngularVelocity) != 0);
}

@ -51,6 +51,6 @@ void KX_OrientationInterpolator::Execute(float currentTime) const {
MT_Scalar ss = si*sh;
m_target.setValue(cj*ch, sj*sc-cs, sj*cc+ss,
cj*sh, sj*ss+cc, sj*cs-sc,
-sj, cj*si, cj*ci);
cj*sh, sj*ss+cc, sj*cs-sc,
-sj, cj*si, cj*ci);
}

@ -187,7 +187,7 @@ void KX_PolygonMaterial::DefaultActivate(RAS_IRasterizer* rasty, TCachingInfo& c
rasty->SetCullFace(true);
if ((m_drawingmode & RAS_IRasterizer::KX_LINES) ||
(rasty->GetDrawingMode() <= RAS_IRasterizer::KX_WIREFRAME))
(rasty->GetDrawingMode() <= RAS_IRasterizer::KX_WIREFRAME))
rasty->SetLines(true);
else
rasty->SetLines(false);

@ -57,7 +57,7 @@ class KX_TrackToActuator : public SCA_IActuator
public:
KX_TrackToActuator(SCA_IObject* gameobj, SCA_IObject *ob, int time,
bool threedee,int trackflag,int upflag);
bool threedee,int trackflag,int upflag);
virtual ~KX_TrackToActuator();
virtual CValue* GetReplica() {
KX_TrackToActuator* replica = new KX_TrackToActuator(*this);

@ -52,8 +52,8 @@ public:
virtual void NextFrame();
bool Connect(char *address, unsigned int port, char *password,
unsigned int localport, unsigned int timeout) {
return true;}
unsigned int localport, unsigned int timeout) {
return true;}
bool Disconnect(void) {return true;}
virtual void SendNetworkMessage(class NG_NetworkMessage* msg);

@ -64,7 +64,7 @@ public:
bool IsOnline(void) { return m_online; }
virtual bool Connect(char *address, unsigned int port, char *password,
unsigned int localport, unsigned int timeout)=0;
unsigned int localport, unsigned int timeout)=0;
virtual bool Disconnect(void)=0;
virtual void SendNetworkMessage(NG_NetworkMessage* msg)=0;

@ -216,12 +216,12 @@ struct CcdConstructionInfo
///more advanced collision filtering should be done in btCollisionDispatcher::NeedsCollision
enum CollisionFilterGroups
{
DefaultFilter = 1,
StaticFilter = 2,
KinematicFilter = 4,
DebrisFilter = 8,
SensorFilter = 16,
AllFilter = DefaultFilter | StaticFilter | KinematicFilter | DebrisFilter | SensorFilter,
DefaultFilter = 1,
StaticFilter = 2,
KinematicFilter = 4,
DebrisFilter = 8,
SensorFilter = 16,
AllFilter = DefaultFilter | StaticFilter | KinematicFilter | DebrisFilter | SensorFilter,
};

@ -2564,8 +2564,8 @@ int CcdPhysicsEnvironment::createConstraint(class PHY_IPhysicsController* ctrl
btPlaneSpace1( axisInA, axis1, axis2 );
frameInA.getBasis().setValue( axisInA.x(), axis1.x(), axis2.x(),
axisInA.y(), axis1.y(), axis2.y(),
axisInA.z(), axis1.z(), axis2.z() );
axisInA.y(), axis1.y(), axis2.y(),
axisInA.z(), axis1.z(), axis2.z() );
frameInA.setOrigin( pivotInA );

@ -164,7 +164,7 @@ protected:
virtual float getConstraintParam(int constraintId,int param);
virtual void removeConstraint(int constraintid);
virtual void removeConstraint(int constraintid);
virtual float getAppliedImpulse(int constraintid);

@ -306,8 +306,8 @@ void RAS_2DFilterManager::SetupTextures(bool depth, bool luminance)
if(depth){
glGenTextures(1, (GLuint*)&texname[1]);
glBindTexture(GL_TEXTURE_2D, texname[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32, texturewidth,textureheight,
0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE,NULL);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32, texturewidth,textureheight,
0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE,NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE,
GL_NONE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@ -433,6 +433,9 @@ void RAS_2DFilterManager::RenderFilters(RAS_ICanvas* canvas)
glCopyTexImage2D(GL_TEXTURE_2D,0,GL_LUMINANCE16, 0, 0, texturewidth,textureheight, 0);
}
// reverting to texunit 0, without this we get bug [#28462]
glActiveTextureARB(GL_TEXTURE0);
glViewport(0,0, texturewidth, textureheight);
glDisable(GL_DEPTH_TEST);

@ -49,19 +49,19 @@ struct RAS_CameraData
float m_focallength;
RAS_CameraData(float lens = 35.0, float scale = 6.0, float clipstart = 0.1, float clipend = 5000.0, bool perspective = true,
float focallength = 3.0, bool viewport = false, int viewportleft = 0, int viewportbottom = 0,
int viewportright = 0, int viewporttop = 0) :
m_lens(lens),
m_scale(scale),
m_clipstart(clipstart),
m_clipend(clipend),
m_perspective(perspective),
m_viewport(viewport),
m_viewportleft(viewportleft),
m_viewportbottom(viewportbottom),
m_viewportright(viewportright),
m_viewporttop(viewporttop),
m_focallength(focallength)
float focallength = 3.0, bool viewport = false, int viewportleft = 0, int viewportbottom = 0,
int viewportright = 0, int viewporttop = 0) :
m_lens(lens),
m_scale(scale),
m_clipstart(clipstart),
m_clipend(clipend),
m_perspective(perspective),
m_viewport(viewport),
m_viewportleft(viewportleft),
m_viewportbottom(viewportbottom),
m_viewportright(viewportright),
m_viewporttop(viewporttop),
m_focallength(focallength)
{
}
};

@ -38,17 +38,17 @@ uniform vec2 bgl_TextureCoordinateOffset[9];
void main(void)
{
vec4 sample[9];
vec4 sample[9];
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
gl_FragColor = (sample[0] + (2.0*sample[1]) + sample[2] +
(2.0*sample[3]) + sample[4] + (2.0*sample[5]) +
sample[6] + (2.0*sample[7]) + sample[8]) / 13.0;
gl_FragColor = (sample[0] + (2.0*sample[1]) + sample[2] +
(2.0*sample[3]) + sample[4] + (2.0*sample[5]) +
sample[6] + (2.0*sample[7]) + sample[8]) / 13.0;
}
);
#endif

@ -38,17 +38,17 @@ uniform vec2 bgl_TextureCoordinateOffset[9];
void main(void)
{
vec4 sample[9];
vec4 maxValue = vec4(0.0);
vec4 sample[9];
vec4 maxValue = vec4(0.0);
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
maxValue = max(sample[i], maxValue);
}
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
maxValue = max(sample[i], maxValue);
}
gl_FragColor = maxValue;
gl_FragColor = maxValue;
}
);
#endif

@ -33,22 +33,22 @@
#define __RAS_EROSION2DFILTER
const char * ErosionFragmentShader=STRINGIFY(
uniform sampler2D bgl_RenderedTexture;
uniform vec2 bgl_TextureCoordinateOffset[9];
uniform sampler2D bgl_RenderedTexture;
uniform vec2 bgl_TextureCoordinateOffset[9];
void main(void)
{
vec4 sample[9];
vec4 minValue = vec4(1.0);
vec4 sample[9];
vec4 minValue = vec4(1.0);
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
minValue = min(sample[i], minValue);
}
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
minValue = min(sample[i], minValue);
}
gl_FragColor = minValue;
gl_FragColor = minValue;
}
);
#endif

@ -38,18 +38,18 @@ uniform vec2 bgl_TextureCoordinateOffset[9];
void main(void)
{
vec4 sample[9];
vec4 sample[9];
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
gl_FragColor = (sample[4] * 8.0) -
(sample[0] + sample[1] + sample[2] +
sample[3] + sample[5] +
sample[6] + sample[7] + sample[8]);
gl_FragColor = (sample[4] * 8.0) -
(sample[0] + sample[1] + sample[2] +
sample[3] + sample[5] +
sample[6] + sample[7] + sample[8]);
gl_FragColor = vec4(gl_FragColor.rgb, 1.0);
}
);

@ -38,23 +38,23 @@ uniform vec2 bgl_TextureCoordinateOffset[9];
void main(void)
{
vec4 sample[9];
vec4 sample[9];
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
vec4 horizEdge = sample[2] + sample[5] + sample[8] -
(sample[0] + sample[3] + sample[6]);
vec4 horizEdge = sample[2] + sample[5] + sample[8] -
(sample[0] + sample[3] + sample[6]);
vec4 vertEdge = sample[0] + sample[1] + sample[2] -
(sample[6] + sample[7] + sample[8]);
vec4 vertEdge = sample[0] + sample[1] + sample[2] -
(sample[6] + sample[7] + sample[8]);
gl_FragColor.rgb = sqrt((horizEdge.rgb * horizEdge.rgb) +
(vertEdge.rgb * vertEdge.rgb));
gl_FragColor.a = 1.0;
gl_FragColor.rgb = sqrt((horizEdge.rgb * horizEdge.rgb) +
(vertEdge.rgb * vertEdge.rgb));
gl_FragColor.a = 1.0;
}
);

@ -38,18 +38,18 @@ uniform vec2 bgl_TextureCoordinateOffset[9];
void main(void)
{
vec4 sample[9];
vec4 sample[9];
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
gl_FragColor = (sample[4] * 9.0) -
(sample[0] + sample[1] + sample[2] +
sample[3] + sample[5] +
sample[6] + sample[7] + sample[8]);
gl_FragColor = (sample[4] * 9.0) -
(sample[0] + sample[1] + sample[2] +
sample[3] + sample[5] +
sample[6] + sample[7] + sample[8]);
}
);
#endif

@ -38,23 +38,23 @@ uniform vec2 bgl_TextureCoordinateOffset[9];
void main(void)
{
vec4 sample[9];
vec4 sample[9];
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}
vec4 horizEdge = sample[2] + (2.0*sample[5]) + sample[8] -
(sample[0] + (2.0*sample[3]) + sample[6]);
vec4 horizEdge = sample[2] + (2.0*sample[5]) + sample[8] -
(sample[0] + (2.0*sample[3]) + sample[6]);
vec4 vertEdge = sample[0] + (2.0*sample[1]) + sample[2] -
(sample[6] + (2.0*sample[7]) + sample[8]);
vec4 vertEdge = sample[0] + (2.0*sample[1]) + sample[2] -
(sample[6] + (2.0*sample[7]) + sample[8]);
gl_FragColor.rgb = sqrt((horizEdge.rgb * horizEdge.rgb) +
(vertEdge.rgb * vertEdge.rgb));
gl_FragColor.a = 1.0;
gl_FragColor.rgb = sqrt((horizEdge.rgb * horizEdge.rgb) +
(vertEdge.rgb * vertEdge.rgb));
gl_FragColor.a = 1.0;
}
);
#endif

@ -134,88 +134,88 @@ public:
}
};
SG_DList()
{
m_flink = m_blink = this;
}
SG_DList()
{
m_flink = m_blink = this;
}
SG_DList(const SG_DList& other)
{
m_flink = m_blink = this;
m_flink = m_blink = this;
}
virtual ~SG_DList()
{
virtual ~SG_DList()
{
Delink();
}
}
inline bool Empty() // Check for empty queue
{
return ( m_flink == this );
}
bool AddBack( SG_DList *item ) // Add to the back
{
inline bool Empty() // Check for empty queue
{
return ( m_flink == this );
}
bool AddBack( SG_DList *item ) // Add to the back
{
if (!item->Empty())
return false;
item->m_blink = m_blink;
item->m_flink = this;
m_blink->m_flink = item;
m_blink = item;
item->m_blink = m_blink;
item->m_flink = this;
m_blink->m_flink = item;
m_blink = item;
return true;
}
bool AddFront( SG_DList *item ) // Add to the back
{
}
bool AddFront( SG_DList *item ) // Add to the back
{
if (!item->Empty())
return false;
item->m_flink = m_flink;
item->m_blink = this;
m_flink->m_blink = item;
m_flink = item;
item->m_flink = m_flink;
item->m_blink = this;
m_flink->m_blink = item;
m_flink = item;
return true;
}
SG_DList *Remove() // Remove from the front
{
if (Empty())
{
return NULL;
}
SG_DList* item = m_flink;
m_flink = item->m_flink;
m_flink->m_blink = this;
item->m_flink = item->m_blink = item;
return item;
}
bool Delink() // Remove from the middle
{
}
SG_DList *Remove() // Remove from the front
{
if (Empty())
{
return NULL;
}
SG_DList* item = m_flink;
m_flink = item->m_flink;
m_flink->m_blink = this;
item->m_flink = item->m_blink = item;
return item;
}
bool Delink() // Remove from the middle
{
if (Empty())
return false;
m_blink->m_flink = m_flink;
m_flink->m_blink = m_blink;
m_flink = m_blink = this;
return true;
}
inline SG_DList *Peek() // Look at front without removing
{
return m_flink;
}
inline SG_DList *Back() // Look at front without removing
{
return m_blink;
}
inline SG_DList *Self()
{
return this;
}
inline const SG_DList *Peek() const // Look at front without removing
{
return (const SG_DList*)m_flink;
}
inline const SG_DList *Back() const // Look at front without removing
{
return (const SG_DList*)m_blink;
}
inline const SG_DList *Self() const
{
return this;
}
}
inline SG_DList *Peek() // Look at front without removing
{
return m_flink;
}
inline SG_DList *Back() // Look at front without removing
{
return m_blink;
}
inline SG_DList *Self()
{
return this;
}
inline const SG_DList *Peek() const // Look at front without removing
{
return (const SG_DList*)m_flink;
}
inline const SG_DList *Back() const // Look at front without removing
{
return (const SG_DList*)m_blink;
}
inline const SG_DList *Self() const
{
return this;
}
#ifdef WITH_CXX_GUARDEDALLOC

@ -194,7 +194,7 @@ public:
/**
* Clear the array of pointers to controllers associated with
* this node. This does not delete the controllers themselves!
* This should be used very carefully to avoid memory
* This should be used very carefully to avoid memory
* leaks.
*/

@ -91,73 +91,73 @@ public:
};
SG_QList() : SG_DList()
{
m_fqlink = m_bqlink = this;
}
{
m_fqlink = m_bqlink = this;
}
SG_QList(const SG_QList& other) : SG_DList()
{
m_fqlink = m_bqlink = this;
m_fqlink = m_bqlink = this;
}
virtual ~SG_QList()
{
virtual ~SG_QList()
{
QDelink();
}
}
inline bool QEmpty() // Check for empty queue
{
return ( m_fqlink == this );
}
bool QAddBack( SG_QList *item ) // Add to the back
{
inline bool QEmpty() // Check for empty queue
{
return ( m_fqlink == this );
}
bool QAddBack( SG_QList *item ) // Add to the back
{
if (!item->QEmpty())
return false;
item->m_bqlink = m_bqlink;
item->m_fqlink = this;
m_bqlink->m_fqlink = item;
m_bqlink = item;
item->m_bqlink = m_bqlink;
item->m_fqlink = this;
m_bqlink->m_fqlink = item;
m_bqlink = item;
return true;
}
bool QAddFront( SG_QList *item ) // Add to the back
{
}
bool QAddFront( SG_QList *item ) // Add to the back
{
if (!item->Empty())
return false;
item->m_fqlink = m_fqlink;
item->m_bqlink = this;
m_fqlink->m_bqlink = item;
m_fqlink = item;
item->m_fqlink = m_fqlink;
item->m_bqlink = this;
m_fqlink->m_bqlink = item;
m_fqlink = item;
return true;
}
SG_QList *QRemove() // Remove from the front
{
if (QEmpty())
{
return NULL;
}
SG_QList* item = m_fqlink;
m_fqlink = item->m_fqlink;
m_fqlink->m_bqlink = this;
item->m_fqlink = item->m_bqlink = item;
return item;
}
bool QDelink() // Remove from the middle
{
}
SG_QList *QRemove() // Remove from the front
{
if (QEmpty())
{
return NULL;
}
SG_QList* item = m_fqlink;
m_fqlink = item->m_fqlink;
m_fqlink->m_bqlink = this;
item->m_fqlink = item->m_bqlink = item;
return item;
}
bool QDelink() // Remove from the middle
{
if (QEmpty())
return false;
m_bqlink->m_fqlink = m_fqlink;
m_fqlink->m_bqlink = m_bqlink;
m_fqlink = m_bqlink = this;
return true;
}
inline SG_QList *QPeek() // Look at front without removing
{
return m_fqlink;
}
inline SG_QList *QBack() // Look at front without removing
{
return m_bqlink;
}
}
inline SG_QList *QPeek() // Look at front without removing
{
return m_fqlink;
}
inline SG_QList *QBack() // Look at front without removing
{
return m_bqlink;
}
#ifdef WITH_CXX_GUARDEDALLOC
public:
void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:SG_QList"); }

@ -115,7 +115,7 @@ UpdateSpatialData(
const SG_Spatial *parent,
double time,
bool& parentUpdated
){
){
bool bComputesWorldTransform = false;
// update spatial controllers

@ -122,11 +122,11 @@ public:
desc = m_description;
}
void registerDesc(void)
{
if (std::find(m_expDescs.begin(), m_expDescs.end(), this) == m_expDescs.end())
m_expDescs.push_back(this);
}
void registerDesc(void)
{
if (std::find(m_expDescs.begin(), m_expDescs.end(), this) == m_expDescs.end())
m_expDescs.push_back(this);
}
// list of exception descriptions
static std::vector<ExpDesc*> m_expDescs;

@ -375,7 +375,7 @@ void Image_dealloc (PyImage * self)
if (self->m_image->m_exports > 0)
{
PyErr_SetString(PyExc_SystemError,
"deallocated Image object has exported buffers");
"deallocated Image object has exported buffers");
PyErr_Print();
}
// if release requires deleting of object, do it

@ -328,11 +328,11 @@ static int ImageRender_init (PyObject * pySelf, PyObject * args, PyObject * kwds
// get background color
PyObject * getBackground (PyImage * self, void * closure)
{
return Py_BuildValue("[BBBB]",
getImageRender(self)->getBackground(0),
getImageRender(self)->getBackground(1),
getImageRender(self)->getBackground(2),
getImageRender(self)->getBackground(3));
return Py_BuildValue("[BBBB]",
getImageRender(self)->getBackground(0),
getImageRender(self)->getBackground(1),
getImageRender(self)->getBackground(2),
getImageRender(self)->getBackground(3));
}
// set color