Update of /cvsroot/freevo/kaa/display/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4976/display/src
Added Files:
display.c display.h display.py sdl.c sdl.h
Log Message:
create basic display module
--- NEW FILE: sdl.h ---
PyObject *image_to_surface(PyObject *self, PyObject *args);
--- NEW FILE: display.h ---
extern PyTypeObject *Image_PyObject_Type;
extern Imlib_Image (*imlib_image_from_pyobject)(PyObject *pyimg);
--- NEW FILE: display.c ---
#include <Python.h>
#define X_DISPLAY_MISSING
#include <Imlib2.h>
#include "sdl.h"
PyTypeObject *Image_PyObject_Type;
Imlib_Image (*imlib_image_from_pyobject)(PyObject *pyimg);
PyMethodDef Imlib2_methods[] = {
{ "image_to_surface", image_to_surface, METH_VARARGS },
{ NULL }
};
void init_display()
{
PyObject *m, *pyimlib2_module, *c_api;
void **api_ptrs;
m = Py_InitModule("_display", Imlib2_methods);
pyimlib2_module = PyImport_ImportModule("kaa._Imlib2");
if (pyimlib2_module == NULL)
return;
c_api = PyObject_GetAttrString(pyimlib2_module, "_C_API");
if (c_api == NULL || !PyCObject_Check(c_api))
return;
api_ptrs = (void **)PyCObject_AsVoidPtr(c_api);
Py_DECREF(c_api);
imlib_image_from_pyobject = api_ptrs[0];
Image_PyObject_Type = api_ptrs[1];
}
--- NEW FILE: sdl.c ---
#include <Python.h>
#define X_DISPLAY_MISSING
#include <Imlib2.h>
#include "config.h"
#ifdef USE_PYGAME
#include <pygame.h>
#endif
PyTypeObject *Image_PyObject_Type;
Imlib_Image (*imlib_image_from_pyobject)(PyObject *pyimg);
PyObject *image_to_surface(PyObject *self, PyObject *args)
{
#ifdef USE_PYGAME
PyObject *pyimg;
Imlib_Image *img;
PySurfaceObject *pysurf;
unsigned char *pixels;
static int init = 0;
if (init == 0) {
import_pygame_surface();
init = 1;
}
if (!PyArg_ParseTuple(args, "O!O!", Image_PyObject_Type, &pyimg,
&PySurface_Type, &pysurf))
return NULL;
img = imlib_image_from_pyobject(pyimg);
imlib_context_set_image(img);
pixels = (unsigned char *)imlib_image_get_data_for_reading_only();
memcpy(pysurf->surf->pixels, pixels, imlib_image_get_width() *
imlib_image_get_height() * 4);
Py_INCREF(Py_None);
return Py_None;
#else
PyErr_Format(PyExc_SystemError, "kaa-display compiled without pygame");
return NULL;
#endif
}
--- NEW FILE: display.py ---
import _display
# pygame stuff
image_to_surface = _display.image_to_surface
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog