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

Skip to content

Commit 84aea1d

Browse files
committed
added prototype wxagg backend
svn path=/trunk/matplotlib/; revision=220
1 parent 1ad8d2e commit 84aea1d

2 files changed

Lines changed: 33 additions & 4 deletions

File tree

MANIFEST

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ GOALS
55
INSTALL
66
INTERACTIVE
77
KNOWN_BUGS
8-
MANIFEST
98
MANIFEST.in
109
Makefile
1110
README
@@ -349,6 +348,7 @@ matplotlib/backends/backend_ps.py
349348
matplotlib/backends/backend_template.py
350349
matplotlib/backends/backend_tkagg.py
351350
matplotlib/backends/backend_wx.py
351+
matplotlib/backends/backend_wxagg.py
352352
matplotlib/backends/tkagg.py
353353
matplotlib/backends/ttf_font_manager.py
354354
src/_backend_agg.cpp

src/_backend_agg.cpp

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#include <png.h>
33
#include "ft2font.h"
44
#include "_backend_agg.h"
5+
6+
#include "util/agg_color_conv_rgb8.h"
57
#include "_image.h"
68

79
static PyObject *ErrorObject;
@@ -909,6 +911,34 @@ RendererAgg_write_png(RendererAggObject *renderer, PyObject *args)
909911
return Py_None;
910912
}
911913

914+
char RendererAgg_tostring_rgb__doc__[] =
915+
"numrows, numcols, s = tostring_rgb()"
916+
"\n"
917+
"Return the rendered buffer as an RGB string";
918+
919+
static PyObject *
920+
RendererAgg_tostring_rgb(RendererAggObject *renderer, PyObject* args) {
921+
922+
if (!PyArg_ParseTuple(args, ":tostring_rgb"))
923+
return NULL;
924+
int row_len = renderer->rbase->width()*3;
925+
unsigned char* buf_tmp =
926+
new unsigned char[row_len * renderer->rbase->height()];
927+
agg::rendering_buffer rbuf_tmp;
928+
rbuf_tmp.attach(buf_tmp,
929+
renderer->rbase->width(),
930+
renderer->rbase->height(),
931+
row_len);
932+
933+
color_conv(&rbuf_tmp, renderer->rbuf, agg::color_conv_rgba32_to_rgb24());
934+
935+
936+
return Py_BuildValue("s#",
937+
buf_tmp,
938+
row_len * renderer->rbase->height());
939+
940+
941+
}
912942

913943

914944
// must be defined before getattr
@@ -918,9 +948,8 @@ static PyMethodDef RendererAgg_methods[] = {
918948
{ "draw_rectangle", (PyCFunction)RendererAgg_draw_rectangle, METH_VARARGS},
919949
{ "draw_polygon", (PyCFunction)RendererAgg_draw_polygon, METH_VARARGS},
920950
{ "draw_image", (PyCFunction)RendererAgg_draw_image, METH_VARARGS, RendererAgg_draw_image__doc__},
921-
{ "draw_lines", (PyCFunction)RendererAgg_draw_lines, METH_VARARGS},
922-
923-
{ "draw_text", (PyCFunction)RendererAgg_draw_text, METH_VARARGS, RendererAgg_draw_text__doc__},
951+
{ "draw_lines", (PyCFunction)RendererAgg_draw_lines, METH_VARARGS}, { "draw_text", (PyCFunction)RendererAgg_draw_text, METH_VARARGS, RendererAgg_draw_text__doc__},
952+
{ "tostring_rgb", (PyCFunction)RendererAgg_tostring_rgb, METH_VARARGS, RendererAgg_tostring_rgb__doc__},
924953
{ "write_rgba", (PyCFunction)RendererAgg_write_rgba, METH_VARARGS},
925954
{ "write_png", (PyCFunction)RendererAgg_write_png, METH_VARARGS},
926955

0 commit comments

Comments
 (0)