summaryrefslogtreecommitdiffstats
path: root/src/display/nr-arena.h
blob: 245ce14db6513aae7c155064f744fcbdf8752a99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef __NR_ARENA_H__
#define __NR_ARENA_H__

/*
 * RGBA display list system for inkscape
 *
 * Author:
 *   Lauris Kaplinski <lauris@kaplinski.com>
 *
 * Copyright (C) 2001-2002 Lauris Kaplinski
 * Copyright (C) 2001 Ximian, Inc.
 *
 * Released under GNU GPL, read the file 'COPYING' for more information
 */

#define NR_TYPE_ARENA (nr_arena_get_type ())
#define NR_ARENA(o) (NR_CHECK_INSTANCE_CAST ((o), NR_TYPE_ARENA, NRArena))
#define NR_IS_ARENA(o) (NR_CHECK_INSTANCE_TYPE ((o), NR_TYPE_ARENA))

#include <libnr/nr-forward.h>
#include <libnr/nr-object.h>
#include "nr-arena-forward.h"
#include "sp-paint-server.h"

NRType nr_arena_get_type (void);

struct NRArenaEventVector {
	NRObjectEventVector parent;
	void (* request_update) (NRArena *arena, NRArenaItem *item, void *data);
	void (* request_render) (NRArena *arena, NRRectL *area, void *data);
};

enum {
	RENDERMODE_NORMAL,
	RENDERMODE_NOAA,
	RENDERMODE_OUTLINE
};

struct NRArena : public NRActiveObject {
	static NRArena *create() {
		return reinterpret_cast<NRArena *>(nr_object_new(NR_TYPE_ARENA));
	}

	double delta;
	int rendermode;
	guint32 outlinecolor;
};

struct NRArenaClass : public NRActiveObjectClass {
};

void nr_arena_request_update (NRArena *arena, NRArenaItem *item);
void nr_arena_request_render_rect (NRArena *arena, NRRectL *area);

void nr_arena_render_paintserver_fill (NRPixBlock *pb, NRRectL *area, SPPainter *painter, float opacity, NRPixBlock *mask);

#endif