5
* RGBA display list system for inkscape
8
* Lauris Kaplinski <lauris@kaplinski.com>
10
* Copyright (C) 2001-2002 Lauris Kaplinski
11
* Copyright (C) 2001 Ximian, Inc.
13
* Released under GNU GPL, read the file 'COPYING' for more information
16
#include <glib/gmacros.h>
18
#include "display/rendermode.h"
22
typedef struct _SPCanvasArena SPCanvasArena;
26
#define NR_TYPE_ARENA (nr_arena_get_type ())
27
#define NR_ARENA(o) (NR_CHECK_INSTANCE_CAST ((o), NR_TYPE_ARENA, NRArena))
28
#define NR_IS_ARENA(o) (NR_CHECK_INSTANCE_TYPE ((o), NR_TYPE_ARENA))
30
#include <libnr/nr-forward.h>
31
#include <libnr/nr-object.h>
32
#include "nr-arena-forward.h"
33
#include "sp-paint-server.h"
35
NRType nr_arena_get_type (void);
37
struct NRArenaEventVector {
38
NRObjectEventVector parent;
39
void (* request_update) (NRArena *arena, NRArenaItem *item, void *data);
40
void (* request_render) (NRArena *arena, NRRectL *area, void *data);
43
struct NRArena : public NRActiveObject {
44
static NRArena *create() {
45
return reinterpret_cast<NRArena *>(nr_object_new(NR_TYPE_ARENA));
49
bool renderoffscreen; // if true then rendering must be exact
50
Inkscape::RenderMode rendermode;
51
int blurquality; // will be updated during update from preferences
52
int filterquality; // will be updated during update from preferences
55
SPCanvasArena *canvasarena; // may be NULL is this arena is not the screen but used for export etc.
58
struct NRArenaClass : public NRActiveObjectClass {
61
void nr_arena_request_update (NRArena *arena, NRArenaItem *item);
62
void nr_arena_request_render_rect (NRArena *arena, NRRectL *area);
63
void nr_arena_set_renderoffscreen (NRArena *arena);
65
void nr_arena_render_paintserver_fill (NRPixBlock *pb, NRRectL *area, SPPainter *painter, float opacity, NRPixBlock *mask);
67
void nr_arena_separate_color_plates(guint32* rgba);