MyPaintGeglTiledSurface * mypaint_gegl_tiled_surface_new(void) { MyPaintGeglTiledSurface *self = (MyPaintGeglTiledSurface *)malloc(sizeof(MyPaintGeglTiledSurface)); mypaint_tiled_surface_init(&self->parent, tile_request_start, tile_request_end); // MyPaintSurface vfuncs self->parent.parent.destroy = free_gegl_tiledsurf; self->parent.parent.save_png = save_png; self->parent.threadsafe_tile_requests = TRUE; self->buffer = NULL; gegl_rectangle_set(&self->extent_rect, 0, 0, 0, 0); self->format = babl_format_new(babl_model ("R'aG'aB'aA"), babl_type ("u15"), babl_component("R'a"), babl_component("G'a"), babl_component("B'a"), babl_component("A"), NULL); g_assert(self->format); mypaint_gegl_tiled_surface_set_buffer(self, NULL); return self; }
MyPaintPythonTiledSurface * mypaint_python_tiled_surface_new(PyObject *py_object) { MyPaintPythonTiledSurface *self = (MyPaintPythonTiledSurface *)malloc(sizeof(MyPaintPythonTiledSurface)); mypaint_tiled_surface_init(&self->parent); self->parent.parent.draw_dab = draw_dab; self->parent.parent.destroy = free_tiledsurf; self->parent.get_tile = get_tile_memory; self->parent.update_tile = update_tile; self->parent.begin_atomic = begin_atomic; self->parent.end_atomic = end_atomic; self->parent.area_changed = area_changed; self->py_obj = py_object; // no need to incref self->atomic = 0; self->tileMemoryValid = 0; self->tileMemoryWrite = 0; self->dirty_bbox.w = 0; self->dirty_bbox.h = 0; self->dirty_bbox.x = 0; self->dirty_bbox.y = 0; return self; }
MyPaintPythonTiledSurface * mypaint_python_tiled_surface_new(PyObject *py_object) { MyPaintPythonTiledSurface *self = (MyPaintPythonTiledSurface *)malloc(sizeof(MyPaintPythonTiledSurface)); mypaint_tiled_surface_init(&self->parent, tile_request_start, tile_request_end); self->parent.threadsafe_tile_requests = TRUE; // MyPaintSurface vfuncs self->parent.parent.destroy = free_tiledsurf; self->py_obj = py_object; // no need to incref return self; }