if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iii|i", kwlist, &r,&g,&b,&a))
return NULL;
color = PyObject_New(ColorObject, &ColorClass);
+ mylog("+%08x(%d) color_new(%d,%d,%d,%d)\n", (int)color, color->ob_refcnt, r,g,b,a);
color->rgba.r = r;
color->rgba.g = g;
color->rgba.b = b;
}
return color->rgba;
}
+void color_dealloc(PyObject* self)
+{
+ mylog("-%08x(%d) color_dealloc\n", (int)self, self->ob_refcnt);
+ PyObject_Del(self);
+}
PyTypeObject ColorClass =
{
PyObject_HEAD_INIT(NULL)
tp_name: "Color",
tp_basicsize: sizeof(ColorObject),
tp_itemsize: 0,
- tp_dealloc: dummy_dealloc,
+ tp_dealloc: color_dealloc,
tp_print: 0,
tp_getattr: color_getattr,
tp_setattr: color_setattr,
&box.xmax,
&box.ymax));
return NULL;
+ mylog("+%08x(%d) bbox_new(%d,%d,%d,%d)\n", (int)self, self->ob_refcnt, box.xmin, box.ymin, box.xmax,box.ymax);
bbox = PyObject_New(BBoxObject, &BBoxClass);
bbox->bbox = box;
return (PyObject*)bbox;
mylog("swf_setattr %08x(%d) %s = ? (%08x)\n", (int)self, self->ob_refcnt, a, o);
return 1;
}
+void bbox_dealloc(PyObject* self)
+{
+ mylog("-%08x(%d) bbox_dealloc\n", (int)self, self->ob_refcnt);
+ PyObject_Del(self);
+}
SRECT bbox_getBBox(PyObject*self)
{
BBoxObject*bbox= 0;
tp_name: "BBox",
tp_basicsize: sizeof(BBoxObject),
tp_itemsize: 0,
- tp_dealloc: dummy_dealloc,
+ tp_dealloc: bbox_dealloc,
tp_print: 0,
tp_getattr: bbox_getattr,
tp_setattr: bbox_setattr,
MATRIX matrix;
} MatrixObject;
-PyObject* f_Matrix(PyObject* self, PyObject* args, PyObject* kwargs)
+PyObject* f_Matrix(PyObject* _self, PyObject* args, PyObject* kwargs)
{
- return NULL;
+ PyObject*self = (PyObject*)PyObject_New(MatrixObject, &MatrixClass);
+ MatrixObject*matrix = (MatrixObject*)self;
+ mylog("+%08x(%d) f_Matrix", self, self->ob_refcnt);
+ static char *kwlist[] = {"x", "y", "scale", "rotate", NULL};
+ float x=0,y=0,scale=1.0,rotate=0;
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ffff", kwlist, &x,&y,&scale,&rotate))
+ return NULL;
+ mylog(" %08x(%d) f_Matrix: x=%f y=%f scale=%f rotate=%f", self, self->ob_refcnt, x,y,scale,rotate);
+ swf_GetMatrix(0, &matrix->matrix);
+ matrix->matrix.tx = (int)(x*20);
+ matrix->matrix.ty = (int)(y*20);
+ matrix->matrix.sx = (int)(scale*65536);
+ matrix->matrix.sy = (int)(scale*65536);
+ /* TODO: rotate */
+ return self;
}
static PyObject* matrix_getattr(PyObject * self, char* a)
{
+ PY_ASSERT_TYPE(self,&MatrixClass);
return NULL;
}
static int matrix_setattr(PyObject * self, char* a, PyObject* o)
{
+ PY_ASSERT_TYPE(self,&MatrixClass);
return 0;
}
MATRIX matrix_getMatrix(PyObject*self)
{
- MatrixObject*matrix= 0;
- if (!PyArg_Parse(self, "O!", &MatrixClass, &matrix)) {
- MATRIX dummy;
- memset(&dummy, 0, sizeof(dummy));
- mylog("Error: wrong type for function color_getRGBA");
- return dummy;
- }
+ mylog(" %08x(%d) matrix_getMatrix", self, self->ob_refcnt);
+ PY_ASSERT_TYPE(self,&MatrixClass);
+ MatrixObject*matrix = (MatrixObject*)self;
return matrix->matrix;
}
+void matrix_dealloc(PyObject* self)
+{
+ mylog("-%08x(%d) matrix_dealloc", self, self->ob_refcnt);
+ PyObject_Del(self);
+}
PyTypeObject MatrixClass =
{
PyObject_HEAD_INIT(NULL)
tp_name: "Matrix",
tp_basicsize: sizeof(MatrixObject),
tp_itemsize: 0,
- tp_dealloc: dummy_dealloc,
+ tp_dealloc: matrix_dealloc,
tp_print: 0,
tp_getattr: matrix_getattr,
tp_setattr: matrix_setattr,
}
return cxform->cxform;
}
+void colortransform_dealloc(PyObject* self)
+{
+ mylog("-%08x(%d) colortransform_dealloc", self, self->ob_refcnt);
+ PyObject_Del(self);
+}
PyTypeObject CXFormClass =
{
PyObject_HEAD_INIT(NULL)
tp_name: "ColorTransform",
tp_basicsize: sizeof(CXFormObject),
tp_itemsize: 0,
- tp_dealloc: dummy_dealloc,
+ tp_dealloc: colortransform_dealloc,
tp_print: 0,
tp_getattr: colortransform_getattr,
tp_setattr: colortransform_setattr,
{
return 0;
}
-GRADIENT colortransform_getGradient(PyObject*self)
+GRADIENT gradient_getGradient(PyObject*self)
{
GradientObject*gradient = 0;
if (!PyArg_Parse(self, "O!", &gradient, &gradient)) {
}
return gradient->gradient;
}
+void gradient_dealloc(PyObject* self)
+{
+ mylog("-%08x(%d) gradient_dealloc", self, self->ob_refcnt);
+ PyObject_Del(self);
+}
PyTypeObject GradientClass =
{
PyObject_HEAD_INIT(NULL)
tp_name: "Gradient",
tp_basicsize: sizeof(GradientObject),
tp_itemsize: 0,
- tp_dealloc: dummy_dealloc,
+ tp_dealloc: gradient_dealloc,
tp_print: 0,
tp_getattr: gradient_getattr,
tp_setattr: gradient_setattr,