Code

moving trunk for module inkscape
[inkscape.git] / src / display / nr-arena.h
1 #ifndef __NR_ARENA_H__
2 #define __NR_ARENA_H__
4 /*
5  * RGBA display list system for inkscape
6  *
7  * Author:
8  *   Lauris Kaplinski <lauris@kaplinski.com>
9  *
10  * Copyright (C) 2001-2002 Lauris Kaplinski
11  * Copyright (C) 2001 Ximian, Inc.
12  *
13  * Released under GNU GPL, read the file 'COPYING' for more information
14  */
16 #define NR_TYPE_ARENA (nr_arena_get_type ())
17 #define NR_ARENA(o) (NR_CHECK_INSTANCE_CAST ((o), NR_TYPE_ARENA, NRArena))
18 #define NR_IS_ARENA(o) (NR_CHECK_INSTANCE_TYPE ((o), NR_TYPE_ARENA))
20 #include <libnr/nr-forward.h>
21 #include <libnr/nr-object.h>
22 #include "nr-arena-forward.h"
23 #include "sp-paint-server.h"
25 NRType nr_arena_get_type (void);
27 struct NRArenaEventVector {
28         NRObjectEventVector parent;
29         void (* request_update) (NRArena *arena, NRArenaItem *item, void *data);
30         void (* request_render) (NRArena *arena, NRRectL *area, void *data);
31 };
33 enum {
34         RENDERMODE_NORMAL,
35         RENDERMODE_NOAA,
36         RENDERMODE_OUTLINE
37 };
39 struct NRArena : public NRActiveObject {
40         static NRArena *create() {
41                 return reinterpret_cast<NRArena *>(nr_object_new(NR_TYPE_ARENA));
42         }
44         double delta;
45         int rendermode;
46         guint32 outlinecolor;
47 };
49 struct NRArenaClass : public NRActiveObjectClass {
50 };
52 void nr_arena_request_update (NRArena *arena, NRArenaItem *item);
53 void nr_arena_request_render_rect (NRArena *arena, NRRectL *area);
55 void nr_arena_render_paintserver_fill (NRPixBlock *pb, NRRectL *area, SPPainter *painter, float opacity, NRPixBlock *mask);
57 #endif