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 #define _UINTPTR_T_DEFINED
#endif #endif
#elif defined(__linux__) || defined(__NetBSD__) #elif defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__)
/* Linux-i386, Linux-Alpha, Linux-ppc */ /* Linux-i386, Linux-Alpha, Linux-ppc */
#include <stdint.h> #include <stdint.h>

@ -89,7 +89,7 @@ typedef unsigned long uintptr_t;
#define _UINTPTR_T_DEFINED #define _UINTPTR_T_DEFINED
#endif #endif
#elif defined(__linux__) || defined(__NetBSD__) #elif defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__)
/* Linux-i386, Linux-Alpha, Linux-ppc */ /* Linux-i386, Linux-Alpha, Linux-ppc */
#include <stdint.h> #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] = { static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
/* 0: CD_MVERT */
{sizeof(MVert), "MVert", 1, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(MVert), "MVert", 1, NULL, NULL, NULL, NULL, NULL, NULL},
/* 1: CD_MSTICKY */
{sizeof(MSticky), "MSticky", 1, NULL, NULL, NULL, layerInterp_msticky, NULL, {sizeof(MSticky), "MSticky", 1, NULL, NULL, NULL, layerInterp_msticky, NULL,
NULL}, NULL},
/* 2: CD_MDEFORMVERT */
{sizeof(MDeformVert), "MDeformVert", 1, NULL, layerCopy_mdeformvert, {sizeof(MDeformVert), "MDeformVert", 1, NULL, layerCopy_mdeformvert,
layerFree_mdeformvert, layerInterp_mdeformvert, NULL, NULL}, layerFree_mdeformvert, layerInterp_mdeformvert, NULL, NULL},
/* 3: CD_MEDGE */
{sizeof(MEdge), "MEdge", 1, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(MEdge), "MEdge", 1, NULL, NULL, NULL, NULL, NULL, NULL},
/* 4: CD_MFACE */
{sizeof(MFace), "MFace", 1, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(MFace), "MFace", 1, NULL, NULL, NULL, NULL, NULL, NULL},
/* 5: CD_MTFACE */
{sizeof(MTFace), "MTFace", 1, "UVTex", layerCopy_tface, NULL, {sizeof(MTFace), "MTFace", 1, "UVTex", layerCopy_tface, NULL,
layerInterp_tface, layerSwap_tface, layerDefault_tface}, layerInterp_tface, layerSwap_tface, layerDefault_tface},
/* 6: CD_MCOL */
/* 4 MCol structs per face */ /* 4 MCol structs per face */
{sizeof(MCol)*4, "MCol", 4, "Col", NULL, NULL, layerInterp_mcol, {sizeof(MCol)*4, "MCol", 4, "Col", NULL, NULL, layerInterp_mcol,
layerSwap_mcol, layerDefault_mcol}, layerSwap_mcol, layerDefault_mcol},
/* 7: CD_ORIGINDEX */
{sizeof(int), "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(int), "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 8: CD_NORMAL */
/* 3 floats per normal vector */ /* 3 floats per normal vector */
{sizeof(float)*3, "vec3f", 1, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(float)*3, "vec3f", 1, NULL, NULL, NULL, NULL, NULL, NULL},
/* 9: CD_FLAGS */
{sizeof(int), "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(int), "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 10: CD_PROP_FLT */
{sizeof(MFloatProperty), "MFloatProperty",1,"Float", layerCopy_propFloat,NULL,NULL,NULL}, {sizeof(MFloatProperty), "MFloatProperty",1,"Float", layerCopy_propFloat,NULL,NULL,NULL},
/* 11: CD_PROP_INT */
{sizeof(MIntProperty), "MIntProperty",1,"Int",layerCopy_propInt,NULL,NULL,NULL}, {sizeof(MIntProperty), "MIntProperty",1,"Int",layerCopy_propInt,NULL,NULL,NULL},
/* 12: CD_PROP_STR */
{sizeof(MStringProperty), "MStringProperty",1,"String",layerCopy_propString,NULL,NULL,NULL}, {sizeof(MStringProperty), "MStringProperty",1,"String",layerCopy_propString,NULL,NULL,NULL},
/* 13: CD_ORIGSPACE */
{sizeof(OrigSpaceFace), "OrigSpaceFace", 1, "UVTex", layerCopy_origspace_face, NULL, {sizeof(OrigSpaceFace), "OrigSpaceFace", 1, "UVTex", layerCopy_origspace_face, NULL,
layerInterp_origspace_face, layerSwap_origspace_face, layerDefault_origspace_face}, layerInterp_origspace_face, layerSwap_origspace_face, layerDefault_origspace_face},
/* 14: CD_ORCO */
{sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 15: CD_MTEXPOLY */
{sizeof(MTexPoly), "MTexPoly", 1, "Face Texture", NULL, NULL, NULL, NULL, NULL}, {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, {sizeof(MLoopUV), "MLoopUV", 1, "UV coord", NULL, NULL, layerInterp_mloopuv, NULL, NULL,
layerEqual_mloopuv, layerMultiply_mloopuv, layerInitMinMax_mloopuv, layerEqual_mloopuv, layerMultiply_mloopuv, layerInitMinMax_mloopuv,
layerAdd_mloopuv, layerDoMinMax_mloopuv, layerCopyValue_mloopuv}, layerAdd_mloopuv, layerDoMinMax_mloopuv, layerCopyValue_mloopuv},
/* 17: CD_MLOOPCOL */
{sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL, {sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL,
layerDefault_mloopcol, layerEqual_mloopcol, layerMultiply_mloopcol, layerInitMinMax_mloopcol, layerDefault_mloopcol, layerEqual_mloopcol, layerMultiply_mloopcol, layerInitMinMax_mloopcol,
layerAdd_mloopcol, layerDoMinMax_mloopcol, layerCopyValue_mloopcol}, layerAdd_mloopcol, layerDoMinMax_mloopcol, layerCopyValue_mloopcol},
{sizeof(float)*4*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(float)*4*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 19: CD_MDISPS */
{sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps, {sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps,
layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
layerRead_mdisps, layerWrite_mdisps, layerFilesize_mdisps, layerValidate_mdisps}, layerRead_mdisps, layerWrite_mdisps, layerFilesize_mdisps, layerValidate_mdisps},
/* 20: CD_WEIGHT_MCOL */
{sizeof(MCol)*4, "MCol", 4, "WeightCol", NULL, NULL, layerInterp_mcol, {sizeof(MCol)*4, "MCol", 4, "WeightCol", NULL, NULL, layerInterp_mcol,
layerSwap_mcol, layerDefault_mcol}, layerSwap_mcol, layerDefault_mcol},
{sizeof(MPoly), "MPoly", 1, "NGon Face", NULL, NULL, NULL, NULL, NULL}, {sizeof(MPoly), "MPoly", 1, "NGon Face", NULL, NULL, NULL, NULL, NULL},
{sizeof(MLoop), "MLoop", 1, "NGon Face-Vertex", 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}, {sizeof(float)*3, "", 0, "ClothOrco", NULL, NULL, layerInterp_shapekey},
/* 21: CD_ID_MCOL */
{sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol, {sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol,
layerSwap_mcol, layerDefault_mcol}, layerSwap_mcol, layerDefault_mcol},
{sizeof(MCol)*4, "MCol", 4, "TextureCol", NULL, NULL, layerInterp_mcol, {sizeof(MCol)*4, "MCol", 4, "TextureCol", NULL, NULL, layerInterp_mcol,

@ -83,7 +83,7 @@ typedef unsigned long uintptr_t;
#define _UINTPTR_T_DEFINED #define _UINTPTR_T_DEFINED
#endif #endif
#elif defined(__linux__) || defined(__NetBSD__) #elif defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__)
/* Linux-i386, Linux-Alpha, Linux-ppc */ /* Linux-i386, Linux-Alpha, Linux-ppc */
#include <stdint.h> #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); glColor4f(0.f, 0.f, 0.f, 0.3f);
uiSetRoundBox(15); uiSetRoundBox(15);
uiDrawBox(GL_POLYGON, rect.xmin-1, rect.ymin-1, rect.xmax+1, rect.ymax+1, 3.0f); 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); glColor4f(1.f, 1.f, 1.f, 0.08f);
/* draw grid lines here */ /* draw grid lines here */
for (i=1; i<4; i++) { 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); 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) 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); histogram_draw_one(1.0, 1.0, 1.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_luma, res);
else { else {

@ -1414,6 +1414,8 @@ static int forcefield_toggle_exec(bContext *C, wmOperator *UNUSED(op))
else else
ob->pd->forcefield = 0; ob->pd->forcefield = 0;
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL);
return OPERATOR_FINISHED; 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) 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) static char *rna_FluidSettings_path(PointerRNA *ptr)

@ -208,77 +208,34 @@ PyObject *PyC_Object_GetAttrStringArgs(PyObject *o, Py_ssize_t n, ...)
return item; 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 *PyC_ExceptionBuffer(void)
{ {
PyObject *stdout_backup = PySys_GetObject("stdout"); /* borrowed */ PyObject *traceback_mod= NULL;
PyObject *stderr_backup = PySys_GetObject("stderr"); /* borrowed */ PyObject *format_tb_func= NULL;
PyObject *string_io = NULL; PyObject *ret= NULL;
PyObject *string_io_buf = NULL;
PyObject *string_io_mod= NULL; if(! (traceback_mod= PyImport_ImportModule("traceback")) ) {
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")) ) {
goto error_cleanup; 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; 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: error_cleanup:
/* could not import the module so print the error and close */ /* could not import the module so print the error and close */
Py_XDECREF(string_io_mod); Py_XDECREF(traceback_mod);
Py_XDECREF(string_io); Py_XDECREF(format_tb_func);
PyErr_Restore(error_type, error_value, error_traceback);
PyErr_Print(); /* print the error */
PyErr_Clear();
return NULL;
}
return ret;
}
/* string conversion, escape non-unicode chars, coerce must be set to NULL */ /* string conversion, escape non-unicode chars, coerce must be set to NULL */
const char *PyC_UnicodeAsByte(PyObject *py_str, PyObject **coerce) 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 */ /* note: tp_base member is set to &PyType_Type on init */
PyTypeObject pyrna_struct_meta_idprop_Type= { PyTypeObject pyrna_struct_meta_idprop_Type= {
PyVarObject_HEAD_INIT(NULL, 0) PyVarObject_HEAD_INIT(NULL, 0)
"bpy_struct_meta_idprop", /* tp_name */ "bpy_struct_meta_idprop", /* tp_name */
sizeof(PyHeapTypeObject), /* tp_basicsize */ // XXX, would be PyTypeObject, but subtypes of Type must be PyHeapTypeObject's sizeof(PyHeapTypeObject), /* tp_basicsize */ // XXX, would be PyTypeObject, but subtypes of Type must be PyHeapTypeObject's
0, /* tp_itemsize */ 0, /* tp_itemsize */
/* methods */ /* methods */
NULL, /* tp_dealloc */ NULL, /* tp_dealloc */
NULL, /* printfunc tp_print; */ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */ NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */ NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* deprecated in python 3.0! */ NULL, /* tp_compare */ /* deprecated in python 3.0! */
NULL, /* tp_repr */ NULL, /* tp_repr */
/* Method suites for standard classes */ /* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */ NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */ NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */ NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */ /* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */ NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */ NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */ NULL, /* reprfunc tp_str; */
NULL /*(getattrofunc) pyrna_struct_meta_idprop_getattro*/, /* getattrofunc tp_getattro; */ NULL /*(getattrofunc) pyrna_struct_meta_idprop_getattro*/, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_struct_meta_idprop_setattro, /* setattrofunc tp_setattro; */ (setattrofunc) pyrna_struct_meta_idprop_setattro, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */ /* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */ NULL, /* PyBufferProcs *tp_as_buffer; */
@ -4660,7 +4660,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
/*** Flags to define presence of optional/expanded features ***/ /*** 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 ***/ /*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */ /* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */ NULL, /* traverseproc tp_traverse; */
@ -4670,7 +4670,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
/*** Assigned meaning in release 2.1 ***/ /*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/ /*** rich comparisons ***/
NULL, /* richcmpfunc tp_richcompare; */ NULL, /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/ /*** weak reference enabler ***/
0, /* long tp_weaklistoffset; */ 0, /* long tp_weaklistoffset; */
@ -4681,9 +4681,9 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
NULL, /* iternextfunc tp_iternext; */ NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/ /*** Attribute descriptor and subclassing stuff ***/
NULL, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */ NULL, /* struct PyMemberDef *tp_members; */
NULL, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */ NULL, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */ NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrgetfunc tp_descr_get; */
@ -4691,7 +4691,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
0, /* long tp_dictoffset; */ 0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */ NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */ NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */ NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */ /* Low-level free-memory routine */
NULL, /* freefunc tp_free; */ NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */ /* For PyObject_IS_GC */
@ -4709,45 +4709,45 @@ PyTypeObject pyrna_struct_meta_idprop_Type= {
/*-----------------------BPy_StructRNA method def------------------------------*/ /*-----------------------BPy_StructRNA method def------------------------------*/
PyTypeObject pyrna_struct_Type= { PyTypeObject pyrna_struct_Type= {
PyVarObject_HEAD_INIT(NULL, 0) PyVarObject_HEAD_INIT(NULL, 0)
"bpy_struct", /* tp_name */ "bpy_struct", /* tp_name */
sizeof(BPy_StructRNA), /* tp_basicsize */ sizeof(BPy_StructRNA), /* tp_basicsize */
0, /* tp_itemsize */ 0, /* tp_itemsize */
/* methods */ /* methods */
(destructor) pyrna_struct_dealloc,/* tp_dealloc */ (destructor) pyrna_struct_dealloc,/* tp_dealloc */
NULL, /* printfunc tp_print; */ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */ NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */ NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_struct_repr, /* tp_repr */ (reprfunc) pyrna_struct_repr, /* tp_repr */
/* Method suites for standard classes */ /* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */ NULL, /* PyNumberMethods *tp_as_number; */
&pyrna_struct_as_sequence, /* PySequenceMethods *tp_as_sequence; */ &pyrna_struct_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_struct_as_mapping, /* PyMappingMethods *tp_as_mapping; */ &pyrna_struct_as_mapping, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */ /* More standard operations (here for binary compatibility) */
(hashfunc) pyrna_struct_hash, /* hashfunc tp_hash; */ (hashfunc) pyrna_struct_hash, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */ NULL, /* ternaryfunc tp_call; */
(reprfunc) pyrna_struct_str, /* reprfunc tp_str; */ (reprfunc) pyrna_struct_str, /* reprfunc tp_str; */
(getattrofunc) pyrna_struct_getattro, /* getattrofunc tp_getattro; */ (getattrofunc) pyrna_struct_getattro, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_struct_setattro, /* setattrofunc tp_setattro; */ (setattrofunc) pyrna_struct_setattro, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */ /* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */ NULL, /* PyBufferProcs *tp_as_buffer; */
/*** Flags to define presence of optional/expanded features ***/ /*** 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 ***/ /*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */ /* call function for all accessible objects */
#ifdef USE_PYRNA_STRUCT_REFERENCE #ifdef USE_PYRNA_STRUCT_REFERENCE
(traverseproc) pyrna_struct_traverse, /* traverseproc tp_traverse; */ (traverseproc) pyrna_struct_traverse, /* traverseproc tp_traverse; */
/* delete references to contained objects */ /* delete references to contained objects */
(inquiry)pyrna_struct_clear, /* inquiry tp_clear; */ (inquiry)pyrna_struct_clear, /* inquiry tp_clear; */
#else #else
NULL, /* traverseproc tp_traverse; */ NULL, /* traverseproc tp_traverse; */
@ -4757,11 +4757,11 @@ PyTypeObject pyrna_struct_Type= {
/*** Assigned meaning in release 2.1 ***/ /*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/ /*** rich comparisons ***/
(richcmpfunc)pyrna_struct_richcmp, /* richcmpfunc tp_richcompare; */ (richcmpfunc)pyrna_struct_richcmp, /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/ /*** weak reference enabler ***/
#ifdef USE_WEAKREFS #ifdef USE_WEAKREFS
offsetof(BPy_StructRNA, in_weakreflist), /* long tp_weaklistoffset; */ offsetof(BPy_StructRNA, in_weakreflist), /* long tp_weaklistoffset; */
#else #else
0, 0,
#endif #endif
@ -4771,9 +4771,9 @@ PyTypeObject pyrna_struct_Type= {
NULL, /* iternextfunc tp_iternext; */ NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/ /*** Attribute descriptor and subclassing stuff ***/
pyrna_struct_methods, /* struct PyMethodDef *tp_methods; */ pyrna_struct_methods, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */ 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, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */ NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrgetfunc tp_descr_get; */
@ -4781,7 +4781,7 @@ PyTypeObject pyrna_struct_Type= {
0, /* long tp_dictoffset; */ 0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */ NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */ NULL, /* allocfunc tp_alloc; */
pyrna_struct_new, /* newfunc tp_new; */ pyrna_struct_new, /* newfunc tp_new; */
/* Low-level free-memory routine */ /* Low-level free-memory routine */
NULL, /* freefunc tp_free; */ NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */ /* For PyObject_IS_GC */
@ -4798,32 +4798,32 @@ PyTypeObject pyrna_struct_Type= {
/*-----------------------BPy_PropertyRNA method def------------------------------*/ /*-----------------------BPy_PropertyRNA method def------------------------------*/
PyTypeObject pyrna_prop_Type= { PyTypeObject pyrna_prop_Type= {
PyVarObject_HEAD_INIT(NULL, 0) PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop", /* tp_name */ "bpy_prop", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */ sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */ 0, /* tp_itemsize */
/* methods */ /* methods */
(destructor) pyrna_prop_dealloc, /* tp_dealloc */ (destructor) pyrna_prop_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */ NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */ NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_prop_repr, /* tp_repr */ (reprfunc) pyrna_prop_repr, /* tp_repr */
/* Method suites for standard classes */ /* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */ NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */ NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */ NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */ /* 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; */ NULL, /* ternaryfunc tp_call; */
(reprfunc) pyrna_prop_str, /* reprfunc tp_str; */ (reprfunc) pyrna_prop_str, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */ /* will only use these if this is a subtype of a py class */
NULL, /* getattrofunc tp_getattro; */ NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */ NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */ /* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */ NULL, /* PyBufferProcs *tp_as_buffer; */
@ -4831,7 +4831,7 @@ PyTypeObject pyrna_prop_Type= {
/*** Flags to define presence of optional/expanded features ***/ /*** 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 ***/ /*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */ /* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */ NULL, /* traverseproc tp_traverse; */
@ -4852,11 +4852,11 @@ PyTypeObject pyrna_prop_Type= {
/*** Added in release 2.2 ***/ /*** Added in release 2.2 ***/
/* Iterators */ /* Iterators */
NULL, /* getiterfunc tp_iter; */ NULL, /* getiterfunc tp_iter; */
NULL, /* iternextfunc tp_iternext; */ NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/ /*** Attribute descriptor and subclassing stuff ***/
pyrna_prop_methods, /* struct PyMethodDef *tp_methods; */ pyrna_prop_methods, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */ NULL, /* struct PyMemberDef *tp_members; */
pyrna_prop_getseters, /* struct PyGetSetDef *tp_getset; */ pyrna_prop_getseters, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */ NULL, /* struct _typeobject *tp_base; */
@ -4866,7 +4866,7 @@ PyTypeObject pyrna_prop_Type= {
0, /* long tp_dictoffset; */ 0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */ NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */ NULL, /* allocfunc tp_alloc; */
pyrna_prop_new, /* newfunc tp_new; */ pyrna_prop_new, /* newfunc tp_new; */
/* Low-level free-memory routine */ /* Low-level free-memory routine */
NULL, /* freefunc tp_free; */ NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */ /* For PyObject_IS_GC */
@ -4888,34 +4888,34 @@ PyTypeObject pyrna_prop_array_Type= {
/* methods */ /* methods */
(destructor)pyrna_prop_array_dealloc, /* tp_dealloc */ (destructor)pyrna_prop_array_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */ NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */ NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL,/* subclassed */ /* tp_repr */ NULL,/* subclassed */ /* tp_repr */
/* Method suites for standard classes */ /* Method suites for standard classes */
&pyrna_prop_array_as_number, /* PyNumberMethods *tp_as_number; */ &pyrna_prop_array_as_number, /* PyNumberMethods *tp_as_number; */
&pyrna_prop_array_as_sequence, /* PySequenceMethods *tp_as_sequence; */ &pyrna_prop_array_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_prop_array_as_mapping, /* PyMappingMethods *tp_as_mapping; */ &pyrna_prop_array_as_mapping, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */ /* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */ NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */ NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */ NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */ /* will only use these if this is a subtype of a py class */
(getattrofunc) pyrna_prop_array_getattro, /* getattrofunc tp_getattro; */ (getattrofunc) pyrna_prop_array_getattro, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */ NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */ /* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */ NULL, /* PyBufferProcs *tp_as_buffer; */
/*** Flags to define presence of optional/expanded features ***/ /*** 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 ***/ /*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */ /* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */ NULL, /* traverseproc tp_traverse; */
@ -4925,7 +4925,7 @@ PyTypeObject pyrna_prop_array_Type= {
/*** Assigned meaning in release 2.1 ***/ /*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/ /*** rich comparisons ***/
NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */ NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/ /*** weak reference enabler ***/
#ifdef USE_WEAKREFS #ifdef USE_WEAKREFS
@ -4939,22 +4939,22 @@ PyTypeObject pyrna_prop_array_Type= {
NULL, /* iternextfunc tp_iternext; */ NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/ /*** 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, /* struct PyMemberDef *tp_members; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_Type, /* struct _typeobject *tp_base; */ &pyrna_prop_Type, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */ NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrgetfunc tp_descr_get; */
NULL, /* descrsetfunc tp_descr_set; */ NULL, /* descrsetfunc tp_descr_set; */
0, /* long tp_dictoffset; */ 0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */ NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */ NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */ NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */ /* Low-level free-memory routine */
NULL, /* freefunc tp_free; */ NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */ /* For PyObject_IS_GC */
NULL, /* inquiry tp_is_gc; */ NULL, /* inquiry tp_is_gc; */
NULL, /* PyObject *tp_bases; */ NULL, /* PyObject *tp_bases; */
/* method resolution order */ /* method resolution order */
NULL, /* PyObject *tp_mro; */ NULL, /* PyObject *tp_mro; */
NULL, /* PyObject *tp_cache; */ NULL, /* PyObject *tp_cache; */
@ -4965,32 +4965,32 @@ PyTypeObject pyrna_prop_array_Type= {
PyTypeObject pyrna_prop_collection_Type= { PyTypeObject pyrna_prop_collection_Type= {
PyVarObject_HEAD_INIT(NULL, 0) PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_collection", /* tp_name */ "bpy_prop_collection", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */ sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */ 0, /* tp_itemsize */
/* methods */ /* methods */
(destructor)pyrna_prop_dealloc, /* tp_dealloc */ (destructor)pyrna_prop_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */ NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */ NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL, /* subclassed */ /* tp_repr */ NULL, /* subclassed */ /* tp_repr */
/* Method suites for standard classes */ /* Method suites for standard classes */
&pyrna_prop_collection_as_number, /* PyNumberMethods *tp_as_number; */ &pyrna_prop_collection_as_number, /* PyNumberMethods *tp_as_number; */
&pyrna_prop_collection_as_sequence, /* PySequenceMethods *tp_as_sequence; */ &pyrna_prop_collection_as_sequence, /* PySequenceMethods *tp_as_sequence; */
&pyrna_prop_collection_as_mapping, /* PyMappingMethods *tp_as_mapping; */ &pyrna_prop_collection_as_mapping, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */ /* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */ NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */ NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */ NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */ /* will only use these if this is a subtype of a py class */
(getattrofunc) pyrna_prop_collection_getattro, /* getattrofunc tp_getattro; */ (getattrofunc) pyrna_prop_collection_getattro, /* getattrofunc tp_getattro; */
(setattrofunc) pyrna_prop_collection_setattro, /* setattrofunc tp_setattro; */ (setattrofunc) pyrna_prop_collection_setattro, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */ /* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */ NULL, /* PyBufferProcs *tp_as_buffer; */
@ -4998,7 +4998,7 @@ PyTypeObject pyrna_prop_collection_Type= {
/*** Flags to define presence of optional/expanded features ***/ /*** 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 ***/ /*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */ /* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */ NULL, /* traverseproc tp_traverse; */
@ -5012,33 +5012,33 @@ PyTypeObject pyrna_prop_collection_Type= {
/*** weak reference enabler ***/ /*** weak reference enabler ***/
#ifdef USE_WEAKREFS #ifdef USE_WEAKREFS
offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */ offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
#else #else
0, 0,
#endif #endif
/*** Added in release 2.2 ***/ /*** Added in release 2.2 ***/
/* Iterators */ /* Iterators */
(getiterfunc)pyrna_prop_collection_iter, /* getiterfunc tp_iter; */ (getiterfunc)pyrna_prop_collection_iter, /* getiterfunc tp_iter; */
NULL, /* iternextfunc tp_iternext; */ NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/ /*** 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, /* struct PyMemberDef *tp_members; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_Type, /* struct _typeobject *tp_base; */ &pyrna_prop_Type, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */ NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrgetfunc tp_descr_get; */
NULL, /* descrsetfunc tp_descr_set; */ NULL, /* descrsetfunc tp_descr_set; */
0, /* long tp_dictoffset; */ 0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */ NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */ NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */ NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */ /* Low-level free-memory routine */
NULL, /* freefunc tp_free; */ NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */ /* For PyObject_IS_GC */
NULL, /* inquiry tp_is_gc; */ NULL, /* inquiry tp_is_gc; */
NULL, /* PyObject *tp_bases; */ NULL, /* PyObject *tp_bases; */
/* method resolution order */ /* method resolution order */
NULL, /* PyObject *tp_mro; */ NULL, /* PyObject *tp_mro; */
NULL, /* PyObject *tp_cache; */ NULL, /* PyObject *tp_cache; */
@ -5050,32 +5050,32 @@ PyTypeObject pyrna_prop_collection_Type= {
/* only for add/remove/move methods */ /* only for add/remove/move methods */
static PyTypeObject pyrna_prop_collection_idprop_Type= { static PyTypeObject pyrna_prop_collection_idprop_Type= {
PyVarObject_HEAD_INIT(NULL, 0) PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_collection_idprop", /* tp_name */ "bpy_prop_collection_idprop", /* tp_name */
sizeof(BPy_PropertyRNA), /* tp_basicsize */ sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */ 0, /* tp_itemsize */
/* methods */ /* methods */
(destructor)pyrna_prop_dealloc, /* tp_dealloc */ (destructor)pyrna_prop_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */ NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */ NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL, /* subclassed */ /* tp_repr */ NULL, /* subclassed */ /* tp_repr */
/* Method suites for standard classes */ /* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */ NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */ NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */ NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */ /* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */ NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */ NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */ NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */ /* will only use these if this is a subtype of a py class */
NULL, /* getattrofunc tp_getattro; */ NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */ NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */ /* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_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 ***/ /*** 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 ***/ /*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */ /* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */ NULL, /* traverseproc tp_traverse; */
@ -5097,33 +5097,33 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= {
/*** weak reference enabler ***/ /*** weak reference enabler ***/
#ifdef USE_WEAKREFS #ifdef USE_WEAKREFS
offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */ offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
#else #else
0, 0,
#endif #endif
/*** Added in release 2.2 ***/ /*** Added in release 2.2 ***/
/* Iterators */ /* Iterators */
NULL, /* getiterfunc tp_iter; */ NULL, /* getiterfunc tp_iter; */
NULL, /* iternextfunc tp_iternext; */ NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/ /*** Attribute descriptor and subclassing stuff ***/
pyrna_prop_collection_idprop_methods, /* struct PyMethodDef *tp_methods; */ pyrna_prop_collection_idprop_methods, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */ NULL, /* struct PyMemberDef *tp_members; */
NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */
&pyrna_prop_collection_Type, /* struct _typeobject *tp_base; */ &pyrna_prop_collection_Type,/* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */ NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrgetfunc tp_descr_get; */
NULL, /* descrsetfunc tp_descr_set; */ NULL, /* descrsetfunc tp_descr_set; */
0, /* long tp_dictoffset; */ 0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */ NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */ NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */ NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */ /* Low-level free-memory routine */
NULL, /* freefunc tp_free; */ NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */ /* For PyObject_IS_GC */
NULL, /* inquiry tp_is_gc; */ NULL, /* inquiry tp_is_gc; */
NULL, /* PyObject *tp_bases; */ NULL, /* PyObject *tp_bases; */
/* method resolution order */ /* method resolution order */
NULL, /* PyObject *tp_mro; */ NULL, /* PyObject *tp_mro; */
NULL, /* PyObject *tp_cache; */ NULL, /* PyObject *tp_cache; */
@ -5135,32 +5135,32 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= {
/*-----------------------BPy_PropertyRNA method def------------------------------*/ /*-----------------------BPy_PropertyRNA method def------------------------------*/
PyTypeObject pyrna_func_Type= { PyTypeObject pyrna_func_Type= {
PyVarObject_HEAD_INIT(NULL, 0) PyVarObject_HEAD_INIT(NULL, 0)
"bpy_func", /* tp_name */ "bpy_func", /* tp_name */
sizeof(BPy_FunctionRNA), /* tp_basicsize */ sizeof(BPy_FunctionRNA), /* tp_basicsize */
0, /* tp_itemsize */ 0, /* tp_itemsize */
/* methods */ /* methods */
NULL, /* tp_dealloc */ NULL, /* tp_dealloc */
NULL, /* printfunc tp_print; */ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */ NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */ NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
(reprfunc) pyrna_func_repr, /* tp_repr */ (reprfunc) pyrna_func_repr, /* tp_repr */
/* Method suites for standard classes */ /* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */ NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */ NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */ NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */ /* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */ NULL, /* hashfunc tp_hash; */
(ternaryfunc)pyrna_func_call, /* ternaryfunc tp_call; */ (ternaryfunc)pyrna_func_call, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */ NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */ /* will only use these if this is a subtype of a py class */
NULL, /* getattrofunc tp_getattro; */ NULL, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */ NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */ /* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */ NULL, /* PyBufferProcs *tp_as_buffer; */
@ -5168,7 +5168,7 @@ PyTypeObject pyrna_func_Type= {
/*** Flags to define presence of optional/expanded features ***/ /*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT, /* long tp_flags; */ Py_TPFLAGS_DEFAULT, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */ NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/ /*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */ /* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */ NULL, /* traverseproc tp_traverse; */
@ -5178,7 +5178,7 @@ PyTypeObject pyrna_func_Type= {
/*** Assigned meaning in release 2.1 ***/ /*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/ /*** rich comparisons ***/
NULL, /* richcmpfunc tp_richcompare; */ NULL, /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/ /*** weak reference enabler ***/
#ifdef USE_WEAKREFS #ifdef USE_WEAKREFS
@ -5189,13 +5189,13 @@ PyTypeObject pyrna_func_Type= {
/*** Added in release 2.2 ***/ /*** Added in release 2.2 ***/
/* Iterators */ /* Iterators */
NULL, /* getiterfunc tp_iter; */ NULL, /* getiterfunc tp_iter; */
NULL, /* iternextfunc tp_iternext; */ NULL, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/ /*** Attribute descriptor and subclassing stuff ***/
NULL, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */ NULL, /* struct PyMemberDef *tp_members; */
NULL, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */ NULL, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */ NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrgetfunc tp_descr_get; */
@ -5203,7 +5203,7 @@ PyTypeObject pyrna_func_Type= {
0, /* long tp_dictoffset; */ 0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */ NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */ NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */ NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */ /* Low-level free-memory routine */
NULL, /* freefunc tp_free; */ NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */ /* For PyObject_IS_GC */
@ -5231,32 +5231,32 @@ static PyObject *pyrna_prop_collection_iter_next(BPy_PropertyCollectionIterRNA *
PyTypeObject pyrna_prop_collection_iter_Type= { PyTypeObject pyrna_prop_collection_iter_Type= {
PyVarObject_HEAD_INIT(NULL, 0) PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_collection_iter", /* tp_name */ "bpy_prop_collection_iter", /* tp_name */
sizeof(BPy_PropertyCollectionIterRNA), /* tp_basicsize */ sizeof(BPy_PropertyCollectionIterRNA), /* tp_basicsize */
0, /* tp_itemsize */ 0, /* tp_itemsize */
/* methods */ /* methods */
(destructor)pyrna_prop_collection_iter_dealloc, /* tp_dealloc */ (destructor)pyrna_prop_collection_iter_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */ NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */ NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
NULL,/* subclassed */ /* tp_repr */ NULL,/* subclassed */ /* tp_repr */
/* Method suites for standard classes */ /* Method suites for standard classes */
NULL, /* PyNumberMethods *tp_as_number; */ NULL, /* PyNumberMethods *tp_as_number; */
NULL, /* PySequenceMethods *tp_as_sequence; */ NULL, /* PySequenceMethods *tp_as_sequence; */
NULL, /* PyMappingMethods *tp_as_mapping; */ NULL, /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */ /* More standard operations (here for binary compatibility) */
NULL, /* hashfunc tp_hash; */ NULL, /* hashfunc tp_hash; */
NULL, /* ternaryfunc tp_call; */ NULL, /* ternaryfunc tp_call; */
NULL, /* reprfunc tp_str; */ NULL, /* reprfunc tp_str; */
/* will only use these if this is a subtype of a py class */ /* will only use these if this is a subtype of a py class */
PyObject_GenericGetAttr, /* getattrofunc tp_getattro; */ PyObject_GenericGetAttr, /* getattrofunc tp_getattro; */
NULL, /* setattrofunc tp_setattro; */ NULL, /* setattrofunc tp_setattro; */
/* Functions to access object as input/output buffer */ /* Functions to access object as input/output buffer */
NULL, /* PyBufferProcs *tp_as_buffer; */ NULL, /* PyBufferProcs *tp_as_buffer; */
@ -5264,7 +5264,7 @@ PyTypeObject pyrna_prop_collection_iter_Type= {
/*** Flags to define presence of optional/expanded features ***/ /*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT, /* long tp_flags; */ Py_TPFLAGS_DEFAULT, /* long tp_flags; */
NULL, /* char *tp_doc; Documentation string */ NULL, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/ /*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */ /* call function for all accessible objects */
NULL, /* traverseproc tp_traverse; */ NULL, /* traverseproc tp_traverse; */
@ -5278,19 +5278,19 @@ PyTypeObject pyrna_prop_collection_iter_Type= {
/*** weak reference enabler ***/ /*** weak reference enabler ***/
#ifdef USE_WEAKREFS #ifdef USE_WEAKREFS
offsetof(BPy_PropertyCollectionIterRNA, in_weakreflist), /* long tp_weaklistoffset; */ offsetof(BPy_PropertyCollectionIterRNA, in_weakreflist), /* long tp_weaklistoffset; */
#else #else
0, 0,
#endif #endif
/*** Added in release 2.2 ***/ /*** Added in release 2.2 ***/
/* Iterators */ /* Iterators */
PyObject_SelfIter, /* getiterfunc tp_iter; */ PyObject_SelfIter, /* getiterfunc tp_iter; */
(iternextfunc) pyrna_prop_collection_iter_next, /* iternextfunc tp_iternext; */ (iternextfunc) pyrna_prop_collection_iter_next, /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/ /*** Attribute descriptor and subclassing stuff ***/
NULL, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */ NULL, /* struct PyMemberDef *tp_members; */
NULL, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */ NULL, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */ NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrgetfunc tp_descr_get; */
@ -5298,12 +5298,12 @@ PyTypeObject pyrna_prop_collection_iter_Type= {
0, /* long tp_dictoffset; */ 0, /* long tp_dictoffset; */
NULL, /* initproc tp_init; */ NULL, /* initproc tp_init; */
NULL, /* allocfunc tp_alloc; */ NULL, /* allocfunc tp_alloc; */
NULL, /* newfunc tp_new; */ NULL, /* newfunc tp_new; */
/* Low-level free-memory routine */ /* Low-level free-memory routine */
NULL, /* freefunc tp_free; */ NULL, /* freefunc tp_free; */
/* For PyObject_IS_GC */ /* For PyObject_IS_GC */
NULL, /* inquiry tp_is_gc; */ NULL, /* inquiry tp_is_gc; */
NULL, /* PyObject *tp_bases; */ NULL, /* PyObject *tp_bases; */
/* method resolution order */ /* method resolution order */
NULL, /* PyObject *tp_mro; */ NULL, /* PyObject *tp_mro; */
NULL, /* PyObject *tp_cache; */ 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. 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 // this map is Blender specific: a conversion between blender and ketsji enums
std::map<int,KX_EnumInputs> m_reverseKeyTranslateTable; std::map<int,KX_EnumInputs> m_reverseKeyTranslateTable;
public: public:
BL_BlenderInputDevice() 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
m_reverseKeyTranslateTable[TIMER0 ] = KX_TIMER0 ; /* The reverse table. In order to not confuse ourselves, we */
m_reverseKeyTranslateTable[TIMER1 ] = KX_TIMER1 ; /* immediately convert all events that come in to KX codes. */
m_reverseKeyTranslateTable[TIMER2 ] = KX_TIMER2 ; m_reverseKeyTranslateTable[LEFTMOUSE ] = KX_LEFTMOUSE;
m_reverseKeyTranslateTable[MIDDLEMOUSE ] = KX_MIDDLEMOUSE;
// SYSTEM m_reverseKeyTranslateTable[RIGHTMOUSE ] = KX_RIGHTMOUSE;
#if 0 m_reverseKeyTranslateTable[WHEELUPMOUSE ] = KX_WHEELUPMOUSE;
/* **** XXX **** */ m_reverseKeyTranslateTable[WHEELDOWNMOUSE ] = KX_WHEELDOWNMOUSE;
m_reverseKeyTranslateTable[KEYBD ] = KX_KEYBD ; m_reverseKeyTranslateTable[MOUSEX ] = KX_MOUSEX;
m_reverseKeyTranslateTable[RAWKEYBD ] = KX_RAWKEYBD ; m_reverseKeyTranslateTable[MOUSEY ] = KX_MOUSEY;
m_reverseKeyTranslateTable[REDRAW ] = KX_REDRAW ;
m_reverseKeyTranslateTable[INPUTCHANGE ] = KX_INPUTCHANGE ; // TIMERS
m_reverseKeyTranslateTable[QFULL ] = KX_QFULL ;
m_reverseKeyTranslateTable[WINFREEZE ] = KX_WINFREEZE ; m_reverseKeyTranslateTable[TIMER0 ] = KX_TIMER0;
m_reverseKeyTranslateTable[WINTHAW ] = KX_WINTHAW ; m_reverseKeyTranslateTable[TIMER1 ] = KX_TIMER1;
m_reverseKeyTranslateTable[WINCLOSE ] = KX_WINCLOSE ; m_reverseKeyTranslateTable[TIMER2 ] = KX_TIMER2;
m_reverseKeyTranslateTable[WINQUIT ] = KX_WINQUIT ;
m_reverseKeyTranslateTable[Q_FIRSTTIME ] = KX_Q_FIRSTTIME ; // SYSTEM
/* **** XXX **** */ #if 0
#endif /* **** XXX **** */
// standard keyboard m_reverseKeyTranslateTable[KEYBD ] = KX_KEYBD;
m_reverseKeyTranslateTable[RAWKEYBD ] = KX_RAWKEYBD;
m_reverseKeyTranslateTable[AKEY ] = KX_AKEY ; m_reverseKeyTranslateTable[REDRAW ] = KX_REDRAW;
m_reverseKeyTranslateTable[BKEY ] = KX_BKEY ; m_reverseKeyTranslateTable[INPUTCHANGE ] = KX_INPUTCHANGE;
m_reverseKeyTranslateTable[CKEY ] = KX_CKEY ; m_reverseKeyTranslateTable[QFULL ] = KX_QFULL;
m_reverseKeyTranslateTable[DKEY ] = KX_DKEY ; m_reverseKeyTranslateTable[WINFREEZE ] = KX_WINFREEZE;
m_reverseKeyTranslateTable[EKEY ] = KX_EKEY ; m_reverseKeyTranslateTable[WINTHAW ] = KX_WINTHAW;
m_reverseKeyTranslateTable[FKEY ] = KX_FKEY ; m_reverseKeyTranslateTable[WINCLOSE ] = KX_WINCLOSE;
m_reverseKeyTranslateTable[GKEY ] = KX_GKEY ; m_reverseKeyTranslateTable[WINQUIT ] = KX_WINQUIT;
//XXX clean up 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 #ifdef WIN32
#define HKEY 'h' #define HKEY 'h'
#endif #endif
m_reverseKeyTranslateTable[HKEY ] = KX_HKEY ; m_reverseKeyTranslateTable[HKEY ] = KX_HKEY;
//XXX clean up //XXX clean up
#ifdef WIN32 #ifdef WIN32
#undef HKEY #undef HKEY
#endif #endif
m_reverseKeyTranslateTable[IKEY ] = KX_IKEY ; m_reverseKeyTranslateTable[IKEY ] = KX_IKEY;
m_reverseKeyTranslateTable[JKEY ] = KX_JKEY ; m_reverseKeyTranslateTable[JKEY ] = KX_JKEY;
m_reverseKeyTranslateTable[KKEY ] = KX_KKEY ; m_reverseKeyTranslateTable[KKEY ] = KX_KKEY;
m_reverseKeyTranslateTable[LKEY ] = KX_LKEY ; m_reverseKeyTranslateTable[LKEY ] = KX_LKEY;
m_reverseKeyTranslateTable[MKEY ] = KX_MKEY ; m_reverseKeyTranslateTable[MKEY ] = KX_MKEY;
m_reverseKeyTranslateTable[NKEY ] = KX_NKEY ; m_reverseKeyTranslateTable[NKEY ] = KX_NKEY;
m_reverseKeyTranslateTable[OKEY ] = KX_OKEY ; m_reverseKeyTranslateTable[OKEY ] = KX_OKEY;
m_reverseKeyTranslateTable[PKEY ] = KX_PKEY ; m_reverseKeyTranslateTable[PKEY ] = KX_PKEY;
m_reverseKeyTranslateTable[QKEY ] = KX_QKEY ; m_reverseKeyTranslateTable[QKEY ] = KX_QKEY;
m_reverseKeyTranslateTable[RKEY ] = KX_RKEY ; m_reverseKeyTranslateTable[RKEY ] = KX_RKEY;
m_reverseKeyTranslateTable[SKEY ] = KX_SKEY ; m_reverseKeyTranslateTable[SKEY ] = KX_SKEY;
m_reverseKeyTranslateTable[TKEY ] = KX_TKEY ; m_reverseKeyTranslateTable[TKEY ] = KX_TKEY;
m_reverseKeyTranslateTable[UKEY ] = KX_UKEY ; m_reverseKeyTranslateTable[UKEY ] = KX_UKEY;
m_reverseKeyTranslateTable[VKEY ] = KX_VKEY ; m_reverseKeyTranslateTable[VKEY ] = KX_VKEY;
m_reverseKeyTranslateTable[WKEY ] = KX_WKEY ; m_reverseKeyTranslateTable[WKEY ] = KX_WKEY;
m_reverseKeyTranslateTable[XKEY ] = KX_XKEY ; m_reverseKeyTranslateTable[XKEY ] = KX_XKEY;
m_reverseKeyTranslateTable[YKEY ] = KX_YKEY ; m_reverseKeyTranslateTable[YKEY ] = KX_YKEY;
m_reverseKeyTranslateTable[ZKEY ] = KX_ZKEY ; 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[PADPERIOD ] = KX_PADPERIOD ; m_reverseKeyTranslateTable[ZEROKEY ] = KX_ZEROKEY;
m_reverseKeyTranslateTable[PADSLASHKEY ] = KX_PADSLASHKEY ; m_reverseKeyTranslateTable[ONEKEY ] = KX_ONEKEY;
m_reverseKeyTranslateTable[PADASTERKEY ] = KX_PADASTERKEY ; m_reverseKeyTranslateTable[TWOKEY ] = KX_TWOKEY;
m_reverseKeyTranslateTable[THREEKEY ] = KX_THREEKEY;
m_reverseKeyTranslateTable[FOURKEY ] = KX_FOURKEY;
m_reverseKeyTranslateTable[PAD0 ] = KX_PAD0 ; m_reverseKeyTranslateTable[FIVEKEY ] = KX_FIVEKEY;
m_reverseKeyTranslateTable[PADMINUS ] = KX_PADMINUS ; m_reverseKeyTranslateTable[SIXKEY ] = KX_SIXKEY;
m_reverseKeyTranslateTable[PADENTER ] = KX_PADENTER ; m_reverseKeyTranslateTable[SEVENKEY ] = KX_SEVENKEY;
m_reverseKeyTranslateTable[PADPLUSKEY ] = KX_PADPLUSKEY ; m_reverseKeyTranslateTable[EIGHTKEY ] = KX_EIGHTKEY;
m_reverseKeyTranslateTable[NINEKEY ] = KX_NINEKEY;
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[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() virtual ~BL_BlenderInputDevice()
{ {
} }
KX_EnumInputs ToNative(unsigned short incode) { KX_EnumInputs ToNative(unsigned short incode) {
return m_reverseKeyTranslateTable[incode]; return m_reverseKeyTranslateTable[incode];
} }
virtual bool IsPressed(SCA_IInputDevice::KX_EnumInputs inputcode)=0; 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; virtual bool ConvertBlenderEvent(unsigned short incode,short val)=0;
#ifdef WITH_CXX_GUARDEDALLOC #ifdef WITH_CXX_GUARDEDALLOC
public: public:
void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:BL_BlenderInputDevice"); } void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:BL_BlenderInputDevice"); }
void operator delete(void *mem) { MEM_freeN(mem); } void operator delete(void *mem) { MEM_freeN(mem); }
#endif #endif
}; };
#endif //__KX_BLENDERINPUTDEVICE #endif //__KX_BLENDERINPUTDEVICE

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

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

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

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

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

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

@ -207,10 +207,10 @@ bool SCA_RandomActuator::Update()
sensible values. The termination condition states two sensible values. The termination condition states two
things: things:
1. s >= 0 is not allowed: to prevent the distro from 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. correction, really, and might also be left out.
2. s == 0 is not allowed: to prevent a division by zero 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 distribution shape. As a side effect, the distro will
never yield the exact mean. never yield the exact mean.
I am not sure whether this is consistent, since the error 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 dx = scr_save_mouse_pos.x - pt.x;
LONG dy = scr_save_mouse_pos.y - pt.y; LONG dy = scr_save_mouse_pos.y - pt.y;
if (abs(dx) > SCR_SAVE_MOUSE_MOVE_THRESHOLD if (abs(dx) > SCR_SAVE_MOUSE_MOVE_THRESHOLD
|| abs(dy) > SCR_SAVE_MOUSE_MOVE_THRESHOLD) || abs(dy) > SCR_SAVE_MOUSE_MOVE_THRESHOLD)
{ {
close = TRUE; close = TRUE;
} }

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

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

@ -237,9 +237,9 @@ bool KX_ObjectActuator::Update()
if (m_current_linear_factor > 1.0) if (m_current_linear_factor > 1.0)
m_current_linear_factor = 1.0; m_current_linear_factor = 1.0;
linV = m_current_linear_factor * m_linear_velocity; linV = m_current_linear_factor * m_linear_velocity;
parent->setLinearVelocity(linV,(m_bitLocalFlag.LinearVelocity) != 0); parent->setLinearVelocity(linV,(m_bitLocalFlag.LinearVelocity) != 0);
} else { } 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) if (m_current_angular_factor > 1.0)
m_current_angular_factor = 1.0; m_current_angular_factor = 1.0;
angV = m_current_angular_factor * m_angular_velocity; angV = m_current_angular_factor * m_angular_velocity;
parent->setAngularVelocity(angV,(m_bitLocalFlag.AngularVelocity) != 0); parent->setAngularVelocity(angV,(m_bitLocalFlag.AngularVelocity) != 0);
} else { } else {
parent->setAngularVelocity(m_angular_velocity,(m_bitLocalFlag.AngularVelocity) != 0); 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; MT_Scalar ss = si*sh;
m_target.setValue(cj*ch, sj*sc-cs, sj*cc+ss, m_target.setValue(cj*ch, sj*sc-cs, sj*cc+ss,
cj*sh, sj*ss+cc, sj*cs-sc, cj*sh, sj*ss+cc, sj*cs-sc,
-sj, cj*si, cj*ci); -sj, cj*si, cj*ci);
} }

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

@ -57,7 +57,7 @@ class KX_TrackToActuator : public SCA_IActuator
public: public:
KX_TrackToActuator(SCA_IObject* gameobj, SCA_IObject *ob, int time, 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 ~KX_TrackToActuator();
virtual CValue* GetReplica() { virtual CValue* GetReplica() {
KX_TrackToActuator* replica = new KX_TrackToActuator(*this); KX_TrackToActuator* replica = new KX_TrackToActuator(*this);

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

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

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

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

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

@ -306,8 +306,8 @@ void RAS_2DFilterManager::SetupTextures(bool depth, bool luminance)
if(depth){ if(depth){
glGenTextures(1, (GLuint*)&texname[1]); glGenTextures(1, (GLuint*)&texname[1]);
glBindTexture(GL_TEXTURE_2D, texname[1]); glBindTexture(GL_TEXTURE_2D, texname[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32, texturewidth,textureheight, glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32, texturewidth,textureheight,
0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE,NULL); 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE,NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE,
GL_NONE); GL_NONE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 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); 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); glViewport(0,0, texturewidth, textureheight);
glDisable(GL_DEPTH_TEST); glDisable(GL_DEPTH_TEST);

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

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

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

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

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

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

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

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

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

@ -194,7 +194,7 @@ public:
/** /**
* Clear the array of pointers to controllers associated with * Clear the array of pointers to controllers associated with
* this node. This does not delete the controllers themselves! * 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. * leaks.
*/ */

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

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

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

@ -375,7 +375,7 @@ void Image_dealloc (PyImage * self)
if (self->m_image->m_exports > 0) if (self->m_image->m_exports > 0)
{ {
PyErr_SetString(PyExc_SystemError, PyErr_SetString(PyExc_SystemError,
"deallocated Image object has exported buffers"); "deallocated Image object has exported buffers");
PyErr_Print(); PyErr_Print();
} }
// if release requires deleting of object, do it // 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 // get background color
PyObject * getBackground (PyImage * self, void * closure) PyObject * getBackground (PyImage * self, void * closure)
{ {
return Py_BuildValue("[BBBB]", return Py_BuildValue("[BBBB]",
getImageRender(self)->getBackground(0), getImageRender(self)->getBackground(0),
getImageRender(self)->getBackground(1), getImageRender(self)->getBackground(1),
getImageRender(self)->getBackground(2), getImageRender(self)->getBackground(2),
getImageRender(self)->getBackground(3)); getImageRender(self)->getBackground(3));
} }
// set color // set color