//SWIG interface to agg_basics %module agg %{ #include "agg_basics.h" #include "agg_color_rgba.h" #include "agg_pixfmt_rgba.h" #include "agg_trans_affine.h" #include "agg_path_storage.h" #include "agg_buffer.h" // my own buffer wrapper #include "agg_rendering_buffer.h" #include "agg_renderer_base.h" #include "agg_math_stroke.h" #include "agg_conv_stroke.h" #include "agg_conv_transform.h" #include "agg_conv_curve.h" #include "agg_vcgen_stroke.h" #include "agg_rasterizer_scanline_aa.h" #include "agg_renderer_scanline.h" #include "agg_render_scanlines.h" #include "agg_scanline_bin.h" #include "agg_scanline_p.h" #include "agg_span_interpolator_linear.h" using namespace agg; #include "agg_typedefs.h" %} %include "agg_typedefs.h" %include "agg_basics.i" %typemap(argout) double *array6 { // Append output value $1 to $result $1 = PyString_AsString($input); /* char *str */ $2 = PyString_Size($input); /* int len */ PyObject *ret = PyTuple_New(6); for (unsigned i=0; i<6; i++) PyTuple_SetItem(ret,i,PyFloat_FromDouble($1[i])); $result = ret; } %typemap(python,in) (unsigned char *bytes, int len) { if (!PyString_Check($input)) { PyErr_SetString(PyExc_ValueError,"Expected a string"); return NULL; } $1 = PyString_AsString($input); $2 = PyString_Size($input); } %typemap(out) agg::binary_data { $result = PyString_FromStringAndSize((const char*)$1.data,$1.size); } %include "agg_buffer.h" %include "agg_color_rgba.h" %include "agg_trans_affine.i" %include "agg_path_storage.i" %include "agg_math_stroke.h" %include "agg_rendering_buffer.h" %template(rendering_buffer) agg::row_ptr_cache; %extend agg::row_ptr_cache { void attachb(buffer *buf) { self->attach(buf->data, buf->width, buf->height, buf->stride); } } %include "agg_pixfmt_rgba.h" %template(pixel_format_rgba) agg::pixel_formats_rgba; %include "agg_renderer_base.i" %include "agg_conv_curve.i" %include "agg_conv_transform.i" %include "agg_conv_stroke.i" %include "agg_rasterizer_scanline_aa.i" //%include "agg_span_interpolator_linear.h" //%template(span_interpolator_linear_affine) agg::span_interpolator_linear; //%include "agg_span_image_filter.i" %include "agg_renderer_scanline.i" %include "agg_scanline_p.h" %template(scanline_p8) agg::scanline_p; %include "agg_scanline_bin.i" %include "agg_render_scanlines.h" %template(render_scanlines_rgba) agg::render_scanlines< agg::rasterizer_scanline_aa<>, agg::scanline_p, agg::renderer_scanline_aa_solid >; %template(render_scanlines_bin_rgba) agg::render_scanlines< agg::rasterizer_scanline_aa<>, agg::scanline_bin, agg::renderer_scanline_bin_solid >;