Split __init__ into __init__ and __new__, code clean up
git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/trunk@1056 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
parent
15ba8f9b3c
commit
d4e7e7724f
@ -1 +1,2 @@
|
|||||||
|
__all__ = ['sf']
|
||||||
|
|
||||||
|
@ -41,21 +41,12 @@ PySfClock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
|
|
||||||
self = (PySfClock *)type->tp_alloc(type, 0);
|
self = (PySfClock *)type->tp_alloc(type, 0);
|
||||||
if (self != NULL)
|
if (self != NULL)
|
||||||
{
|
self->obj = new sf::Clock();
|
||||||
}
|
|
||||||
|
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
|
||||||
PySfClock_init(PySfClock *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
self->obj = new sf::Clock();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static PyObject*
|
static PyObject*
|
||||||
PySfClock_GetElapsedTime(PySfClock *self)
|
PySfClock_GetElapsedTime(PySfClock *self)
|
||||||
{
|
{
|
||||||
@ -111,7 +102,7 @@ PyTypeObject PySfClockType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfClock_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfClock_new, /* tp_new */
|
PySfClock_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
@ -57,52 +57,28 @@ static PyObject *
|
|||||||
PySfColor_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfColor_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
PySfColor *self;
|
PySfColor *self;
|
||||||
|
|
||||||
self = (PySfColor *)type->tp_alloc(type, 0);
|
self = (PySfColor *)type->tp_alloc(type, 0);
|
||||||
|
|
||||||
if (self != NULL)
|
if (self != NULL)
|
||||||
{
|
{
|
||||||
self->r = 0;
|
self->r = 0;
|
||||||
self->g = 0;
|
self->g = 0;
|
||||||
self->b = 0;
|
self->b = 0;
|
||||||
self->a = 255;
|
self->a = 255;
|
||||||
|
self->obj = new sf::Color(0, 0, 0, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
PySfColor_init(PySfColor *self, PyObject *args, PyObject *kwds)
|
PySfColor_init(PySfColor *self, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
const char *kwlist[] = {"r", "g", "b", "a", NULL};
|
const char *kwlist[] = {"r", "g", "b", "a", NULL};
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "BBB|B:Color.__init__", (char **)kwlist, &(self->r), &(self->g), &(self->b), &(self->a)))
|
||||||
long int rgba=0;
|
return -1;
|
||||||
|
PySfColorUpdate(self);
|
||||||
|
|
||||||
if (PyTuple_Size(args) == 1)
|
|
||||||
{
|
|
||||||
if ( !PyArg_ParseTuple(args, "l", &rgba))
|
|
||||||
return -1;
|
|
||||||
self->r = rgba & 0xff;
|
|
||||||
self->g = rgba>>8 & 0xff;
|
|
||||||
self->b = rgba>>16 & 0xff;
|
|
||||||
self->a = rgba>>24 & 0xff;
|
|
||||||
}
|
|
||||||
else if (PyTuple_Size(args) > 1)
|
|
||||||
if (! PyArg_ParseTupleAndKeywords(args, kwds, "BBB|B", (char **)kwlist, &(self->r), &(self->g), &(self->b), &(self->a)))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
self->obj = new sf::Color(self->r, self->g, self->b, self->a);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyMethodDef PySfColor_methods[] = {
|
|
||||||
{NULL} /* Sentinel */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
PyTypeObject PySfColorType = {
|
PyTypeObject PySfColorType = {
|
||||||
head_init
|
head_init
|
||||||
"Color", /*tp_name*/
|
"Color", /*tp_name*/
|
||||||
@ -131,7 +107,7 @@ PyTypeObject PySfColorType = {
|
|||||||
0, /* tp_weaklistoffset */
|
0, /* tp_weaklistoffset */
|
||||||
0, /* tp_iter */
|
0, /* tp_iter */
|
||||||
0, /* tp_iternext */
|
0, /* tp_iternext */
|
||||||
PySfColor_methods, /* tp_methods */
|
0, /* tp_methods */
|
||||||
PySfColor_members, /* tp_members */
|
PySfColor_members, /* tp_members */
|
||||||
0, /* tp_getset */
|
0, /* tp_getset */
|
||||||
0, /* tp_base */
|
0, /* tp_base */
|
||||||
@ -147,7 +123,7 @@ PyTypeObject PySfColorType = {
|
|||||||
PySfColor *
|
PySfColor *
|
||||||
GetNewPySfColor()
|
GetNewPySfColor()
|
||||||
{
|
{
|
||||||
return (PySfColor *)PySfColor_new(&PySfColorType, NULL, NULL);
|
return PyObject_New(PySfColor, &PySfColorType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -218,16 +194,5 @@ PySfColor_InitConst()
|
|||||||
Cyan->a = sf::Color::Cyan.a;
|
Cyan->a = sf::Color::Cyan.a;
|
||||||
PyDict_SetItemString(PySfColorType.tp_dict, "Cyan", (PyObject *)Cyan);
|
PyDict_SetItemString(PySfColorType.tp_dict, "Cyan", (PyObject *)Cyan);
|
||||||
Py_DECREF(Cyan);
|
Py_DECREF(Cyan);
|
||||||
|
|
||||||
/*
|
|
||||||
static const Color Black; ///< Black predefined color
|
|
||||||
static const Color White; ///< White predefined color
|
|
||||||
static const Color Red; ///< Red predefined color
|
|
||||||
static const Color Green; ///< Green predefined color
|
|
||||||
static const Color Blue; ///< Blue predefined color
|
|
||||||
static const Color Yellow; ///< Yellow predefined color
|
|
||||||
static const Color Magenta; ///< Magenta predefined color
|
|
||||||
static const Color Cyan; ///< Cyan predefined color
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +36,10 @@ void CustomDrawable::Render(sf::RenderTarget& Target) const
|
|||||||
if (RenderFunction)
|
if (RenderFunction)
|
||||||
PyObject_CallFunction(RenderFunction, (char *)"O", RenderWindow);
|
PyObject_CallFunction(RenderFunction, (char *)"O", RenderWindow);
|
||||||
else
|
else
|
||||||
|
{
|
||||||
PyErr_SetString(PyExc_RuntimeError, "Custom drawables must have a render method defined");
|
PyErr_SetString(PyExc_RuntimeError, "Custom drawables must have a render method defined");
|
||||||
|
PyErr_Print();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -51,21 +54,17 @@ PySfDrawable_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
{
|
{
|
||||||
PySfDrawable *self;
|
PySfDrawable *self;
|
||||||
self = (PySfDrawable *)type->tp_alloc(type, 0);
|
self = (PySfDrawable *)type->tp_alloc(type, 0);
|
||||||
return (PyObject *)self;
|
if (self != NULL)
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
PySfDrawable_init(PySfDrawable *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
self->obj = new CustomDrawable();
|
|
||||||
if (PyObject_HasAttrString((PyObject *)self, "Render"))
|
|
||||||
{
|
{
|
||||||
self->obj->RenderFunction = PyObject_GetAttrString((PyObject *)self, "Render");
|
self->IsCustom = true;
|
||||||
|
self->obj = new CustomDrawable();
|
||||||
|
if (PyObject_HasAttrString((PyObject *)self, "Render"))
|
||||||
|
self->obj->RenderFunction = PyObject_GetAttrString((PyObject *)self, "Render");
|
||||||
|
else
|
||||||
|
self->obj->RenderFunction = NULL;
|
||||||
|
self->obj->RenderWindow = NULL;
|
||||||
}
|
}
|
||||||
else
|
return (PyObject *)self;
|
||||||
self->obj->RenderFunction = NULL;
|
|
||||||
self->obj->RenderWindow = NULL;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
@ -128,7 +127,7 @@ static PyObject *
|
|||||||
PySfDrawable_SetColor(PySfDrawable* self, PyObject *args)
|
PySfDrawable_SetColor(PySfDrawable* self, PyObject *args)
|
||||||
{
|
{
|
||||||
PySfColor *Color = (PySfColor *)args;
|
PySfColor *Color = (PySfColor *)args;
|
||||||
if (! PyObject_TypeCheck(args, &PySfColorType))
|
if (!PyObject_TypeCheck(args, &PySfColorType))
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_TypeError, "Drawable.SetColor() Argument is not a sf.Color");
|
PyErr_SetString(PyExc_TypeError, "Drawable.SetColor() Argument is not a sf.Color");
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -318,15 +317,9 @@ PyTypeObject PySfDrawableType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfDrawable_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfDrawable_new, /* tp_new */
|
PySfDrawable_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
PySfDrawable *
|
|
||||||
GetNewPySfDrawable()
|
|
||||||
{
|
|
||||||
return (PySfDrawable *)PySfDrawable_new(&PySfDrawableType, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,11 +44,9 @@ public :
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
bool IsCustom;
|
||||||
CustomDrawable *obj;
|
CustomDrawable *obj;
|
||||||
} PySfDrawable;
|
} PySfDrawable;
|
||||||
|
|
||||||
PySfDrawable *
|
|
||||||
GetNewPySfDrawable();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -51,12 +51,6 @@ PySfEventText_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
PySfEventText_init(PySfEventText *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PySfEventText_dealloc(PySfEventText* self)
|
PySfEventText_dealloc(PySfEventText* self)
|
||||||
{
|
{
|
||||||
@ -99,7 +93,7 @@ PyTypeObject PySfEventTextType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEventText_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEventText_new, /* tp_new */
|
PySfEventText_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -129,12 +123,6 @@ PySfEventKey_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
PySfEventKey_init(PySfEventKey *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PySfEventKey_dealloc(PySfEventKey* self)
|
PySfEventKey_dealloc(PySfEventKey* self)
|
||||||
{
|
{
|
||||||
@ -185,7 +173,7 @@ PyTypeObject PySfEventKeyType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEventKey_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEventKey_new, /* tp_new */
|
PySfEventKey_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -210,12 +198,6 @@ PySfEventMouseMove_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
PySfEventMouseMove_init(PySfEventMouseMove *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PySfEventMouseMove_dealloc(PySfEventMouseMove *self)
|
PySfEventMouseMove_dealloc(PySfEventMouseMove *self)
|
||||||
{
|
{
|
||||||
@ -265,7 +247,7 @@ PyTypeObject PySfEventMouseMoveType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEventMouseMove_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEventMouseMove_new, /* tp_new */
|
PySfEventMouseMove_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -291,12 +273,6 @@ PySfEventMouseButton_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
PySfEventMouseButton_init(PySfEventMouseButton *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PySfEventMouseButton_dealloc(PySfEventMouseButton* self)
|
PySfEventMouseButton_dealloc(PySfEventMouseButton* self)
|
||||||
{
|
{
|
||||||
@ -347,7 +323,7 @@ PyTypeObject PySfEventMouseButtonType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEventMouseButton_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEventMouseButton_new, /* tp_new */
|
PySfEventMouseButton_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -371,12 +347,6 @@ PySfEventMouseWheel_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
PySfEventMouseWheel_init(PySfEventMouseWheel *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PySfEventMouseWheel_dealloc(PySfEventMouseWheel* self)
|
PySfEventMouseWheel_dealloc(PySfEventMouseWheel* self)
|
||||||
{
|
{
|
||||||
@ -424,7 +394,7 @@ PyTypeObject PySfEventMouseWheelType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEventMouseWheel_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEventMouseWheel_new, /* tp_new */
|
PySfEventMouseWheel_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -450,12 +420,6 @@ PySfEventJoyMove_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
PySfEventJoyMove_init(PySfEventJoyMove *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PySfEventJoyMove_dealloc(PySfEventJoyMove* self)
|
PySfEventJoyMove_dealloc(PySfEventJoyMove* self)
|
||||||
{
|
{
|
||||||
@ -506,7 +470,7 @@ PyTypeObject PySfEventJoyMoveType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEventJoyMove_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEventJoyMove_new, /* tp_new */
|
PySfEventJoyMove_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -531,12 +495,6 @@ PySfEventJoyButton_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
PySfEventJoyButton_init(PySfEventJoyButton *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PySfEventJoyButton_dealloc(PySfEventJoyButton* self)
|
PySfEventJoyButton_dealloc(PySfEventJoyButton* self)
|
||||||
{
|
{
|
||||||
@ -586,7 +544,7 @@ PyTypeObject PySfEventJoyButtonType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEventJoyButton_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEventJoyButton_new, /* tp_new */
|
PySfEventJoyButton_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -611,12 +569,6 @@ PySfEventSize_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
PySfEventSize_init(PySfEventSize *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PySfEventSize_dealloc(PySfEventSize* self)
|
PySfEventSize_dealloc(PySfEventSize* self)
|
||||||
{
|
{
|
||||||
@ -665,7 +617,7 @@ PyTypeObject PySfEventSizeType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEventSize_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEventSize_new, /* tp_new */
|
PySfEventSize_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -680,13 +632,6 @@ PyTypeObject PySfEventSizeType = {
|
|||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
static int
|
|
||||||
PySfEvent_init(PySfEvent *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
self->obj = new sf::Event();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfEvent_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfEvent_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
@ -703,6 +648,7 @@ PySfEvent_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
self->JoyMove = (PySfEventJoyMove *)PySfEventJoyMove_new(&PySfEventJoyMoveType, NULL, NULL);
|
self->JoyMove = (PySfEventJoyMove *)PySfEventJoyMove_new(&PySfEventJoyMoveType, NULL, NULL);
|
||||||
self->JoyButton = (PySfEventJoyButton *)PySfEventJoyButton_new(&PySfEventJoyButtonType, NULL, NULL);
|
self->JoyButton = (PySfEventJoyButton *)PySfEventJoyButton_new(&PySfEventJoyButtonType, NULL, NULL);
|
||||||
self->Size = (PySfEventSize *)PySfEventSize_new(&PySfEventSizeType, NULL, NULL);
|
self->Size = (PySfEventSize *)PySfEventSize_new(&PySfEventSizeType, NULL, NULL);
|
||||||
|
self->obj = new sf::Event();
|
||||||
}
|
}
|
||||||
|
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
@ -736,10 +682,6 @@ static PyMemberDef PySfEvent_members[] = {
|
|||||||
{NULL} /* Sentinel */
|
{NULL} /* Sentinel */
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyMethodDef PySfEvent_methods[] = {
|
|
||||||
{NULL} /* Sentinel */
|
|
||||||
};
|
|
||||||
|
|
||||||
PyTypeObject PySfEventType = {
|
PyTypeObject PySfEventType = {
|
||||||
head_init
|
head_init
|
||||||
"Event", /*tp_name*/
|
"Event", /*tp_name*/
|
||||||
@ -768,7 +710,7 @@ PyTypeObject PySfEventType = {
|
|||||||
0, /* tp_weaklistoffset */
|
0, /* tp_weaklistoffset */
|
||||||
0, /* tp_iter */
|
0, /* tp_iter */
|
||||||
0, /* tp_iternext */
|
0, /* tp_iternext */
|
||||||
PySfEvent_methods, /* tp_methods */
|
0, /* tp_methods */
|
||||||
PySfEvent_members, /* tp_members */
|
PySfEvent_members, /* tp_members */
|
||||||
0, /* tp_getset */
|
0, /* tp_getset */
|
||||||
0, /* tp_base */
|
0, /* tp_base */
|
||||||
@ -776,7 +718,7 @@ PyTypeObject PySfEventType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfEvent_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfEvent_new, /* tp_new */
|
PySfEvent_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
@ -42,17 +42,13 @@ PySfFont_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
PySfFont *self;
|
PySfFont *self;
|
||||||
self = (PySfFont *)type->tp_alloc(type, 0);
|
self = (PySfFont *)type->tp_alloc(type, 0);
|
||||||
if (self != NULL)
|
if (self != NULL)
|
||||||
|
{
|
||||||
self->Owner = true;
|
self->Owner = true;
|
||||||
|
self->obj = new sf::Font();
|
||||||
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfFont_init(PySfFont *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
self->obj = new sf::Font();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfFont_LoadFromFile(PySfFont* self, PyObject *args, PyObject *kwds)
|
PySfFont_LoadFromFile(PySfFont* self, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
@ -238,7 +234,7 @@ PyTypeObject PySfFontType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfFont_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfFont_new, /* tp_new */
|
PySfFont_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -246,7 +242,7 @@ PyTypeObject PySfFontType = {
|
|||||||
PySfFont *
|
PySfFont *
|
||||||
GetNewPySfFont()
|
GetNewPySfFont()
|
||||||
{
|
{
|
||||||
return (PySfFont *)PySfFont_new(&PySfFontType, NULL, NULL);
|
return PyObject_New(PySfFont, &PySfFontType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,21 +91,13 @@ PySfGlyph_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
self->Advance = 0;
|
self->Advance = 0;
|
||||||
self->Rectangle = GetNewPySfIntRect();
|
self->Rectangle = GetNewPySfIntRect();
|
||||||
self->TexCoords = GetNewPySfFloatRect();
|
self->TexCoords = GetNewPySfFloatRect();
|
||||||
|
self->obj = new sf::Glyph();
|
||||||
|
self->Rectangle->obj = &(self->obj->Rectangle);
|
||||||
|
self->TexCoords->obj = &(self->obj->TexCoords);
|
||||||
}
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
|
||||||
PySfGlyph_init(PySfGlyph *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
self->obj = new sf::Glyph();
|
|
||||||
self->Rectangle->obj = &(self->obj->Rectangle);
|
|
||||||
self->TexCoords->obj = &(self->obj->TexCoords);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
PyTypeObject PySfGlyphType = {
|
PyTypeObject PySfGlyphType = {
|
||||||
head_init
|
head_init
|
||||||
"Glyph", /*tp_name*/
|
"Glyph", /*tp_name*/
|
||||||
@ -142,7 +134,7 @@ PyTypeObject PySfGlyphType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfGlyph_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfGlyph_new, /* tp_new */
|
PySfGlyph_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -150,6 +142,6 @@ PyTypeObject PySfGlyphType = {
|
|||||||
PySfGlyph *
|
PySfGlyph *
|
||||||
GetNewPySfGlyph()
|
GetNewPySfGlyph()
|
||||||
{
|
{
|
||||||
return (PySfGlyph *)PySfGlyph_new(&PySfGlyphType, NULL, NULL);
|
return PyObject_New(PySfGlyph, &PySfGlyphType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,13 +41,7 @@ PySfImage_dealloc(PySfImage* self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfImage_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfImage_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||||
{
|
|
||||||
PySfImage *self;
|
|
||||||
self = (PySfImage *)type->tp_alloc(type, 0);
|
|
||||||
return (PyObject *)self;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfImage_Create(PySfImage* self, PyObject *args, PyObject *kwds)
|
PySfImage_Create(PySfImage* self, PyObject *args, PyObject *kwds)
|
||||||
@ -57,7 +51,7 @@ PySfImage_Create(PySfImage* self, PyObject *args, PyObject *kwds)
|
|||||||
unsigned int Width=0, Height=0;
|
unsigned int Width=0, Height=0;
|
||||||
const char *kwlist[] = {"Width", "Height", "Color", NULL};
|
const char *kwlist[] = {"Width", "Height", "Color", NULL};
|
||||||
|
|
||||||
if (! PyArg_ParseTupleAndKeywords(args, kwds, "|IIO!:Image.Create", (char **)kwlist, &Width, &Height, &PySfColorType, &ColorTmp))
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|IIO!:Image.Create", (char **)kwlist, &Width, &Height, &PySfColorType, &ColorTmp))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (ColorTmp)
|
if (ColorTmp)
|
||||||
@ -79,7 +73,7 @@ PySfImage_CopyScreen(PySfImage* self, PyObject *args)
|
|||||||
PySfIntRect *SourceRect=NULL;
|
PySfIntRect *SourceRect=NULL;
|
||||||
bool Result;
|
bool Result;
|
||||||
|
|
||||||
if (! PyArg_ParseTuple(args, "O!|O!:Image.CopyScreen", &PySfRenderWindowType, &RenderWindow, &PySfIntRectType, &SourceRect))
|
if (!PyArg_ParseTuple(args, "O!|O!:Image.CopyScreen", &PySfRenderWindowType, &RenderWindow, &PySfIntRectType, &SourceRect))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
||||||
@ -164,7 +158,7 @@ PySfImage_LoadFromMemory(PySfImage* self, PyObject *args)
|
|||||||
unsigned int SizeInBytes;
|
unsigned int SizeInBytes;
|
||||||
char *Data;
|
char *Data;
|
||||||
|
|
||||||
if (! PyArg_ParseTuple(args, "s#:Image.LoadFromMemory", &Data, &SizeInBytes))
|
if (!PyArg_ParseTuple(args, "s#:Image.LoadFromMemory", &Data, &SizeInBytes))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyBool_FromLong(self->obj->LoadFromMemory(Data, (std::size_t) SizeInBytes));
|
return PyBool_FromLong(self->obj->LoadFromMemory(Data, (std::size_t) SizeInBytes));
|
||||||
@ -205,9 +199,6 @@ PySfImage_SaveToFile (PySfImage *self, PyObject *args)
|
|||||||
save_to_file(self, args);
|
save_to_file(self, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfImage_init(PySfImage *self, PyObject *args, PyObject *kwds);
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfImage_Bind(PySfImage *self)
|
PySfImage_Bind(PySfImage *self)
|
||||||
{
|
{
|
||||||
@ -248,7 +239,7 @@ PySfImage_GetTexCoords(PySfImage* self, PyObject *args)
|
|||||||
bool Adjust = false;
|
bool Adjust = false;
|
||||||
PyObject *AdjustObj = NULL;
|
PyObject *AdjustObj = NULL;
|
||||||
|
|
||||||
if (! PyArg_ParseTuple(args, "O!|O", &PySfIntRectType, &RectArg, &AdjustObj))
|
if (!PyArg_ParseTuple(args, "O!|O:Image.GetTextCoords", &PySfIntRectType, &RectArg, &AdjustObj))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (AdjustObj)
|
if (AdjustObj)
|
||||||
@ -258,7 +249,7 @@ PySfImage_GetTexCoords(PySfImage* self, PyObject *args)
|
|||||||
PySfFloatRect *Rect;
|
PySfFloatRect *Rect;
|
||||||
|
|
||||||
Rect = GetNewPySfFloatRect();
|
Rect = GetNewPySfFloatRect();
|
||||||
Rect->obj = new sf::FloatRect ( self->obj->GetTexCoords(*(RectArg->obj), Adjust) );
|
Rect->obj = new sf::FloatRect(self->obj->GetTexCoords(*(RectArg->obj), Adjust));
|
||||||
Rect->Left = Rect->obj->Left;
|
Rect->Left = Rect->obj->Left;
|
||||||
Rect->Top = Rect->obj->Top;
|
Rect->Top = Rect->obj->Top;
|
||||||
Rect->Right = Rect->obj->Right;
|
Rect->Right = Rect->obj->Right;
|
||||||
@ -267,8 +258,26 @@ PySfImage_GetTexCoords(PySfImage* self, PyObject *args)
|
|||||||
return (PyObject *)Rect;
|
return (PyObject *)Rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
PySfImage_init(PySfImage *self, PyObject *args, PyObject *kwds)
|
||||||
|
{
|
||||||
|
int size = PyTuple_Size(args);
|
||||||
|
if (size > 0)
|
||||||
|
{
|
||||||
|
if (PySfImage_Create(self, args, kwds) == NULL)
|
||||||
|
{
|
||||||
|
if (size != 3)
|
||||||
|
return -1;
|
||||||
|
else if (PySfImage_LoadFromPixels(self, args) == NULL)
|
||||||
|
return -1;
|
||||||
|
else PyErr_Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfImage_Copy(PySfImage* self, PyObject *args);
|
PySfImage_Copy(PySfImage* self, PyObject *args, PyObject *kwds);
|
||||||
|
|
||||||
static PyMethodDef PySfImage_methods[] = {
|
static PyMethodDef PySfImage_methods[] = {
|
||||||
{"Copy", (PyCFunction)PySfImage_Copy, METH_VARARGS, "Copy(Source, DestX, DestY, SourceRect = sf.IntRect(0,0,0,0))\n\
|
{"Copy", (PyCFunction)PySfImage_Copy, METH_VARARGS, "Copy(Source, DestX, DestY, SourceRect = sf.IntRect(0,0,0,0))\n\
|
||||||
@ -352,44 +361,38 @@ Copy constructor : sf.Image(Copy) where Copy is a sf.Image instance.", /* tp_doc
|
|||||||
PySfImage_new, /* tp_new */
|
PySfImage_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static PyObject *
|
||||||
PySfImage_init(PySfImage *self, PyObject *args, PyObject *kwds)
|
PySfImage_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
int size = PyTuple_Size(args);
|
PySfImage *self;
|
||||||
if (size == 1)
|
self = (PySfImage *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
{
|
{
|
||||||
PySfImage *Image;
|
if (PyTuple_Size(args) == 1)
|
||||||
if (PyArg_ParseTuple(args, "O!", &PySfImageType, &Image))
|
|
||||||
{
|
{
|
||||||
self->obj = new sf::Image(*(Image->obj));
|
PySfImage *Image;
|
||||||
return 0;
|
if (PyArg_ParseTuple(args, "O!", &PySfImageType, &Image))
|
||||||
}
|
{
|
||||||
else PyErr_Clear();
|
self->obj = new sf::Image(*(Image->obj));
|
||||||
}
|
}
|
||||||
self->obj = new sf::Image();
|
|
||||||
if (PyTuple_Size(args) > 0)
|
|
||||||
{
|
|
||||||
if (PySfImage_Create(self, args, kwds) == NULL)
|
|
||||||
{
|
|
||||||
if (size != 3)
|
|
||||||
return -1;
|
|
||||||
else if (PySfImage_LoadFromPixels(self, args) == NULL)
|
|
||||||
return -1;
|
|
||||||
else PyErr_Clear();
|
else PyErr_Clear();
|
||||||
}
|
}
|
||||||
|
else self->obj = new sf::Image();
|
||||||
}
|
}
|
||||||
return 0;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfImage_Copy(PySfImage* self, PyObject *args)
|
PySfImage_Copy(PySfImage* self, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
|
const char *kwlist[] = {"Source", "DestX", "DestY", "SourceRect", "ApplyAlpha", NULL};
|
||||||
PySfIntRect *SourceRect = NULL;
|
PySfIntRect *SourceRect = NULL;
|
||||||
PySfImage *Source = NULL;
|
PySfImage *Source = NULL;
|
||||||
unsigned int DestX, DestY;
|
unsigned int DestX, DestY;
|
||||||
PyObject *PyApplyAlpha;
|
PyObject *PyApplyAlpha = NULL;
|
||||||
bool ApplyAlpha = false;
|
bool ApplyAlpha = false;
|
||||||
if (! PyArg_ParseTuple(args, "O!II|O!O:Image.Copy", &PySfImageType, &Source, &DestX, &DestY, &PySfIntRectType, &SourceRect, &PyApplyAlpha))
|
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!II|O!O:Image.Copy", (char **)kwlist, &PySfImageType, &Source, &DestX, &DestY, &PySfIntRectType, &SourceRect, &PyApplyAlpha))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (PyApplyAlpha)
|
if (PyApplyAlpha)
|
||||||
@ -410,6 +413,6 @@ PySfImage_Copy(PySfImage* self, PyObject *args)
|
|||||||
PySfImage *
|
PySfImage *
|
||||||
GetNewPySfImage()
|
GetNewPySfImage()
|
||||||
{
|
{
|
||||||
return (PySfImage *)PySfImage_new(&PySfImageType, NULL, NULL);
|
return PyObject_New(PySfImage, &PySfImageType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,17 +29,9 @@
|
|||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfInput_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfInput_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
|
||||||
PySfInput *self;
|
|
||||||
self = (PySfInput *)type->tp_alloc(type, 0);
|
|
||||||
return (PyObject *)self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
PySfInput_init(PySfInput *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_RuntimeError, "You can't create an Input object yourself, because an Input object must always be associated to its window.\nThe only way to get an Input is by creating a window and calling : Input = MyWindow.GetInput().");
|
PyErr_SetString(PyExc_RuntimeError, "You can't create an Input object yourself, because an Input object must always be associated to its window.\nThe only way to get an Input is by creating a window and calling : Input = MyWindow.GetInput().");
|
||||||
return -1;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject*
|
static PyObject*
|
||||||
@ -129,7 +121,7 @@ PyTypeObject PySfInputType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfInput_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfInput_new, /* tp_new */
|
PySfInput_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -137,6 +129,6 @@ PyTypeObject PySfInputType = {
|
|||||||
PySfInput *
|
PySfInput *
|
||||||
GetNewPySfInput()
|
GetNewPySfInput()
|
||||||
{
|
{
|
||||||
return (PySfInput *)PySfInput_new(&PySfInputType, NULL, NULL);
|
return PyObject_New(PySfInput, &PySfInputType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,14 +27,6 @@
|
|||||||
#include "compat.hpp"
|
#include "compat.hpp"
|
||||||
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
PySfListener_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
PySfListener *self;
|
|
||||||
self = (PySfListener *)type->tp_alloc(type, 0);
|
|
||||||
return (PyObject *)self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfListener_SetGlobalVolume(PySfListener* self, PyObject *args)
|
PySfListener_SetGlobalVolume(PySfListener* self, PyObject *args)
|
||||||
{
|
{
|
||||||
@ -130,7 +122,7 @@ PyTypeObject PySfListenerType = {
|
|||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
0, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfListener_new, /* tp_new */
|
0, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,37 +40,25 @@ PySfMusic_dealloc(PySfMusic *self)
|
|||||||
static PyObject *
|
static PyObject *
|
||||||
PySfMusic_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfMusic_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
|
unsigned int BufferSize=44100;
|
||||||
PySfMusic *self;
|
PySfMusic *self;
|
||||||
self = (PySfMusic *)type->tp_alloc(type, 0);
|
self = (PySfMusic *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
{
|
||||||
|
if (!PyArg_ParseTuple(args, "|I:Music.__new__", &BufferSize))
|
||||||
|
return NULL;
|
||||||
|
self->obj = new sf::Music(BufferSize);
|
||||||
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
|
||||||
PySfMusic_init(PySfMusic *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
unsigned int BufferSize=44100;
|
|
||||||
int size = PyTuple_Size(args);
|
|
||||||
if (size == 1)
|
|
||||||
{
|
|
||||||
if ( !PyArg_ParseTuple(args, "I:Music.Init", &BufferSize))
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else if (size > 1)
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "Music.__init__() takes at most one argument");
|
|
||||||
}
|
|
||||||
self->obj = new sf::Music(BufferSize);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject*
|
static PyObject*
|
||||||
PySfMusic_OpenFromMemory(PySfMusic *self, PyObject *args)
|
PySfMusic_OpenFromMemory(PySfMusic *self, PyObject *args)
|
||||||
{
|
{
|
||||||
unsigned int SizeInBytes;
|
unsigned int SizeInBytes;
|
||||||
char *Data;
|
char *Data;
|
||||||
|
|
||||||
if (! PyArg_ParseTuple(args, "s#:Music.OpenFromMemory", &Data, &SizeInBytes))
|
if (!PyArg_ParseTuple(args, "s#:Music.OpenFromMemory", &Data, &SizeInBytes))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyBool_FromLong(self->obj->OpenFromMemory(Data, (std::size_t) SizeInBytes));
|
return PyBool_FromLong(self->obj->OpenFromMemory(Data, (std::size_t) SizeInBytes));
|
||||||
@ -148,7 +136,7 @@ BufferSize : Size of the internal buffer, expressed in number of samples (ie. si
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfMusic_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfMusic_new, /* tp_new */
|
PySfMusic_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
@ -41,12 +41,7 @@ PySfPostFX_dealloc(PySfPostFX *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfPostFX_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfPostFX_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||||
{
|
|
||||||
PySfPostFX *self;
|
|
||||||
self = (PySfPostFX *)type->tp_alloc(type, 0);
|
|
||||||
return (PyObject *)self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfPostFX_LoadFromFile (PySfPostFX *self, PyObject *args)
|
PySfPostFX_LoadFromFile (PySfPostFX *self, PyObject *args)
|
||||||
@ -73,10 +68,6 @@ PySfPostFX_LoadFromMemory (PySfPostFX *self, PyObject *args)
|
|||||||
return PyBool_FromLong(result);
|
return PyBool_FromLong(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfPostFX_init(PySfPostFX *self, PyObject *args);
|
|
||||||
|
|
||||||
|
|
||||||
static PyObject *
PySfPostFX_SetParameter(PySfPostFX* self, PyObject *args)
{
char *Name;
float X, Y, Z, W;
int size = PyTuple_Size(args);
if (!PyArg_ParseTuple(args, "sf|fff:PostFX.SetParameter", &Name, &X, &Y, &Z, &W))
return NULL;
|
static PyObject *
PySfPostFX_SetParameter(PySfPostFX* self, PyObject *args)
{
char *Name;
float X, Y, Z, W;
int size = PyTuple_Size(args);
if (!PyArg_ParseTuple(args, "sf|fff:PostFX.SetParameter", &Name, &X, &Y, &Z, &W))
return NULL;
|
||||||
|
|
||||||
switch (size)
|
switch (size)
|
||||||
@ -179,24 +170,25 @@ Copy constructor : sf.PostFX(Copy) where Copy is a sf.PostFX instance.", /* tp_d
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfPostFX_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfPostFX_new, /* tp_new */
|
PySfPostFX_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
|
||||||
PySfPostFX_init(PySfPostFX *self, PyObject *args)
|
|
||||||
{
|
|
||||||
if (PyTuple_Size(args) == 1)
|
|
||||||
{
|
|
||||||
PySfPostFX *Copy;
|
|
||||||
if (PyArg_ParseTuple(args, "O!", &PySfPostFXType, &Copy))
|
|
||||||
self->obj = new sf::PostFX(*(Copy->obj));
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
self->obj = new sf::PostFX();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
PySfPostFX_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
|
{
|
||||||
|
PySfPostFX *self;
|
||||||
|
self = (PySfPostFX *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
{
|
||||||
|
PySfPostFX *Copy = NULL;
|
||||||
|
self->IsCustom = false;
|
||||||
|
if (!PyArg_ParseTuple(args, "|O!", &PySfPostFXType, &Copy))
|
||||||
|
return NULL;
|
||||||
|
if (Copy) self->obj = new sf::PostFX(*(Copy->obj));
|
||||||
|
else self->obj = new sf::PostFX();
|
||||||
|
}
|
||||||
|
return (PyObject *)self;
|
||||||
|
}
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
bool IsCustom;
|
||||||
sf::PostFX *obj;
|
sf::PostFX *obj;
|
||||||
} PySfPostFX;
|
} PySfPostFX;
|
||||||
|
|
||||||
|
@ -63,36 +63,33 @@ PySfFloatRect_dealloc(PySfFloatRect* self)
|
|||||||
static PyObject *
|
static PyObject *
|
||||||
PySfIntRect_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfIntRect_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
|
const char *kwlist[] = {"Left", "Top", "Right", "Bottom", NULL};
|
||||||
PySfIntRect *self;
|
PySfIntRect *self;
|
||||||
self = (PySfIntRect *)type->tp_alloc(type, 0);
|
self = (PySfIntRect *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
{
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "iiii:IntRect.__init__", (char **)kwlist, &(self->Left), &(self->Top), &(self->Right), &(self->Bottom)))
|
||||||
|
return NULL;
|
||||||
|
self->obj = new sf::IntRect(self->Left, self->Top, self->Right, self->Bottom);
|
||||||
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfFloatRect_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfFloatRect_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
|
const char *kwlist[] = {"Left", "Top", "Right", "Bottom", NULL};
|
||||||
PySfFloatRect *self;
|
PySfFloatRect *self;
|
||||||
self = (PySfFloatRect *)type->tp_alloc(type, 0);
|
self = (PySfFloatRect *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
{
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "ffff:FloatRect.__init__", (char **)kwlist, &(self->Left), &(self->Top), &(self->Right), &(self->Bottom)))
|
||||||
|
return NULL;
|
||||||
|
self->obj = new sf::FloatRect(self->Left, self->Top, self->Right, self->Bottom);
|
||||||
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfIntRect_init(PySfIntRect *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
const char *kwlist[] = {"Left", "Top", "Right", "Bottom", NULL};
|
|
||||||
int Left, Top, Right, Bottom;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "iiii:IntRect.__init__", (char **)kwlist, &Left, &Top, &Right, &Bottom))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
self->Left = Left;
|
|
||||||
self->Top = Top;
|
|
||||||
self->Right = Right;
|
|
||||||
self->Bottom = Bottom;
|
|
||||||
self->obj = new sf::IntRect(Left, Top, Right, Bottom);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfIntRect_GetWidth(PySfIntRect *self)
|
PySfIntRect_GetWidth(PySfIntRect *self)
|
||||||
{
|
{
|
||||||
@ -133,24 +130,6 @@ PySfFloatRect_Contains(PySfFloatRect* self, PyObject *args);
|
|||||||
static PyObject *
|
static PyObject *
|
||||||
PySfFloatRect_Intersects(PySfFloatRect* self, PyObject *args);
|
PySfFloatRect_Intersects(PySfFloatRect* self, PyObject *args);
|
||||||
|
|
||||||
static int
|
|
||||||
PySfFloatRect_init(PySfFloatRect *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
const char *kwlist[] = {"Left", "Top", "Right", "Bottom", NULL};
|
|
||||||
float Left, Top, Right, Bottom;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "ffff:FloatRect.__init__", (char **)kwlist, &Left, &Top, &Right, &Bottom))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
self->Left = Left;
|
|
||||||
self->Top = Top;
|
|
||||||
self->Right = Right;
|
|
||||||
self->Bottom = Bottom;
|
|
||||||
self->obj = new sf::FloatRect(Left, Top, Right, Bottom);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfIntRect_Offset(PySfIntRect* self, PyObject *args)
|
PySfIntRect_Offset(PySfIntRect* self, PyObject *args)
|
||||||
{
|
{
|
||||||
@ -259,7 +238,7 @@ PyTypeObject PySfIntRectType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfIntRect_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfIntRect_new, /* tp_new */
|
PySfIntRect_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -301,7 +280,7 @@ PyTypeObject PySfFloatRectType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfFloatRect_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfFloatRect_new, /* tp_new */
|
PySfFloatRect_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -406,13 +385,13 @@ PySfFloatRectUpdateSelf(PySfFloatRect *self)
|
|||||||
PySfIntRect *
|
PySfIntRect *
|
||||||
GetNewPySfIntRect()
|
GetNewPySfIntRect()
|
||||||
{
|
{
|
||||||
return (PySfIntRect *)PySfIntRect_new(&PySfIntRectType, NULL, NULL);
|
return PyObject_New(PySfIntRect, &PySfIntRectType);
|
||||||
}
|
}
|
||||||
|
|
||||||
PySfFloatRect *
|
PySfFloatRect *
|
||||||
GetNewPySfFloatRect()
|
GetNewPySfFloatRect()
|
||||||
{
|
{
|
||||||
return (PySfFloatRect *)PySfFloatRect_new(&PySfFloatRectType, NULL, NULL);
|
return PyObject_New(PySfFloatRect, &PySfFloatRectType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,19 +53,11 @@ PySfRenderWindow_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
{
|
{
|
||||||
PySfRenderWindow *self;
|
PySfRenderWindow *self;
|
||||||
self = (PySfRenderWindow *)type->tp_alloc(type, 0);
|
self = (PySfRenderWindow *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
self->obj = new sf::RenderWindow();
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfRenderWindow_init(PySfRenderWindow *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
self->obj = new sf::RenderWindow();
|
|
||||||
if (PyTuple_Size(args) > 0)
|
|
||||||
if (PySfWindow_Create((PySfWindow *)self, args, kwds) == NULL)
|
|
||||||
return -1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfRenderWindow_Capture(PySfRenderWindow *self)
|
PySfRenderWindow_Capture(PySfRenderWindow *self)
|
||||||
{
|
{
|
||||||
@ -99,13 +91,13 @@ PySfRenderWindow_DrawObject(PySfRenderWindow *RenderWindow, PySfDrawable *Obj)
|
|||||||
{
|
{
|
||||||
if (PyObject_TypeCheck((PyObject *)Obj, &PySfDrawableType))
|
if (PyObject_TypeCheck((PyObject *)Obj, &PySfDrawableType))
|
||||||
{
|
{
|
||||||
if (PyObject_HasAttrString((PyObject *)Obj, "Render"))
|
if (Obj->IsCustom)
|
||||||
{
|
{
|
||||||
Py_CLEAR(Obj->obj->RenderWindow);
|
Py_CLEAR(Obj->obj->RenderWindow);
|
||||||
Py_INCREF(RenderWindow);
|
Py_INCREF(RenderWindow);
|
||||||
Obj->obj->RenderWindow = RenderWindow;
|
Obj->obj->RenderWindow = RenderWindow;
|
||||||
}
|
}
|
||||||
RenderWindow->obj->Draw( *(Obj->obj) );
|
RenderWindow->obj->Draw(*(Obj->obj));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -146,23 +138,14 @@ PySfRenderWindow_Draw(PySfRenderWindow *self, PyObject *args)
|
|||||||
static PyObject *
|
static PyObject *
|
||||||
PySfRenderWindow_Clear(PySfRenderWindow *self, PyObject *args)
|
PySfRenderWindow_Clear(PySfRenderWindow *self, PyObject *args)
|
||||||
{
|
{
|
||||||
PySfColor *Color;
|
PySfColor *Color = NULL;
|
||||||
int size = PyTuple_Size(args);
|
if (!PyArg_ParseTuple(args, "|O!:RenderWindow.Clear", &PySfColorType, &Color))
|
||||||
if (size == 1)
|
return NULL;
|
||||||
{
|
if (Color == NULL) self->obj->Clear(sf::Color::Black);
|
||||||
if (!PyArg_ParseTuple(args, "O!:RenderWindow.Clear", &PySfColorType, &Color))
|
|
||||||
return NULL;
|
|
||||||
PySfColorUpdate(Color);
|
|
||||||
self->obj->Clear(*(Color->obj));
|
|
||||||
}
|
|
||||||
else if (size == 0)
|
|
||||||
{
|
|
||||||
self->obj->Clear(sf::Color::Black);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_TypeError, "RenderWindow.Clear() takes one or zero argument");
|
PySfColorUpdate(Color);
|
||||||
return NULL;
|
self->obj->Clear(*(Color->obj));
|
||||||
}
|
}
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
@ -281,7 +264,7 @@ Parameters:\n\
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfRenderWindow_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfRenderWindow_new, /* tp_new */
|
PySfRenderWindow_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
@ -45,16 +45,14 @@ PySfShape_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
{
|
{
|
||||||
PySfShape *self;
|
PySfShape *self;
|
||||||
self = (PySfShape *)type->tp_alloc(type, 0);
|
self = (PySfShape *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
{
|
||||||
|
self->obj = new sf::Shape();
|
||||||
|
self->IsCustom = false;
|
||||||
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfShape_init(PySfShape *self, PyObject *args)
|
|
||||||
{
|
|
||||||
self->obj = new sf::Shape();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// void AddPoint(float X, float Y, const Color& Col = Color(255, 255, 255), const Color& OutlineCol = Color(0, 0, 0));
|
// void AddPoint(float X, float Y, const Color& Col = Color(255, 255, 255), const Color& OutlineCol = Color(0, 0, 0));
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfShape_AddPoint(PySfShape* self, PyObject *args, PyObject *kwds)
|
PySfShape_AddPoint(PySfShape* self, PyObject *args, PyObject *kwds)
|
||||||
@ -231,7 +229,7 @@ PySfShape_SetPointOutlineColor(PySfShape* self, PyObject *args)
|
|||||||
{
|
{
|
||||||
unsigned int Index;
|
unsigned int Index;
|
||||||
PySfColor *Color;
|
PySfColor *Color;
|
||||||
if (!PyArg_ParseTuple(args, "IO!:Shape:SetPointOutlineColor", &Index, &PySfColorType, &Color))
|
if (!PyArg_ParseTuple(args, "IO!:Shape.SetPointOutlineColor", &Index, &PySfColorType, &Color))
|
||||||
return NULL;
|
return NULL;
|
||||||
PySfColorUpdate(Color);
|
PySfColorUpdate(Color);
|
||||||
self->obj->SetPointOutlineColor(Index, *(Color->obj));
|
self->obj->SetPointOutlineColor(Index, *(Color->obj));
|
||||||
@ -365,7 +363,7 @@ PyTypeObject PySfShapeType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfShape_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfShape_new, /* tp_new */
|
PySfShape_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -374,6 +372,8 @@ PyTypeObject PySfShapeType = {
|
|||||||
PySfShape *
|
PySfShape *
|
||||||
GetNewPySfShape()
|
GetNewPySfShape()
|
||||||
{
|
{
|
||||||
return (PySfShape *)PySfShape_new(&PySfShapeType, NULL, NULL);
|
PySfShape *Shape = PyObject_New(PySfShape, &PySfShapeType);
|
||||||
|
Shape->IsCustom = false;
|
||||||
|
return Shape;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
bool IsCustom;
|
||||||
sf::Shape *obj;
|
sf::Shape *obj;
|
||||||
} PySfShape;
|
} PySfShape;
|
||||||
|
|
||||||
|
@ -39,23 +39,38 @@ PySfSound_dealloc(PySfSound *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfSound_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfSound_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||||
{
|
|
||||||
PySfSound *self;
|
|
||||||
self = (PySfSound *)type->tp_alloc(type, 0);
|
|
||||||
return (PyObject *)self;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
PySfSound_init(PySfSound *self, PyObject *args, PyObject *kwds);
|
PySfSound_init(PySfSound *self, PyObject *args, PyObject *kwds)
|
||||||
|
{
|
||||||
|
const char *kwlist[] = {"Buffer", "Loop", "Pitch", "Volume", "X", "Y", "Z", NULL};
|
||||||
|
PySfSoundBuffer *Buffer=NULL;
|
||||||
|
PyObject *Loop=NULL;
|
||||||
|
float Pitch=1.f, Volume=100.f, X=0.f, Y=0.f, Z=0.f;
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O!Offfff:Sound.__new__", (char **)kwlist, &PySfSoundBufferType, &Buffer, &Loop, &Pitch, &Volume, &X, &Y, &Z))
|
||||||
|
return -1;
|
||||||
|
{
|
||||||
|
if (Loop)
|
||||||
|
self->obj->SetLoop(PyBool_AsBool(Loop));
|
||||||
|
if (Buffer)
|
||||||
|
self->obj->SetBuffer(*(Buffer->obj));
|
||||||
|
self->obj->SetPitch(Pitch);
|
||||||
|
self->obj->SetVolume(Volume);
|
||||||
|
self->obj->SetPosition(X, Y, Z);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static PyObject*
|
static PyObject*
|
||||||
PySfSound_SetBuffer(PySfSound *self, PyObject *args)
|
PySfSound_SetBuffer(PySfSound *self, PyObject *args)
|
||||||
{
|
{
|
||||||
PySfSoundBuffer *Buffer = (PySfSoundBuffer *)args;
|
PySfSoundBuffer *Buffer = (PySfSoundBuffer *)args;
|
||||||
if (!PyObject_TypeCheck(args, &PySfSoundBufferType))
|
if (!PyObject_TypeCheck(args, &PySfSoundBufferType))
|
||||||
|
{
|
||||||
PyErr_SetString(PyExc_TypeError, "Sound.SetBuffer() The argument must be a sf.SoundBuffer.");
|
PyErr_SetString(PyExc_TypeError, "Sound.SetBuffer() The argument must be a sf.SoundBuffer.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
self->obj->SetBuffer(*(Buffer->obj));
|
self->obj->SetBuffer(*(Buffer->obj));
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
@ -269,38 +284,26 @@ Copy constructor : Sound(Copy) where Copy is a sf.Sound instance.", /* tp_doc */
|
|||||||
PySfSound_new, /* tp_new */
|
PySfSound_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static PyObject *
|
||||||
PySfSound_init(PySfSound *self, PyObject *args, PyObject *kwds)
|
PySfSound_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
const char *kwlist[] = {"Buffer", "Loop", "Pitch", "Volume", "X", "Y", "Z", NULL};
|
PySfSound *self;
|
||||||
PySfSoundBuffer *Buffer=NULL;
|
self = (PySfSound *)type->tp_alloc(type, 0);
|
||||||
bool Loop=false;
|
if (self != NULL)
|
||||||
PyObject *LoopObj=Py_False;
|
|
||||||
float Pitch=1.f, Volume=100.f, X=0.f, Y=0.f, Z=0.f;
|
|
||||||
|
|
||||||
if (PyTuple_Size(args) == 1)
|
|
||||||
{
|
{
|
||||||
PySfSound *Copy;
|
if (PyTuple_Size(args) == 1)
|
||||||
if (PyArg_ParseTuple(args, "O!:Sound.__init__", &PySfSoundType, &Copy))
|
|
||||||
{
|
{
|
||||||
self->obj = new sf::Sound(*(Copy->obj));
|
PySfSound *Copy;
|
||||||
return 0;
|
if (PyArg_ParseTuple(args, "O!:Sound.__new__", &PySfSoundType, &Copy))
|
||||||
|
{
|
||||||
|
self->obj = new sf::Sound(*(Copy->obj));
|
||||||
|
return (PyObject *)self;
|
||||||
|
}
|
||||||
|
else PyErr_Clear();
|
||||||
}
|
}
|
||||||
else PyErr_Clear();
|
|
||||||
}
|
|
||||||
if (PyTuple_Size(args) > 0)
|
|
||||||
{
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|Offfff:Sound.__init__", (char **)kwlist, &PySfSoundBufferType, &Buffer, &LoopObj, &Pitch, &Volume, &X, &Y, &Z))
|
|
||||||
return -1;
|
|
||||||
if (PyObject_IsTrue(LoopObj))
|
|
||||||
Loop = true;
|
|
||||||
|
|
||||||
self->obj = new sf::Sound(*(Buffer->obj), Loop, Pitch, Volume, sf::Vector3f(X, Y, Z));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
self->obj = new sf::Sound();
|
self->obj = new sf::Sound();
|
||||||
|
}
|
||||||
return 0;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -35,15 +35,7 @@ PySfSoundBuffer_dealloc(PySfSoundBuffer *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfSoundBuffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfSoundBuffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||||
{
|
|
||||||
PySfSoundBuffer *self;
|
|
||||||
self = (PySfSoundBuffer *)type->tp_alloc(type, 0);
|
|
||||||
return (PyObject *)self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
PySfSoundBuffer_init(PySfSoundBuffer *self, PyObject *args, PyObject *kwds);
|
|
||||||
|
|
||||||
static PyObject*
|
static PyObject*
|
||||||
PySfSoundBuffer_LoadFromFile(PySfSoundBuffer *self, PyObject *args)
|
PySfSoundBuffer_LoadFromFile(PySfSoundBuffer *self, PyObject *args)
|
||||||
@ -170,32 +162,33 @@ Copy constructor : SoundBuffer(Copy) where Copy is a sf.SoundBuffer instance.",
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfSoundBuffer_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfSoundBuffer_new, /* tp_new */
|
PySfSoundBuffer_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static PyObject *
|
||||||
PySfSoundBuffer_init(PySfSoundBuffer *self, PyObject *args, PyObject *kwds)
|
PySfSoundBuffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
int size = PyTuple_Size(args);
|
PySfSoundBuffer *self;
|
||||||
if (size == 1)
|
self = (PySfSoundBuffer *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
{
|
{
|
||||||
PySfSoundBuffer *Copy;
|
PySfSoundBuffer *Copy=NULL;
|
||||||
if (!PyArg_ParseTuple(args, "O!:SoundBuffer.__init__", &PySfSoundBufferType, &Copy))
|
if (PyArg_ParseTuple(args, "O!:SoundBuffer.__init__", &PySfSoundBufferType, &Copy))
|
||||||
return -1;
|
{
|
||||||
self->obj = new sf::SoundBuffer(*(Copy->obj));
|
self->obj = new sf::SoundBuffer(*(Copy->obj));
|
||||||
}
|
return (PyObject *)self;
|
||||||
else if (size == 0)
|
}
|
||||||
|
PyErr_Clear();
|
||||||
self->obj = new sf::SoundBuffer();
|
self->obj = new sf::SoundBuffer();
|
||||||
else
|
}
|
||||||
PyErr_SetString(PyExc_TypeError, "SoundBuffer.__init__() takes 0 or 1 argument");
|
return (PyObject *)self;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PySfSoundBuffer *
|
PySfSoundBuffer *
|
||||||
GetNewPySfSoundBuffer()
|
GetNewPySfSoundBuffer()
|
||||||
{
|
{
|
||||||
return (PySfSoundBuffer *)PySfSoundBuffer_new(&PySfSoundBufferType, NULL, NULL);
|
return PyObject_New(PySfSoundBuffer, &PySfSoundBufferType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,16 +43,11 @@ PySfSoundBufferRecorder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
{
|
{
|
||||||
PySfSoundBufferRecorder *self;
|
PySfSoundBufferRecorder *self;
|
||||||
self = (PySfSoundBufferRecorder *)type->tp_alloc(type, 0);
|
self = (PySfSoundBufferRecorder *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
self->obj = new sf::SoundBufferRecorder();
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfSoundBufferRecorder_init(PySfSoundBufferRecorder *self, PyObject *args)
|
|
||||||
{
|
|
||||||
self->obj = new sf::SoundBufferRecorder();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfSoundBufferRecorder_GetBuffer(PySfSoundBufferRecorder* self)
|
PySfSoundBufferRecorder_GetBuffer(PySfSoundBufferRecorder* self)
|
||||||
{
|
{
|
||||||
@ -103,7 +98,7 @@ PyTypeObject PySfSoundBufferRecorderType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfSoundBufferRecorder_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfSoundBufferRecorder_new, /* tp_new */
|
PySfSoundBufferRecorder_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
@ -76,17 +76,14 @@ PySfSoundRecorder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
{
|
{
|
||||||
PySfSoundRecorder *self;
|
PySfSoundRecorder *self;
|
||||||
self = (PySfSoundRecorder *)type->tp_alloc(type, 0);
|
self = (PySfSoundRecorder *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
{
|
||||||
|
self->obj = new CustomSoundRecorder();
|
||||||
|
self->obj->SoundRecorder = (PyObject *)self;
|
||||||
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfSoundRecorder_init(PySfSoundRecorder *self, PyObject *args)
|
|
||||||
{
|
|
||||||
self->obj = new CustomSoundRecorder();
|
|
||||||
self->obj->SoundRecorder = (PyObject *)self;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfSoundRecorder_Start(PySfSoundRecorder* self, PyObject *args)
|
PySfSoundRecorder_Start(PySfSoundRecorder* self, PyObject *args)
|
||||||
{
|
{
|
||||||
@ -162,7 +159,7 @@ Construct the sound recorder with a callback function for processing captured sa
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfSoundRecorder_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfSoundRecorder_new, /* tp_new */
|
PySfSoundRecorder_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
@ -81,15 +81,6 @@ void CustomSoundStream::Init(unsigned int ChannelsCount, unsigned int SampleRate
|
|||||||
Initialize(ChannelsCount, SampleRate);
|
Initialize(ChannelsCount, SampleRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfSoundStream_init(PySfSoundStream *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
self->obj = new CustomSoundStream();
|
|
||||||
self->obj->PyData = NULL;
|
|
||||||
self->obj->SoundStream = (PyObject *)self;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
PySfSoundStream_dealloc(PySfSoundStream *self)
|
PySfSoundStream_dealloc(PySfSoundStream *self)
|
||||||
{
|
{
|
||||||
@ -102,6 +93,12 @@ PySfSoundStream_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
{
|
{
|
||||||
PySfSoundStream *self;
|
PySfSoundStream *self;
|
||||||
self = (PySfSoundStream *)type->tp_alloc(type, 0);
|
self = (PySfSoundStream *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
{
|
||||||
|
self->obj = new CustomSoundStream();
|
||||||
|
self->obj->PyData = NULL;
|
||||||
|
self->obj->SoundStream = (PyObject *)self;
|
||||||
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,7 +307,7 @@ or for streaming sound from the network", /* tp_doc */
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfSoundStream_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfSoundStream_new, /* tp_new */
|
PySfSoundStream_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
@ -57,6 +57,7 @@ PySfSprite_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
if (self != NULL)
|
if (self != NULL)
|
||||||
{
|
{
|
||||||
self->Image = NULL;
|
self->Image = NULL;
|
||||||
|
self->IsCustom = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
bool IsCustom;
|
||||||
sf::Sprite *obj;
|
sf::Sprite *obj;
|
||||||
PySfImage *Image;
|
PySfImage *Image;
|
||||||
} PySfSprite;
|
} PySfSprite;
|
||||||
|
@ -48,59 +48,14 @@ PySfString_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
PySfString *self;
|
PySfString *self;
|
||||||
self = (PySfString *)type->tp_alloc(type, 0);
|
self = (PySfString *)type->tp_alloc(type, 0);
|
||||||
if (self != NULL)
|
if (self != NULL)
|
||||||
|
{
|
||||||
self->font = NULL;
|
self->font = NULL;
|
||||||
|
self->IsCustom = false;
|
||||||
|
self->obj = new sf::String();
|
||||||
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfString_init(PySfString *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
const char *kwlist[] = {"Text", "Font", "Size", NULL};
|
|
||||||
float Size = 30.f;
|
|
||||||
PyObject *Text=NULL;
|
|
||||||
PySfFont *FontTmp = NULL;
|
|
||||||
sf::Font *Font;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OO!f:String.__init__", (char **)kwlist, &Text, &PySfFontType, &FontTmp, &Size))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (FontTmp)
|
|
||||||
{
|
|
||||||
Font = (FontTmp->obj);
|
|
||||||
Py_INCREF(FontTmp);
|
|
||||||
self->font = FontTmp;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
Font = (sf::Font *)&(sf::Font::GetDefaultFont());
|
|
||||||
|
|
||||||
if (Text != NULL)
|
|
||||||
{
|
|
||||||
if (PyUnicode_Check(Text))
|
|
||||||
{
|
|
||||||
#if Py_UNICODE_SIZE == 4
|
|
||||||
self->obj = new sf::String((sf::Uint32 *)PyUnicode_AS_UNICODE(Text), *Font, Size);
|
|
||||||
#else
|
|
||||||
self->obj = new sf::String((sf::Uint16 *)PyUnicode_AS_UNICODE(Text), *Font, Size);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#ifdef IS_PY3K
|
|
||||||
else if (PyBytes_Check(Text))
|
|
||||||
self->obj = new sf::String(sf::Unicode::UTF8String((sf::Uint8 *)PyBytes_AsString(Text)), *Font, Size);
|
|
||||||
#else
|
|
||||||
else if (PyString_Check(Text))
|
|
||||||
self->obj = new sf::String(sf::Unicode::UTF8String((sf::Uint8 *)PyString_AsString(Text)), *Font, Size);
|
|
||||||
#endif
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "String.__init__() first argument must be str");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
self->obj = new sf::String("", *Font, Size);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfString_SetText(PySfString* self, PyObject *args)
|
PySfString_SetText(PySfString* self, PyObject *args)
|
||||||
{
|
{
|
||||||
@ -236,6 +191,44 @@ PySfString_GetCharacterPos(PySfString* self, PyObject *args)
|
|||||||
return Py_BuildValue("ff", Pos.x, Pos.y);
|
return Py_BuildValue("ff", Pos.x, Pos.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
PySfString_init(PySfString *self, PyObject *args, PyObject *kwds)
|
||||||
|
{
|
||||||
|
const char *kwlist[] = {"Text", "Font", "Size", NULL};
|
||||||
|
float Size = 30.f;
|
||||||
|
PyObject *Text=NULL;
|
||||||
|
PySfFont *Font = NULL;
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OO!f:String.__new__", (char **)kwlist, &Text, &PySfFontType, &Font, &Size))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (Text != NULL)
|
||||||
|
{
|
||||||
|
if (PyUnicode_Check(Text))
|
||||||
|
{
|
||||||
|
#if Py_UNICODE_SIZE == 4
|
||||||
|
self->obj->SetText((sf::Uint32 *)PyUnicode_AS_UNICODE(Text));
|
||||||
|
#else
|
||||||
|
self->obj->SetText((sf::Uint16 *)PyUnicode_AS_UNICODE(Text));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#ifdef IS_PY3K
|
||||||
|
else if (PyBytes_Check(Text))
|
||||||
|
self->obj->SetText(sf::Unicode::UTF8String((sf::Uint8 *)PyBytes_AsString(Text)));
|
||||||
|
#else
|
||||||
|
else if (PyString_Check(Text))
|
||||||
|
self->obj->SetText(sf::Unicode::UTF8String((sf::Uint8 *)PyString_AsString(Text)));
|
||||||
|
#endif
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PyErr_SetString(PyExc_TypeError, "String.__init__() first argument must be str");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Font) PySfString_SetFont(self, (PyObject *)Font);
|
||||||
|
self->obj->SetSize(Size);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static PyMethodDef PySfString_methods[] = {
|
static PyMethodDef PySfString_methods[] = {
|
||||||
{"GetCharacterPos", (PyCFunction)PySfString_GetCharacterPos, METH_O, "GetCharacterPos(Index)\n\
|
{"GetCharacterPos", (PyCFunction)PySfString_GetCharacterPos, METH_O, "GetCharacterPos(Index)\n\
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
|
bool IsCustom;
|
||||||
sf::String *obj;
|
sf::String *obj;
|
||||||
PySfFont *font;
|
PySfFont *font;
|
||||||
} PySfString;
|
} PySfString;
|
||||||
|
@ -48,17 +48,16 @@ PySfVideoMode_dealloc(PySfVideoMode* self)
|
|||||||
static PyObject *
|
static PyObject *
|
||||||
PySfVideoMode_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfVideoMode_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
|
const char *kwlist[] = {"Width", "Height", "BitsPerPixel", NULL};
|
||||||
PySfVideoMode *self;
|
PySfVideoMode *self;
|
||||||
|
|
||||||
self = (PySfVideoMode *)type->tp_alloc(type, 0);
|
self = (PySfVideoMode *)type->tp_alloc(type, 0);
|
||||||
|
|
||||||
if (self != NULL)
|
if (self != NULL)
|
||||||
{
|
{
|
||||||
self->Width = 0;
|
|
||||||
self->Height = 0;
|
|
||||||
self->BitsPerPixel = 32;
|
self->BitsPerPixel = 32;
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "II|I:VideoMode.__init__", (char **)kwlist, &self->Width, &self->Height, &self->BitsPerPixel))
|
||||||
|
return NULL;
|
||||||
|
self->obj = new sf::VideoMode(self->Width, self->Height, self->BitsPerPixel);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,27 +69,10 @@ PySfVideoModeUpdate(PySfVideoMode *self)
|
|||||||
self->obj->BitsPerPixel = self->BitsPerPixel;
|
self->obj->BitsPerPixel = self->BitsPerPixel;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
PySfVideoMode_init(PySfVideoMode *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
const char *kwlist[] = {"Width", "Height", "BitsPerPixel", NULL};
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "II|I:VideoMode.__init__", (char **)kwlist, &self->Width, &self->Height, &self->BitsPerPixel))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
self->obj = new sf::VideoMode(self->Width, self->Height, self->BitsPerPixel);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PySfVideoMode_IsValid(PySfVideoMode* self)
|
PySfVideoMode_IsValid(PySfVideoMode* self)
|
||||||
{
|
{
|
||||||
self->obj->Width = self->Width;
|
PySfVideoModeUpdate(self);
|
||||||
self->obj->Height = self->Height;
|
|
||||||
self->obj->BitsPerPixel = self->BitsPerPixel;
|
|
||||||
return PyBool_FromLong(self->obj->IsValid());
|
return PyBool_FromLong(self->obj->IsValid());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,7 +82,7 @@ PySfVideoMode_GetDesktopMode(PySfVideoMode* self)
|
|||||||
PySfVideoMode *VideoMode;
|
PySfVideoMode *VideoMode;
|
||||||
|
|
||||||
VideoMode = GetNewPySfVideoMode();
|
VideoMode = GetNewPySfVideoMode();
|
||||||
VideoMode->obj = new sf::VideoMode ( sf::VideoMode::GetDesktopMode() );
|
VideoMode->obj = new sf::VideoMode(sf::VideoMode::GetDesktopMode());
|
||||||
VideoMode->Width = VideoMode->obj->Width;
|
VideoMode->Width = VideoMode->obj->Width;
|
||||||
VideoMode->Height = VideoMode->obj->Height;
|
VideoMode->Height = VideoMode->obj->Height;
|
||||||
VideoMode->BitsPerPixel = VideoMode->obj->BitsPerPixel;
|
VideoMode->BitsPerPixel = VideoMode->obj->BitsPerPixel;
|
||||||
@ -117,7 +99,7 @@ PySfVideoMode_GetMode(PySfVideoMode* self, PyObject *args)
|
|||||||
index = (std::size_t)PyLong_AsLong(args);
|
index = (std::size_t)PyLong_AsLong(args);
|
||||||
|
|
||||||
VideoMode = GetNewPySfVideoMode();
|
VideoMode = GetNewPySfVideoMode();
|
||||||
VideoMode->obj = new sf::VideoMode ( sf::VideoMode::GetMode(index) );
|
VideoMode->obj = new sf::VideoMode(sf::VideoMode::GetMode(index));
|
||||||
VideoMode->Width = VideoMode->obj->Width;
|
VideoMode->Width = VideoMode->obj->Width;
|
||||||
VideoMode->Height = VideoMode->obj->Height;
|
VideoMode->Height = VideoMode->obj->Height;
|
||||||
VideoMode->BitsPerPixel = VideoMode->obj->BitsPerPixel;
|
VideoMode->BitsPerPixel = VideoMode->obj->BitsPerPixel;
|
||||||
@ -132,7 +114,6 @@ PySfVideoMode_GetModesCount(PySfVideoMode* self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static PyMethodDef PySfVideoMode_methods[] = {
|
static PyMethodDef PySfVideoMode_methods[] = {
|
||||||
{"IsValid", (PyCFunction)PySfVideoMode_IsValid, METH_NOARGS, "IsValid()\nTell whether or not the video mode is supported."},
|
{"IsValid", (PyCFunction)PySfVideoMode_IsValid, METH_NOARGS, "IsValid()\nTell whether or not the video mode is supported."},
|
||||||
{"GetDesktopMode", (PyCFunction)PySfVideoMode_GetDesktopMode, METH_STATIC | METH_NOARGS, "GetDesktopMode()\nGet the current desktop video mode."},
|
{"GetDesktopMode", (PyCFunction)PySfVideoMode_GetDesktopMode, METH_STATIC | METH_NOARGS, "GetDesktopMode()\nGet the current desktop video mode."},
|
||||||
@ -190,7 +171,7 @@ Construct the video mode with its attributes : VideoMode(ModeWidth, ModeHeight,
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfVideoMode_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfVideoMode_new, /* tp_new */
|
PySfVideoMode_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -199,6 +180,6 @@ Construct the video mode with its attributes : VideoMode(ModeWidth, ModeHeight,
|
|||||||
PySfVideoMode *
|
PySfVideoMode *
|
||||||
GetNewPySfVideoMode()
|
GetNewPySfVideoMode()
|
||||||
{
|
{
|
||||||
return (PySfVideoMode *)PySfVideoMode_new(&PySfVideoModeType, NULL, NULL);
|
return PyObject_New(PySfVideoMode, &PySfVideoModeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,6 +51,8 @@ PySfWindow_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
{
|
{
|
||||||
PySfWindow *self;
|
PySfWindow *self;
|
||||||
self = (PySfWindow *)type->tp_alloc(type, 0);
|
self = (PySfWindow *)type->tp_alloc(type, 0);
|
||||||
|
if (self != NULL)
|
||||||
|
self->obj = new sf::Window();
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,8 +131,7 @@ PySfWindow_Create(PySfWindow* self, PyObject *args, PyObject *kwds)
|
|||||||
static int
|
static int
|
||||||
PySfWindow_init(PySfWindow *self, PyObject *args, PyObject *kwds)
|
PySfWindow_init(PySfWindow *self, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
self->obj = new sf::Window();
|
if (args != NULL)
|
||||||
if (PyTuple_Size(args) > 0)
|
|
||||||
if (PySfWindow_Create(self, args, kwds) == NULL)
|
if (PySfWindow_Create(self, args, kwds) == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -55,6 +55,7 @@ PySfWindowSettingsUpdate(PySfWindowSettings *self)
|
|||||||
static PyObject *
|
static PyObject *
|
||||||
PySfWindowSettings_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
PySfWindowSettings_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
|
const char *kwlist[] = {"DepthBits", "StencilBits", "AntialiasingLevel", NULL};
|
||||||
PySfWindowSettings *self;
|
PySfWindowSettings *self;
|
||||||
self = (PySfWindowSettings *)type->tp_alloc(type, 0);
|
self = (PySfWindowSettings *)type->tp_alloc(type, 0);
|
||||||
if (self != NULL)
|
if (self != NULL)
|
||||||
@ -62,23 +63,13 @@ PySfWindowSettings_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
self->DepthBits = 24;
|
self->DepthBits = 24;
|
||||||
self->StencilBits = 8;
|
self->StencilBits = 8;
|
||||||
self->AntialiasingLevel = 0;
|
self->AntialiasingLevel = 0;
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|III:WindowSettings.__init__", (char **)kwlist, &(self->DepthBits), &(self->StencilBits), &(self->AntialiasingLevel)))
|
||||||
|
return NULL;
|
||||||
|
self->obj = new sf::WindowSettings(self->DepthBits, self->StencilBits, self->AntialiasingLevel);
|
||||||
}
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
|
||||||
PySfWindowSettings_init(PySfWindowSettings *self, PyObject *args, PyObject *kwds)
|
|
||||||
{
|
|
||||||
const char *kwlist[] = {"DepthBits", "StencilBits", "AntialiasingLevel", NULL};
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|III:WindowSettings.__init__", (char **)kwlist, &(self->DepthBits), &(self->StencilBits), &(self->AntialiasingLevel)))
|
|
||||||
return -1;
|
|
||||||
self->obj = new sf::WindowSettings(self->DepthBits, self->StencilBits, self->AntialiasingLevel);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
PyTypeObject PySfWindowSettingsType = {
|
PyTypeObject PySfWindowSettingsType = {
|
||||||
head_init
|
head_init
|
||||||
"WindowSettings", /*tp_name*/
|
"WindowSettings", /*tp_name*/
|
||||||
@ -115,7 +106,7 @@ PyTypeObject PySfWindowSettingsType = {
|
|||||||
0, /* tp_descr_get */
|
0, /* tp_descr_get */
|
||||||
0, /* tp_descr_set */
|
0, /* tp_descr_set */
|
||||||
0, /* tp_dictoffset */
|
0, /* tp_dictoffset */
|
||||||
(initproc)PySfWindowSettings_init, /* tp_init */
|
0, /* tp_init */
|
||||||
0, /* tp_alloc */
|
0, /* tp_alloc */
|
||||||
PySfWindowSettings_new, /* tp_new */
|
PySfWindowSettings_new, /* tp_new */
|
||||||
};
|
};
|
||||||
@ -123,6 +114,6 @@ PyTypeObject PySfWindowSettingsType = {
|
|||||||
PySfWindowSettings *
|
PySfWindowSettings *
|
||||||
GetNewPySfWindowSettings()
|
GetNewPySfWindowSettings()
|
||||||
{
|
{
|
||||||
return (PySfWindowSettings *)PySfWindowSettings_new(&PySfWindowSettingsType, NULL, NULL);
|
return PyObject_New(PySfWindowSettings, &PySfWindowSettingsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user