source: libcaca/trunk/caca/caca.h @ 3443

Last change on this file since 3443 was 3443, checked in by Sam Hocevar, 12 years ago

Set up the architecture for dirty rectangles.

Dirty rectangles are an upcoming optimisation that will tell the output
drivers which portion of the canvas has been really modified since the
last blit.

  • Property svn:keywords set to Id
File size: 30.6 KB
Line 
1/*
2 *  libcaca       Colour ASCII-Art library
3 *  Copyright (c) 2002-2006 Sam Hocevar <sam@zoy.org>
4 *                All Rights Reserved
5 *
6 *  $Id: caca.h 3443 2009-05-13 06:40:48Z sam $
7 *
8 *  This library is free software. It comes without any warranty, to
9 *  the extent permitted by applicable law. You can redistribute it
10 *  and/or modify it under the terms of the Do What The Fuck You Want
11 *  To Public License, Version 2, as published by Sam Hocevar. See
12 *  http://sam.zoy.org/wtfpl/COPYING for more details.
13 */
14
15/** \file caca.h
16 *  \version \$Id: caca.h 3443 2009-05-13 06:40:48Z sam $
17 *  \author Sam Hocevar <sam@zoy.org>
18 *  \brief The \e libcaca public header.
19 *
20 *  This header contains the public types and functions that applications
21 *  using \e libcaca may use.
22 */
23
24#ifndef __CACA_H__
25#define __CACA_H__
26
27#include <caca_types.h>
28
29#undef __extern
30#if defined(_DOXYGEN_SKIP_ME)
31#elif defined(_WIN32) && defined(__LIBCACA__)
32#   define __extern extern __declspec(dllexport)
33#else
34#   define __extern extern
35#endif
36
37/** libcaca API version */
38#define CACA_API_VERSION_1
39
40#ifdef __cplusplus
41extern "C"
42{
43#endif
44
45/** \e libcaca canvas */
46typedef struct caca_canvas caca_canvas_t;
47/** dither structure */
48typedef struct caca_dither caca_dither_t;
49/** font structure */
50typedef struct caca_font caca_font_t;
51/** file handle structure */
52typedef struct caca_file caca_file_t;
53/** \e libcaca display context */
54typedef struct caca_display caca_display_t;
55/** \e libcaca event structure */
56typedef struct caca_event caca_event_t;
57
58/** \defgroup caca_attr libcaca attribute definitions
59 *
60 *  Colours and styles that can be used with caca_set_attr().
61 *
62 *  @{ */
63#define CACA_BLACK 0x00 /**< The colour index for black. */
64#define CACA_BLUE 0x01 /**< The colour index for blue. */
65#define CACA_GREEN 0x02 /**< The colour index for green. */
66#define CACA_CYAN 0x03 /**< The colour index for cyan. */
67#define CACA_RED 0x04 /**< The colour index for red. */
68#define CACA_MAGENTA 0x05 /**< The colour index for magenta. */
69#define CACA_BROWN 0x06 /**< The colour index for brown. */
70#define CACA_LIGHTGRAY 0x07 /**< The colour index for light gray. */
71#define CACA_DARKGRAY 0x08 /**< The colour index for dark gray. */
72#define CACA_LIGHTBLUE 0x09 /**< The colour index for blue. */
73#define CACA_LIGHTGREEN 0x0a /**< The colour index for light green. */
74#define CACA_LIGHTCYAN 0x0b /**< The colour index for light cyan. */
75#define CACA_LIGHTRED 0x0c /**< The colour index for light red. */
76#define CACA_LIGHTMAGENTA 0x0d /**< The colour index for light magenta. */
77#define CACA_YELLOW 0x0e /**< The colour index for yellow. */
78#define CACA_WHITE 0x0f /**< The colour index for white. */
79#define CACA_DEFAULT 0x10 /**< The output driver's default colour. */
80#define CACA_TRANSPARENT 0x20 /**< The transparent colour. */
81
82#define CACA_BOLD 0x01 /**< The style mask for bold. */
83#define CACA_ITALICS 0x02 /**< The style mask for italics. */
84#define CACA_UNDERLINE 0x04 /**< The style mask for underline. */
85#define CACA_BLINK 0x08 /**< The style mask for blink. */
86/*  @} */
87
88/** \brief User event type enumeration.
89 *
90 *  This enum serves two purposes:
91 *  - Build listening masks for caca_get_event().
92 *  - Define the type of a \e caca_event_t.
93 */
94enum caca_event_type
95{
96    CACA_EVENT_NONE =          0x0000, /**< No event. */
97
98    CACA_EVENT_KEY_PRESS =     0x0001, /**< A key was pressed. */
99    CACA_EVENT_KEY_RELEASE =   0x0002, /**< A key was released. */
100    CACA_EVENT_MOUSE_PRESS =   0x0004, /**< A mouse button was pressed. */
101    CACA_EVENT_MOUSE_RELEASE = 0x0008, /**< A mouse button was released. */
102    CACA_EVENT_MOUSE_MOTION =  0x0010, /**< The mouse was moved. */
103    CACA_EVENT_RESIZE =        0x0020, /**< The window was resized. */
104    CACA_EVENT_QUIT =          0x0040, /**< The user requested to quit. */
105
106    CACA_EVENT_ANY =           0xffff  /**< Bitmask for any event. */
107};
108
109/** \brief Handling of user events.
110 *
111 *  This structure is filled by caca_get_event() when an event is received.
112 *  It is an opaque structure that should only be accessed through
113 *  caca_event_get_type() and similar functions. The struct members may no
114 *  longer be directly accessible in future versions.
115 */
116struct caca_event
117{
118    enum caca_event_type type;
119    union
120    {
121        struct { int x, y, button; } mouse;
122        struct { int w, h; } resize;
123        struct { int ch; uint32_t utf32; char utf8[8]; } key;
124    } data;
125    uint8_t padding[16];
126};
127
128/** \brief Special key values.
129 *
130 *  Special key values returned by caca_get_event() for which there is no
131 *  printable ASCII equivalent.
132 */
133enum caca_key
134{
135    CACA_KEY_UNKNOWN = 0x00, /**< Unknown key. */
136
137    /* The following keys have ASCII equivalents */
138    CACA_KEY_CTRL_A =    0x01, /**< The Ctrl-A key. */
139    CACA_KEY_CTRL_B =    0x02, /**< The Ctrl-B key. */
140    CACA_KEY_CTRL_C =    0x03, /**< The Ctrl-C key. */
141    CACA_KEY_CTRL_D =    0x04, /**< The Ctrl-D key. */
142    CACA_KEY_CTRL_E =    0x05, /**< The Ctrl-E key. */
143    CACA_KEY_CTRL_F =    0x06, /**< The Ctrl-F key. */
144    CACA_KEY_CTRL_G =    0x07, /**< The Ctrl-G key. */
145    CACA_KEY_BACKSPACE = 0x08, /**< The backspace key. */
146    CACA_KEY_TAB =       0x09, /**< The tabulation key. */
147    CACA_KEY_CTRL_J =    0x0a, /**< The Ctrl-J key. */
148    CACA_KEY_CTRL_K =    0x0b, /**< The Ctrl-K key. */
149    CACA_KEY_CTRL_L =    0x0c, /**< The Ctrl-L key. */
150    CACA_KEY_RETURN =    0x0d, /**< The return key. */
151    CACA_KEY_CTRL_N =    0x0e, /**< The Ctrl-N key. */
152    CACA_KEY_CTRL_O =    0x0f, /**< The Ctrl-O key. */
153    CACA_KEY_CTRL_P =    0x10, /**< The Ctrl-P key. */
154    CACA_KEY_CTRL_Q =    0x11, /**< The Ctrl-Q key. */
155    CACA_KEY_CTRL_R =    0x12, /**< The Ctrl-R key. */
156    CACA_KEY_PAUSE =     0x13, /**< The pause key. */
157    CACA_KEY_CTRL_T =    0x14, /**< The Ctrl-T key. */
158    CACA_KEY_CTRL_U =    0x15, /**< The Ctrl-U key. */
159    CACA_KEY_CTRL_V =    0x16, /**< The Ctrl-V key. */
160    CACA_KEY_CTRL_W =    0x17, /**< The Ctrl-W key. */
161    CACA_KEY_CTRL_X =    0x18, /**< The Ctrl-X key. */
162    CACA_KEY_CTRL_Y =    0x19, /**< The Ctrl-Y key. */
163    CACA_KEY_CTRL_Z =    0x1a, /**< The Ctrl-Z key. */
164    CACA_KEY_ESCAPE =    0x1b, /**< The escape key. */
165    CACA_KEY_DELETE =    0x7f, /**< The delete key. */
166
167    /* The following keys do not have ASCII equivalents but have been
168     * chosen to match the SDL equivalents */
169    CACA_KEY_UP =    0x111, /**< The up arrow key. */
170    CACA_KEY_DOWN =  0x112, /**< The down arrow key. */
171    CACA_KEY_LEFT =  0x113, /**< The left arrow key. */
172    CACA_KEY_RIGHT = 0x114, /**< The right arrow key. */
173
174    CACA_KEY_INSERT =   0x115, /**< The insert key. */
175    CACA_KEY_HOME =     0x116, /**< The home key. */
176    CACA_KEY_END =      0x117, /**< The end key. */
177    CACA_KEY_PAGEUP =   0x118, /**< The page up key. */
178    CACA_KEY_PAGEDOWN = 0x119, /**< The page down key. */
179
180    CACA_KEY_F1 =  0x11a, /**< The F1 key. */
181    CACA_KEY_F2 =  0x11b, /**< The F2 key. */
182    CACA_KEY_F3 =  0x11c, /**< The F3 key. */
183    CACA_KEY_F4 =  0x11d, /**< The F4 key. */
184    CACA_KEY_F5 =  0x11e, /**< The F5 key. */
185    CACA_KEY_F6 =  0x11f, /**< The F6 key. */
186    CACA_KEY_F7 =  0x120, /**< The F7 key. */
187    CACA_KEY_F8 =  0x121, /**< The F8 key. */
188    CACA_KEY_F9 =  0x122, /**< The F9 key. */
189    CACA_KEY_F10 = 0x123, /**< The F10 key. */
190    CACA_KEY_F11 = 0x124, /**< The F11 key. */
191    CACA_KEY_F12 = 0x125, /**< The F12 key. */
192    CACA_KEY_F13 = 0x126, /**< The F13 key. */
193    CACA_KEY_F14 = 0x127, /**< The F14 key. */
194    CACA_KEY_F15 = 0x128  /**< The F15 key. */
195};
196
197/** \defgroup libcaca libcaca basic functions
198 *
199 *  These functions provide the basic \e libcaca routines for library
200 *  initialisation, system information retrieval and configuration.
201 *
202 *  @{ */
203__extern caca_canvas_t * caca_create_canvas(int, int);
204__extern int caca_manage_canvas(caca_canvas_t *, int (*)(void *), void *);
205__extern int caca_unmanage_canvas(caca_canvas_t *, int (*)(void *), void *);
206__extern int caca_set_canvas_size(caca_canvas_t *, int, int);
207__extern int caca_get_canvas_width(caca_canvas_t const *);
208__extern int caca_get_canvas_height(caca_canvas_t const *);
209__extern uint8_t const * caca_get_canvas_chars(caca_canvas_t const *);
210__extern uint8_t const * caca_get_canvas_attrs(caca_canvas_t const *);
211__extern int caca_free_canvas(caca_canvas_t *);
212__extern int caca_rand(int, int);
213__extern char const * caca_get_version(void);
214/*  @} */
215
216/** \defgroup caca_canvas libcaca canvas drawing
217 *
218 *  These functions provide low-level character printing routines and
219 *  higher level graphics functions.
220 *
221 *  @{ */
222#define CACA_MAGIC_FULLWIDTH 0x000ffffe /**< Used to indicate that the previous character was a fullwidth glyph. */
223__extern int caca_get_dirty_rectangle(caca_canvas_t *, int *, int *,
224                                      int *, int *);
225__extern int caca_add_dirty_rectangle(caca_canvas_t *, int, int, int, int);
226__extern int caca_set_dirty_rectangle(caca_canvas_t *, int, int, int, int);
227__extern int caca_gotoxy(caca_canvas_t *, int, int);
228__extern int caca_get_cursor_x(caca_canvas_t const *);
229__extern int caca_get_cursor_y(caca_canvas_t const *);
230__extern int caca_put_char(caca_canvas_t *, int, int, uint32_t);
231__extern uint32_t caca_get_char(caca_canvas_t const *, int, int);
232__extern int caca_put_str(caca_canvas_t *, int, int, char const *);
233__extern int caca_printf(caca_canvas_t *, int, int, char const *, ...);
234__extern int caca_clear_canvas(caca_canvas_t *);
235__extern int caca_set_canvas_handle(caca_canvas_t *, int, int);
236__extern int caca_get_canvas_handle_x(caca_canvas_t const *);
237__extern int caca_get_canvas_handle_y(caca_canvas_t const *);
238__extern int caca_blit(caca_canvas_t *, int, int, caca_canvas_t const *,
239                       caca_canvas_t const *);
240__extern int caca_set_canvas_boundaries(caca_canvas_t *, int, int, int, int);
241/*  @} */
242
243/** \defgroup caca_transform libcaca canvas transformation
244 *
245 *  These functions perform horizontal and vertical canvas flipping.
246 *
247 *  @{ */
248__extern int caca_invert(caca_canvas_t *);
249__extern int caca_flip(caca_canvas_t *);
250__extern int caca_flop(caca_canvas_t *);
251__extern int caca_rotate_180(caca_canvas_t *);
252__extern int caca_rotate_left(caca_canvas_t *);
253__extern int caca_rotate_right(caca_canvas_t *);
254__extern int caca_stretch_left(caca_canvas_t *);
255__extern int caca_stretch_right(caca_canvas_t *);
256/*  @} */
257
258/** \defgroup caca_attributes libcaca attribute conversions
259 *
260 *  These functions perform conversions between attribute values.
261 *
262 *  @{ */
263__extern uint32_t caca_get_attr(caca_canvas_t const *, int, int);
264__extern int caca_set_attr(caca_canvas_t *, uint32_t);
265__extern int caca_put_attr(caca_canvas_t *, int, int, uint32_t);
266__extern int caca_set_color_ansi(caca_canvas_t *, uint8_t, uint8_t);
267__extern int caca_set_color_argb(caca_canvas_t *, uint16_t, uint16_t);
268__extern uint8_t caca_attr_to_ansi(uint32_t);
269__extern uint8_t caca_attr_to_ansi_fg(uint32_t);
270__extern uint8_t caca_attr_to_ansi_bg(uint32_t);
271__extern uint16_t caca_attr_to_rgb12_fg(uint32_t);
272__extern uint16_t caca_attr_to_rgb12_bg(uint32_t);
273__extern void caca_attr_to_argb64(uint32_t, uint8_t[8]);
274/*  @} */
275
276/** \defgroup caca_charset libcaca character set conversions
277 *
278 *  These functions perform conversions between usual character sets.
279 *
280 *  @{ */
281__extern uint32_t caca_utf8_to_utf32(char const *, size_t *);
282__extern size_t caca_utf32_to_utf8(char *, uint32_t);
283__extern uint8_t caca_utf32_to_cp437(uint32_t);
284__extern uint32_t caca_cp437_to_utf32(uint8_t);
285__extern char caca_utf32_to_ascii(uint32_t);
286__extern int caca_utf32_is_fullwidth(uint32_t);
287/*  @} */
288
289/** \defgroup caca_primitives libcaca primitives drawing
290 *
291 *  These functions provide routines for primitive drawing, such as lines,
292 *  boxes, triangles and ellipses.
293 *
294 *  @{ */
295__extern int caca_draw_line(caca_canvas_t *, int, int, int, int, uint32_t);
296__extern int caca_draw_polyline(caca_canvas_t *, int const x[],
297                                 int const y[], int, uint32_t);
298__extern int caca_draw_thin_line(caca_canvas_t *, int, int, int, int);
299__extern int caca_draw_thin_polyline(caca_canvas_t *, int const x[],
300                                      int const y[], int);
301
302__extern int caca_draw_circle(caca_canvas_t *, int, int, int, uint32_t);
303__extern int caca_draw_ellipse(caca_canvas_t *, int, int, int, int, uint32_t);
304__extern int caca_draw_thin_ellipse(caca_canvas_t *, int, int, int, int);
305__extern int caca_fill_ellipse(caca_canvas_t *, int, int, int, int, uint32_t);
306
307__extern int caca_draw_box(caca_canvas_t *, int, int, int, int, uint32_t);
308__extern int caca_draw_thin_box(caca_canvas_t *, int, int, int, int);
309__extern int caca_draw_cp437_box(caca_canvas_t *, int, int, int, int);
310__extern int caca_fill_box(caca_canvas_t *, int, int, int, int, uint32_t);
311
312__extern int caca_draw_triangle(caca_canvas_t *, int, int, int, int, int,
313                                 int, uint32_t);
314__extern int caca_draw_thin_triangle(caca_canvas_t *, int, int, int, int,
315                                      int, int);
316__extern int caca_fill_triangle(caca_canvas_t *, int, int, int, int, int,
317                                 int, uint32_t);
318/*  @} */
319
320/** \defgroup caca_frame libcaca canvas frame handling
321 *
322 *  These functions provide high level routines for canvas frame insertion,
323 *  removal, copying etc.
324 *
325 *  @{ */
326__extern int caca_get_frame_count(caca_canvas_t const *);
327__extern int caca_set_frame(caca_canvas_t *, int);
328__extern char const *caca_get_frame_name(caca_canvas_t const *);
329__extern int caca_set_frame_name(caca_canvas_t *, char const *);
330__extern int caca_create_frame(caca_canvas_t *, int);
331__extern int caca_free_frame(caca_canvas_t *, int);
332/*  @} */
333
334/** \defgroup caca_dither libcaca bitmap dithering
335 *
336 *  These functions provide high level routines for dither allocation and
337 *  rendering.
338 *
339 *  @{ */
340__extern caca_dither_t *caca_create_dither(int, int, int, int,
341                                             uint32_t, uint32_t,
342                                             uint32_t, uint32_t);
343__extern int caca_set_dither_palette(caca_dither_t *,
344                                      uint32_t r[], uint32_t g[],
345                                      uint32_t b[], uint32_t a[]);
346__extern int caca_set_dither_brightness(caca_dither_t *, float);
347__extern float caca_get_dither_brightness(caca_dither_t const *);
348__extern int caca_set_dither_gamma(caca_dither_t *, float);
349__extern float caca_get_dither_gamma(caca_dither_t const *);
350__extern int caca_set_dither_contrast(caca_dither_t *, float);
351__extern float caca_get_dither_contrast(caca_dither_t const *);
352__extern int caca_set_dither_antialias(caca_dither_t *, char const *);
353__extern char const * const * caca_get_dither_antialias_list(caca_dither_t
354                                                              const *);
355__extern char const * caca_get_dither_antialias(caca_dither_t const *);
356__extern int caca_set_dither_color(caca_dither_t *, char const *);
357__extern char const * const * caca_get_dither_color_list(caca_dither_t
358                                                          const *);
359__extern char const * caca_get_dither_color(caca_dither_t const *);
360__extern int caca_set_dither_charset(caca_dither_t *, char const *);
361__extern char const * const * caca_get_dither_charset_list(caca_dither_t
362                                                            const *);
363__extern char const * caca_get_dither_charset(caca_dither_t const *);
364__extern int caca_set_dither_algorithm(caca_dither_t *, char const *);
365__extern char const * const * caca_get_dither_algorithm_list(caca_dither_t
366                                                              const *);
367__extern char const * caca_get_dither_algorithm(caca_dither_t const *);
368__extern int caca_dither_bitmap(caca_canvas_t *, int, int, int, int,
369                         caca_dither_t const *, void *);
370__extern int caca_free_dither(caca_dither_t *);
371/*  @} */
372
373/** \defgroup caca_font libcaca font handling
374 *
375 *  These functions provide font handling routines and high quality
376 *  canvas to bitmap rendering.
377 *
378 *  @{ */
379__extern caca_font_t *caca_load_font(void const *, size_t);
380__extern char const * const * caca_get_font_list(void);
381__extern int caca_get_font_width(caca_font_t const *);
382__extern int caca_get_font_height(caca_font_t const *);
383__extern uint32_t const *caca_get_font_blocks(caca_font_t const *);
384__extern int caca_render_canvas(caca_canvas_t const *, caca_font_t const *,
385                                 void *, int, int, int);
386__extern int caca_free_font(caca_font_t *);
387/*  @} */
388
389/** \defgroup caca_figfont libcaca FIGfont handling
390 *
391 *  These functions provide FIGlet and TOIlet font handling routines.
392 *
393 *  @{ */
394__extern int caca_canvas_set_figfont(caca_canvas_t *, char const *);
395__extern int caca_put_figchar(caca_canvas_t *, uint32_t);
396__extern int caca_flush_figlet(caca_canvas_t *);
397/*  @} */
398
399/** \defgroup caca_file libcaca file IO
400 *
401 *  These functions allow to read and write files in a platform-independent
402 *  way.
403 *  @{ */
404__extern caca_file_t *caca_file_open(char const *, const char *);
405__extern int caca_file_close(caca_file_t *);
406__extern uint64_t caca_file_tell(caca_file_t *);
407__extern size_t caca_file_read(caca_file_t *, void *, size_t);
408__extern size_t caca_file_write(caca_file_t *, const void *, size_t);
409__extern char * caca_file_gets(caca_file_t *, char *, int);
410__extern int caca_file_eof(caca_file_t *);
411/*  @} */
412
413/** \defgroup caca_importexport libcaca importers/exporters from/to various
414 *  formats
415 *
416 *  These functions import various file formats into a new canvas, or export
417 *  the current canvas to various text formats.
418 *
419 *  @{ */
420__extern ssize_t caca_import_memory(caca_canvas_t *, void const *,
421                                     size_t, char const *);
422__extern ssize_t caca_import_file(caca_canvas_t *, char const *,
423                                   char const *);
424__extern char const * const * caca_get_import_list(void);
425__extern void *caca_export_memory(caca_canvas_t const *, char const *,
426                                   size_t *);
427__extern char const * const * caca_get_export_list(void);
428/*  @} */
429
430/** \defgroup caca_display libcaca display functions
431 *
432 *  These functions provide the basic \e libcaca routines for display
433 *  initialisation, system information retrieval and configuration.
434 *
435 *  @{ */
436__extern caca_display_t * caca_create_display(caca_canvas_t *);
437__extern caca_display_t * caca_create_display_with_driver(caca_canvas_t *,
438                                                          char const *);
439__extern char const * const * caca_get_display_driver_list(void);
440__extern char const * caca_get_display_driver(caca_display_t *);
441__extern int caca_set_display_driver(caca_display_t *, char const *);
442__extern int caca_free_display(caca_display_t *);
443__extern caca_canvas_t * caca_get_canvas(caca_display_t *);
444__extern int caca_refresh_display(caca_display_t *);
445__extern int caca_set_display_time(caca_display_t *, int);
446__extern int caca_get_display_time(caca_display_t const *);
447__extern int caca_get_display_width(caca_display_t const *);
448__extern int caca_get_display_height(caca_display_t const *);
449__extern int caca_set_display_title(caca_display_t *, char const *);
450__extern int caca_set_mouse(caca_display_t *, int);
451__extern int caca_set_cursor(caca_display_t *, int);
452/*  @} */
453
454/** \defgroup caca_event libcaca event handling
455 *
456 *  These functions handle user events such as keyboard input and mouse
457 *  clicks.
458 *
459 *  @{ */
460__extern int caca_get_event(caca_display_t *, int, caca_event_t *, int);
461__extern int caca_get_mouse_x(caca_display_t const *);
462__extern int caca_get_mouse_y(caca_display_t const *);
463__extern enum caca_event_type caca_get_event_type(caca_event_t const *);
464__extern int caca_get_event_key_ch(caca_event_t const *);
465__extern uint32_t caca_get_event_key_utf32(caca_event_t const *);
466__extern int caca_get_event_key_utf8(caca_event_t const *, char *);
467__extern int caca_get_event_mouse_button(caca_event_t const *);
468__extern int caca_get_event_mouse_x(caca_event_t const *);
469__extern int caca_get_event_mouse_y(caca_event_t const *);
470__extern int caca_get_event_resize_width(caca_event_t const *);
471__extern int caca_get_event_resize_height(caca_event_t const *);
472/*  @} */
473
474#if !defined(_DOXYGEN_SKIP_ME)
475    /* Legacy stuff from beta versions, will probably disappear in 1.0 */
476typedef struct cucul_buffer cucul_buffer_t;
477
478#   if defined __GNUC__ && __GNUC__ >= 3
479#       define CACA_DEPRECATED __attribute__ ((__deprecated__))
480#       define CACA_ALIAS(x) __attribute__ ((weak, alias(#x)))
481#   else
482#       define CACA_DEPRECATED
483#       define CACA_ALIAS(x)
484#   endif
485
486
487/* Aliases from old libcucul functions */
488__extern int cucul_putchar(caca_canvas_t *, int, int,
489                           unsigned long int) CACA_DEPRECATED;
490__extern unsigned long int cucul_getchar(caca_canvas_t *,
491                                         int, int) CACA_DEPRECATED;
492__extern int cucul_putstr(caca_canvas_t *, int, int,
493                          char const *) CACA_DEPRECATED;
494__extern int cucul_set_color(caca_canvas_t *, unsigned char,
495                             unsigned char) CACA_DEPRECATED;
496__extern int cucul_set_truecolor(caca_canvas_t *, unsigned int,
497                                 unsigned int) CACA_DEPRECATED;
498__extern unsigned int cucul_get_canvas_frame_count(caca_canvas_t *)
499                                                   CACA_DEPRECATED;
500__extern int cucul_set_canvas_frame(caca_canvas_t *,
501                                    unsigned int) CACA_DEPRECATED;
502__extern int cucul_create_canvas_frame(caca_canvas_t *,
503                                       unsigned int) CACA_DEPRECATED;
504__extern int cucul_free_canvas_frame(caca_canvas_t *,
505                                     unsigned int) CACA_DEPRECATED;
506__extern cucul_buffer_t *cucul_load_memory(void *,
507                                           unsigned long int) CACA_DEPRECATED;
508__extern cucul_buffer_t *cucul_load_file(char const *) CACA_DEPRECATED;
509__extern unsigned long int cucul_get_buffer_size(cucul_buffer_t *)
510                                                 CACA_DEPRECATED;
511__extern void * cucul_get_buffer_data(cucul_buffer_t *) CACA_DEPRECATED;
512__extern int cucul_free_buffer(cucul_buffer_t *) CACA_DEPRECATED;
513__extern cucul_buffer_t * cucul_export_canvas(caca_canvas_t *,
514                                              char const *) CACA_DEPRECATED;
515__extern caca_canvas_t * cucul_import_canvas(cucul_buffer_t *,
516                                              char const *) CACA_DEPRECATED;
517__extern int cucul_rotate(caca_canvas_t *) CACA_DEPRECATED;
518__extern int cucul_set_dither_invert(caca_dither_t *, int) CACA_DEPRECATED;
519__extern int cucul_set_dither_mode(caca_dither_t *,
520                                   char const *) CACA_DEPRECATED;
521__extern char const * const * cucul_get_dither_mode_list(caca_dither_t const *)
522                                                         CACA_DEPRECATED;
523#   define CUCUL_COLOR_BLACK CACA_BLACK
524#   define CUCUL_COLOR_BLUE CACA_BLUE
525#   define CUCUL_COLOR_GREEN CACA_GREEN
526#   define CUCUL_COLOR_CYAN CACA_CYAN
527#   define CUCUL_COLOR_RED CACA_RED
528#   define CUCUL_COLOR_MAGENTA CACA_MAGENTA
529#   define CUCUL_COLOR_BROWN CACA_BROWN
530#   define CUCUL_COLOR_LIGHTGRAY CACA_LIGHTGRAY
531#   define CUCUL_COLOR_DARKGRAY CACA_DARKGRAY
532#   define CUCUL_COLOR_LIGHTBLUE CACA_LIGHTBLUE
533#   define CUCUL_COLOR_LIGHTGREEN CACA_LIGHTGREEN
534#   define CUCUL_COLOR_LIGHTCYAN CACA_LIGHTCYAN
535#   define CUCUL_COLOR_LIGHTRED CACA_LIGHTRED
536#   define CUCUL_COLOR_LIGHTMAGENTA CACA_LIGHTMAGENTA
537#   define CUCUL_COLOR_YELLOW CACA_YELLOW
538#   define CUCUL_COLOR_WHITE CACA_YELLOW
539#   define CUCUL_COLOR_DEFAULT CACA_DEFAULT
540#   define CUCUL_COLOR_TRANSPARENT CACA_TRANSPARENT
541
542/* Aliases from the libcucul/libcaca merge */
543#   define cucul_canvas_t caca_canvas_t
544#   define cucul_dither_t caca_dither_t
545#   define cucul_font_t caca_font_t
546#   define cucul_file_t caca_file_t
547#   define cucul_display_t caca_display_t
548#   define cucul_event_t caca_event_t
549
550#   define CUCUL_BLACK CACA_BLACK
551#   define CUCUL_BLUE CACA_BLUE
552#   define CUCUL_GREEN CACA_GREEN
553#   define CUCUL_CYAN CACA_CYAN
554#   define CUCUL_RED CACA_RED
555#   define CUCUL_MAGENTA CACA_MAGENTA
556#   define CUCUL_BROWN CACA_BROWN
557#   define CUCUL_LIGHTGRAY CACA_LIGHTGRAY
558#   define CUCUL_DARKGRAY CACA_DARKGRAY
559#   define CUCUL_LIGHTBLUE CACA_LIGHTBLUE
560#   define CUCUL_LIGHTGREEN CACA_LIGHTGREEN
561#   define CUCUL_LIGHTCYAN CACA_LIGHTCYAN
562#   define CUCUL_LIGHTRED CACA_LIGHTRED
563#   define CUCUL_LIGHTMAGENTA CACA_LIGHTMAGENTA
564#   define CUCUL_YELLOW CACA_YELLOW
565#   define CUCUL_WHITE CACA_YELLOW
566#   define CUCUL_DEFAULT CACA_DEFAULT
567#   define CUCUL_TRANSPARENT CACA_TRANSPARENT
568
569#   define CUCUL_BOLD CACA_BOLD
570#   define CUCUL_ITALICS CACA_ITALICS
571#   define CUCUL_UNDERLINE CACA_UNDERLINE
572#   define CUCUL_BLINK CACA_BLINK
573
574#   if !defined __LIBCACA__
575#       define cucul_draw_triangle caca_draw_triangle
576#       define cucul_draw_thin_triangle caca_draw_thin_triangle
577#       define cucul_fill_triangle caca_fill_triangle
578#       define cucul_load_font caca_load_font
579#       define cucul_get_font_list caca_get_font_list
580#       define cucul_get_font_width caca_get_font_width
581#       define cucul_get_font_height caca_get_font_height
582#       define cucul_get_font_blocks caca_get_font_blocks
583#       define cucul_render_canvas caca_render_canvas
584#       define cucul_free_font caca_free_font
585#       define cucul_gotoxy caca_gotoxy
586#       define cucul_get_cursor_x caca_get_cursor_x
587#       define cucul_get_cursor_y caca_get_cursor_y
588#       define cucul_put_char caca_put_char
589#       define cucul_get_char caca_get_char
590#       define cucul_put_str caca_put_str
591#       define cucul_printf caca_printf
592#       define cucul_clear_canvas caca_clear_canvas
593#       define cucul_set_canvas_handle caca_set_canvas_handle
594#       define cucul_get_canvas_handle_x caca_get_canvas_handle_x
595#       define cucul_get_canvas_handle_y caca_get_canvas_handle_y
596#       define cucul_blit caca_blit
597#       define cucul_set_canvas_boundaries caca_set_canvas_boundaries
598#       define cucul_import_memory caca_import_memory
599#       define cucul_import_file caca_import_file
600#       define cucul_get_import_list caca_get_import_list
601#       define cucul_create_canvas caca_create_canvas
602#       define cucul_manage_canvas caca_manage_canvas
603#       define cucul_unmanage_canvas caca_unmanage_canvas
604#       define cucul_set_canvas_size caca_set_canvas_size
605#       define cucul_get_canvas_width caca_get_canvas_width
606#       define cucul_get_canvas_height caca_get_canvas_height
607#       define cucul_get_canvas_chars caca_get_canvas_chars
608#       define cucul_get_canvas_attrs caca_get_canvas_attrs
609#       define cucul_free_canvas caca_free_canvas
610#       define cucul_rand caca_rand
611#       define cucul_export_memory caca_export_memory
612#       define cucul_get_export_list caca_get_export_list
613#       define cucul_get_version caca_get_version
614#       define cucul_utf8_to_utf32 caca_utf8_to_utf32
615#       define cucul_utf32_to_utf8 caca_utf32_to_utf8
616#       define cucul_utf32_to_cp437 caca_utf32_to_cp437
617#       define cucul_cp437_to_utf32 caca_cp437_to_utf32
618#       define cucul_utf32_to_ascii caca_utf32_to_ascii
619#       define cucul_utf32_is_fullwidth caca_utf32_is_fullwidth
620#       define cucul_draw_circle caca_draw_circle
621#       define cucul_draw_ellipse caca_draw_ellipse
622#       define cucul_draw_thin_ellipse caca_draw_thin_ellipse
623#       define cucul_fill_ellipse caca_fill_ellipse
624#       define cucul_canvas_set_figfont caca_canvas_set_figfont
625#       define cucul_put_figchar caca_put_figchar
626#       define cucul_flush_figlet caca_flush_figlet
627#       define cucul_putchar caca_putchar
628#       define cucul_getchar caca_getchar
629#       define cucul_get_attr caca_get_attr
630#       define cucul_set_attr caca_set_attr
631#       define cucul_put_attr caca_put_attr
632#       define cucul_set_color_ansi caca_set_color_ansi
633#       define cucul_set_color_argb caca_set_color_argb
634#       define cucul_attr_to_ansi caca_attr_to_ansi
635#       define cucul_attr_to_ansi_fg caca_attr_to_ansi_fg
636#       define cucul_attr_to_ansi_bg caca_attr_to_ansi_bg
637#       define cucul_attr_to_rgb12_fg caca_attr_to_rgb12_fg
638#       define cucul_attr_to_rgb12_bg caca_attr_to_rgb12_bg
639#       define cucul_attr_to_argb64 caca_attr_to_argb64
640#       define cucul_invert caca_invert
641#       define cucul_flip caca_flip
642#       define cucul_flop caca_flop
643#       define cucul_rotate_180 caca_rotate_180
644#       define cucul_rotate_left caca_rotate_left
645#       define cucul_rotate_right caca_rotate_right
646#       define cucul_stretch_left caca_stretch_left
647#       define cucul_stretch_right caca_stretch_right
648#       define cucul_file_open caca_file_open
649#       define cucul_file_close caca_file_close
650#       define cucul_file_tell caca_file_tell
651#       define cucul_file_read caca_file_read
652#       define cucul_file_write caca_file_write
653#       define cucul_file_gets caca_file_gets
654#       define cucul_file_eof caca_file_eof
655#       define cucul_create_dither caca_create_dither
656#       define cucul_set_dither_palette caca_set_dither_palette
657#       define cucul_set_dither_brightness caca_set_dither_brightness
658#       define cucul_get_dither_brightness caca_get_dither_brightness
659#       define cucul_set_dither_gamma caca_set_dither_gamma
660#       define cucul_get_dither_gamma caca_get_dither_gamma
661#       define cucul_set_dither_contrast caca_set_dither_contrast
662#       define cucul_get_dither_contrast caca_get_dither_contrast
663#       define cucul_set_dither_antialias caca_set_dither_antialias
664#       define cucul_get_dither_antialias_list caca_get_dither_antialias_list
665#       define cucul_get_dither_antialias caca_get_dither_antialias
666#       define cucul_set_dither_color caca_set_dither_color
667#       define cucul_get_dither_color_list caca_get_dither_color_list
668#       define cucul_get_dither_color caca_get_dither_color
669#       define cucul_set_dither_charset caca_set_dither_charset
670#       define cucul_get_dither_charset_list caca_get_dither_charset_list
671#       define cucul_get_dither_charset caca_get_dither_charset
672#       define cucul_set_dither_algorithm caca_set_dither_algorithm
673#       define cucul_get_dither_algorithm_list caca_get_dither_algorithm_list
674#       define cucul_get_dither_algorithm caca_get_dither_algorithm
675#       define cucul_dither_bitmap caca_dither_bitmap
676#       define cucul_free_dither caca_free_dither
677#       define cucul_draw_line caca_draw_line
678#       define cucul_draw_polyline caca_draw_polyline
679#       define cucul_draw_thin_line caca_draw_thin_line
680#       define cucul_draw_thin_polyline caca_draw_thin_polyline
681#       define cucul_draw_box caca_draw_box
682#       define cucul_draw_thin_box caca_draw_thin_box
683#       define cucul_draw_cp437_box caca_draw_cp437_box
684#       define cucul_fill_box caca_fill_box
685#       define cucul_get_frame_count caca_get_frame_count
686#       define cucul_set_frame caca_set_frame
687#       define cucul_get_frame_name caca_get_frame_name
688#       define cucul_set_frame_name caca_set_frame_name
689#       define cucul_create_frame caca_create_frame
690#       define cucul_free_frame caca_free_frame
691#   endif
692#endif
693
694#ifdef __cplusplus
695}
696#endif
697
698#undef __extern
699
700#endif /* __CACA_H__ */
Note: See TracBrowser for help on using the repository browser.