summaryrefslogtreecommitdiff
path: root/cd/include/cdlua3_private.h
blob: 3c84c72738ba630992c2f10616fab22c06815876 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/** \file
 * \brief Private Lua 3 Binding Functions
 *
 * See Copyright Notice in cd.h
 */

#ifndef __CDLUA3_PRIVATE_H
#define __CDLUA3_PRIVATE_H

#ifdef __cplusplus
extern "C" {
#endif

#define COLOR_TAG     "CDLUA_COLOR_TAG"
#define CANVAS_TAG    "CDLUA_CANVAS_TAG"
#define STATE_TAG     "CDLUA_STATE_TAG"
#define BITMAP_TAG    "CDLUA_BITMAP_TAG"
#define IMAGE_TAG     "CDLUA_IMAGE_TAG"
#define IMAGERGB_TAG  "CDLUA_IMAGERGB_TAG"
#define IMAGERGBA_TAG "CDLUA_IMAGERGBA_TAG"
#define STIPPLE_TAG   "CDLUA_STIPPLE_TAG"
#define PATTERN_TAG   "CDLUA_PATTERN_TAG"
#define PALETTE_TAG   "CDLUA_PALETTE_TAG"
#define IMAGEMAP_TAG  "CDLUA_IMAGEMAP_TAG"
#define CHANNEL_TAG   "CDLUA_CHANNEL_TAG"

/* context management */

typedef struct _cdCallbackLUA {
  int lock;
  char *name;
  cdCallback func;
} cdCallbackLUA;

typedef struct _cdContextLUA {
  int id;
  char *name;
  cdContext* (*ctx)(void);
  void* (*checkdata)(int param);
  cdCallbackLUA* cb_list;
  int cb_n;
} cdContextLUA;

void cdlua_addcontext(cdContextLUA* luactx);
void cdlua_register(char* name, lua_CFunction func);
void cdlua_pushnumber(double num, char* name);

/* tag management */

typedef struct _canvas_t {
  cdCanvas *cd_canvas;
} canvas_t;

typedef struct _state_t {
  cdState *state;
} state_t;

typedef struct _stipple_t {
  unsigned char *value;
  int width;
  int height;
  long int size;
} stipple_t;

typedef struct _pattern_t {
  long int *color;
  int width;
  int height;
  long int size;
} pattern_t;

typedef struct _palette_t {
  long int *color;
  long int size;
} palette_t;

typedef struct _image_t {
  void *cd_image;
} image_t;

typedef struct _imagergb_t {
  unsigned char *red;
  unsigned char *green;
  unsigned char *blue;
  int width;
  int height;
  long int size;
} imagergb_t;

typedef struct _imagergba_t {
  unsigned char *red;
  unsigned char *green;
  unsigned char *blue;
  unsigned char *alpha;
  int width;
  int height;
  long int size;
} imagergba_t;
         
typedef struct _imagemap_t {
  unsigned char *index;
  int width;
  int height;
  long int size;
} imagemap_t;

typedef struct _channel_t {
  unsigned char *value;
  long int size;
} channel_t;

typedef struct _bitmap_t {
  cdBitmap *image;
} bitmap_t;

#ifdef __cplusplus
}
#endif

#endif