source: libcaca/trunk/cpp/cucul++.cpp @ 781

Last change on this file since 781 was 781, checked in by Jean-Yves Lamoureux, 14 years ago
  • Added preliminary C++ bindings
  • Property svn:keywords set to Id
File size: 7.0 KB
Line 
1#include "cucul++.h"
2
3Cucul::Cucul()
4{
5    qq = cucul_create(0,0);
6    if(!qq) throw -1;
7}
8Cucul::Cucul(int width, int height)
9{
10    qq = cucul_create(width, height);
11    if(!qq) throw -1;
12}
13Cucul::~Cucul()
14{
15    if(qq) {
16        cucul_free(qq);
17    }
18}
19
20cucul_t *Cucul::get_cucul_t()
21{
22    return qq;
23}
24
25
26
27void Cucul::set_size(unsigned int width, unsigned int height)
28{
29    cucul_set_size (qq, width, height);
30}
31unsigned int Cucul::get_width(void)
32{
33    return cucul_get_width (qq);
34}
35unsigned int Cucul::get_height(void)
36{
37    return cucul_get_height (qq);
38}
39void Cucul::set_color(unsigned int f, unsigned int b)
40{
41    cucul_set_color (qq, f, b);
42}
43char const * Cucul::get_color_name (unsigned int color)
44{
45    return cucul_get_color_name (color);
46}
47void Cucul::putchar (int x, int y, char c)
48{
49    cucul_putchar (qq, x, y, c);
50}
51void Cucul::putstr (int x, int y, char *str)
52{
53    cucul_putstr(qq, x, y, str);
54}
55//void  Cucul::printf ( int, int, char const *,...)
56
57void    Cucul::clear ()
58{
59    cucul_clear(qq);
60}
61
62void    Cucul::blit ( int x, int y, Cucul* c1, Cucul* c2)
63{
64    cucul_blit(qq, x, y, c1->get_cucul_t(), c2->get_cucul_t());
65}
66
67void    Cucul::invert ()
68{
69    cucul_invert(qq);
70}
71
72void    Cucul::flip ()
73{
74    cucul_flip(qq);
75}
76
77void    Cucul::flop ()
78{
79    cucul_flop(qq);
80}
81
82void    Cucul::rotate ()
83{
84    cucul_rotate(qq);
85}
86
87void    Cucul::draw_line (int x1 , int y1, int x2, int y2, char const *c)
88{
89    cucul_draw_line(qq, x1,y1,x2,y2, c);
90}
91 
92void    Cucul::draw_polyline (int const x[], int const y[], int f, char const *c)
93{
94    cucul_draw_polyline(qq, x, y, f, c);
95}
96 
97void    Cucul::draw_thin_line (int x1 , int y1, int x2, int y2)
98{
99    cucul_draw_thin_line(qq, x1, y1, x2, y2);
100}
101
102void    Cucul::draw_thin_polyline ( int const x[], int const y[], int f)
103{
104    cucul_draw_thin_polyline(qq, x, y, f);
105}
106 
107void    Cucul::draw_circle ( int x, int y, int d, char const *c)
108{
109    cucul_draw_circle(qq, x, y, d, c);
110}
111
112void    Cucul::draw_ellipse ( int x, int y, int d1, int d2, char const *c)
113{
114    cucul_draw_ellipse(qq, x, y, d1, d2, c);
115}
116
117void    Cucul::draw_thin_ellipse ( int x, int y, int d1, int d2)
118{
119    cucul_draw_thin_ellipse(qq, x, y, d1, d2);
120}
121
122void    Cucul::fill_ellipse ( int x, int y, int d1, int d2, char const *c)
123{
124    cucul_fill_ellipse(qq, x, y, d1, d2, c);
125}
126
127void    Cucul::draw_box ( int x, int y, int w, int h, char const *c)
128{
129    cucul_draw_box(qq, x, y, w, h, c);
130}
131 
132void    Cucul::draw_thin_box ( int x, int y, int w, int h)
133{
134    cucul_draw_thin_box(qq, x, y, w, h);
135}
136
137void    Cucul::fill_box ( int x, int y, int w, int h, char const *c)
138{
139    cucul_fill_box(qq, x, y, w, h, c);
140}
141
142void    Cucul::draw_triangle ( int x1, int y1, int x2, int y2, int x3, int y3, char const *c)
143{
144    cucul_draw_triangle(qq, x1, y1, x2, y2, x3, y3, c);
145}
146
147void    Cucul::draw_thin_triangle ( int x1, int y1, int x2, int y2, int x3, int y3)
148{
149    cucul_draw_thin_triangle(qq, x1, y1, x2, y2, x3, y3);
150}
151
152void    Cucul::fill_triangle ( int x1, int y1, int x2, int y2, int x3, int y3, const char *c)
153{
154    cucul_fill_triangle(qq, x1, y1, x2, y2, x3, y3, c);
155}
156
157int     Cucul::rand (int min, int max)
158{
159    return cucul_rand(min, max);
160}
161
162unsigned int    Cucul::sqrt (unsigned int v)
163{
164    return cucul_sqrt(v);
165}
166
167Cucul::Sprite * Cucul::load_sprite (char const *f)
168{
169    Cucul::Sprite *s = new Cucul::Sprite();
170    s->sprite = cucul_load_sprite(f);
171    return s;
172}
173
174int     Cucul::get_sprite_frames (Cucul::Sprite const *s)
175{
176    return cucul_get_sprite_frames(s->sprite);
177}
178
179int     Cucul::get_sprite_width (Cucul::Sprite const *s, int v)
180{
181    return cucul_get_sprite_width(s->sprite, v);
182}
183
184int     Cucul::get_sprite_height (Cucul::Sprite const *s, int v)
185{
186    return cucul_get_sprite_height(s->sprite, v);
187}
188
189int     Cucul::get_sprite_dx (Cucul::Sprite const *s, int v)
190{
191    return cucul_get_sprite_dx(s->sprite, v);
192}
193
194int     Cucul::get_sprite_dy (Cucul::Sprite const *s, int v)
195{
196    return cucul_get_sprite_dy(s->sprite, v);
197}
198
199void    Cucul::draw_sprite ( int x, int y, Cucul::Sprite const *s, int v)
200{
201    cucul_draw_sprite(qq, x, y, s->sprite, v);
202}
203
204void    Cucul::free_sprite (Cucul::Sprite *s)
205{
206    cucul_free_sprite(s->sprite);
207}
208
209Cucul::Dither *         Cucul::create_dither (unsigned int v1, unsigned int v2, unsigned int v3, unsigned int v4, unsigned int v5, unsigned int v6, unsigned int v7, unsigned int v8)
210{
211    Cucul::Dither *d = new Dither();
212    d->dither = cucul_create_dither(v1,v2,v3,v4,v5,v6,v7,v8);
213    return d;
214}
215
216void    Cucul::set_dither_palette (Cucul::Dither *d, unsigned int r[], unsigned int g[], unsigned int b[], unsigned int a[])
217{
218    cucul_set_dither_palette(d->dither, r, g, b, a);
219}
220
221void    Cucul::set_dither_brightness (Cucul::Dither *d, float f)
222{
223    cucul_set_dither_brightness(d->dither, f);
224}
225
226void    Cucul::set_dither_gamma (Cucul::Dither *d, float f)
227{
228    cucul_set_dither_gamma(d->dither, f);
229}
230
231void    Cucul::set_dither_contrast ( Cucul::Dither *d, float f)
232{
233    cucul_set_dither_contrast(d->dither, f);
234}
235
236void    Cucul::set_dither_invert ( Cucul::Dither *d, int i)
237{
238    cucul_set_dither_invert(d->dither, i);
239}
240
241void    Cucul::set_dither_antialias ( Cucul::Dither *d, char const *c)
242{
243    cucul_set_dither_antialias(d->dither, c);
244}
245 
246char const *const *     Cucul::get_dither_antialias_list ( Cucul::Dither const *d)
247{
248    return cucul_get_dither_antialias_list(d->dither);
249}
250
251void    Cucul::set_dither_color ( Cucul::Dither *d, char const *c)
252{
253    cucul_set_dither_color(d->dither, c);
254}
255
256char const *const *     Cucul::get_dither_color_list ( Cucul::Dither const *d)
257{
258    return cucul_get_dither_color_list(d->dither);
259}
260 
261void    Cucul::set_dither_charset ( Cucul::Dither *d, char const *c)
262{
263    cucul_set_dither_charset(d->dither, c);
264}
265
266char const *const *     Cucul::get_dither_charset_list ( Cucul::Dither const *d)
267{
268    return cucul_get_dither_charset_list(d->dither);
269}
270 
271void    Cucul::set_dither_mode ( Cucul::Dither *d, char const *c)
272{
273    cucul_set_dither_mode(d->dither, c);
274}
275
276char const *const *     Cucul::get_dither_mode_list ( Cucul::Dither const *d)
277{
278    return cucul_get_dither_mode_list(d->dither);
279}
280
281void    Cucul::dither_bitmap ( int x, int y, int w, int h,  Cucul::Dither const *d, void *v)
282{
283    cucul_dither_bitmap(qq, x, y, w, h, d->dither, v);
284}
285
286void    Cucul::free_dither ( Cucul::Dither *d)
287{
288    cucul_free_dither(d->dither);
289}
290
291Cucul::Font *   Cucul::load_font (void const *s, unsigned int v)
292{
293    Cucul::Font *f = new Cucul::Font();
294    f->font = cucul_load_font(s, v);
295    return f;
296}
297
298char const *const *     Cucul::get_font_list (void)
299{
300    return cucul_get_font_list();
301}
302
303unsigned int    Cucul::get_font_width ( Cucul::Font *f)
304{
305    return cucul_get_font_width(f->font);
306}
307
308unsigned int    Cucul::get_font_height ( Cucul::Font *f)
309{
310    return cucul_get_font_height(f->font);
311}
312
313void    Cucul::render_canvas (Cucul::Font *f, unsigned char *c, unsigned int x, unsigned int y, unsigned int w)
314{
315    cucul_render_canvas(qq, f->font, c, x,y,w);
316}
317
318void    Cucul::free_font ( Cucul::Font *f)
319{
320    cucul_free_font(f->font);
321}
322
323Cucul::Buffer *         Cucul::create_export (char const *c)
324{
325    Cucul::Buffer *b = new Cucul::Buffer();
326    b->buffer = cucul_create_export(qq, c);
327    return b;
328}
329
330char const *const *     Cucul::get_export_list (void)
331{
332    return cucul_get_export_list();
333}
Note: See TracBrowser for help on using the repository browser.