-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcapiRenderer.h
More file actions
49 lines (42 loc) · 1.73 KB
/
capiRenderer.h
File metadata and controls
49 lines (42 loc) · 1.73 KB
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
/*
Ravel C API. © Ravelation Pty Ltd 2018
*/
#ifndef CAPIRENDERER_H
#define CAPIRENDERER_H
// Renderer interface. See CairoRenderer for implementation and
// semantics WRT to the Cairo graphics library
struct CAPIRenderer
{
void (*moveTo)(struct CAPIRenderer*, double x, double y);
void (*lineTo)(struct CAPIRenderer*, double x, double y);
void (*relMoveTo)(struct CAPIRenderer*, double x, double y);
void (*relLineTo)(struct CAPIRenderer*, double x, double y);
void (*arc)(struct CAPIRenderer*, double x, double y,
double radius, double start, double end);
void (*setLineWidth)(struct CAPIRenderer*,double);
// paths
void (*newPath)(struct CAPIRenderer*);
void (*closePath)(struct CAPIRenderer*);
void (*fill)(struct CAPIRenderer*);
void (*clip)(struct CAPIRenderer*);
void (*stroke)(struct CAPIRenderer*);
void (*strokePreserve)(struct CAPIRenderer*);
// sources
void (*setSourceRGB)(struct CAPIRenderer*, double r, double g, double b);
void (*setSourceRGBA)(struct CAPIRenderer*, double r, double g, double b, double a);
// text. Argument is in UTF8 encoding
void (*showText)(struct CAPIRenderer*, const char*);
void (*setTextExtents)(struct CAPIRenderer*, const char*);
double (*textWidth)(struct CAPIRenderer*);
double (*textHeight)(struct CAPIRenderer*);
// matrix transformation
void (*identityMatrix)(struct CAPIRenderer*);
void (*translate)(struct CAPIRenderer*, double x, double y);
void (*scale)(struct CAPIRenderer*, double sx, double sy);
void (*rotate)(struct CAPIRenderer*, double angle); ///< angle in radians
// context manipulation
void (*save)(struct CAPIRenderer*);
void (*restore)(struct CAPIRenderer*);
};
typedef struct CAPIRenderer CAPIRenderer;
#endif