Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7d7a9de

Browse files
committed
added a bunch of missing cvs files
svn path=/trunk/matplotlib/; revision=149
1 parent 125a5ff commit 7d7a9de

2 files changed

Lines changed: 80 additions & 0 deletions

File tree

__init__.py

Whitespace-only changes.

src/_gtkagg.cpp

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/* Helper functions for converting an agg image buffer to a gtk drawable
2+
efficiently
3+
*/
4+
#include <Python.h>
5+
#include <pygobject.h>
6+
#include <pygtk/pygtk.h>
7+
#include <cstring>
8+
#include <cerrno>
9+
#include <cstdio>
10+
11+
#include "_backend_agg.h"
12+
13+
static PyTypeObject *PyGObject_Type=NULL;
14+
15+
16+
static PyObject *
17+
_agg_to_gtk_drawable(PyObject *self, PyObject *args) {
18+
19+
PyGObject *py_drawable = NULL;
20+
GdkDrawable *drawable = NULL;
21+
GdkGC* gc = NULL;
22+
23+
24+
RendererAggObject* aggRenderer;
25+
26+
if (!PyArg_ParseTuple(args, "O!O", PyGObject_Type,
27+
&py_drawable, &aggRenderer))
28+
return NULL;
29+
30+
drawable = GDK_DRAWABLE(py_drawable->obj);
31+
gc = gdk_gc_new(drawable);
32+
33+
gdk_draw_rgb_32_image(drawable, gc, 0, 0,
34+
aggRenderer->rbase->width(),
35+
aggRenderer->rbase->height(),
36+
GDK_RGB_DITHER_NORMAL,
37+
aggRenderer->buffer,
38+
aggRenderer->rbase->width()*4);
39+
40+
Py_INCREF(Py_None);
41+
return Py_None;
42+
}
43+
44+
45+
46+
47+
48+
static struct PyMethodDef _gtkagg_methods[] = {
49+
{"agg_to_gtk_drawable", (PyCFunction)_agg_to_gtk_drawable, METH_VARARGS,
50+
"Draw to a gtk drawable from a agg buffer."},
51+
{NULL, NULL} /* sentinel */
52+
};
53+
54+
55+
extern "C"
56+
DL_EXPORT(void) init_gtkagg(void)
57+
{
58+
PyObject *module, *d;
59+
60+
61+
62+
init_pygobject();
63+
init_pygtk();
64+
/* Create the module and add the functions */
65+
Py_InitModule("_gtkagg", _gtkagg_methods);
66+
module = PyImport_ImportModule("gobject");
67+
if (module) {
68+
PyGObject_Type =
69+
(PyTypeObject*)PyObject_GetAttrString(module, "GObject");
70+
Py_DECREF(module);
71+
}
72+
/* Add some symbolic constants to the module */
73+
d = PyModule_GetDict(module);
74+
ErrorObject = PyString_FromString("_gtkagg.error");
75+
PyDict_SetItemString(d, "error", ErrorObject);
76+
77+
/* Check for errors */
78+
if (PyErr_Occurred())
79+
Py_FatalError("can't initialize module _gtkagg");
80+
}

0 commit comments

Comments
 (0)