properly credited authors and documented a few things.tags/v0.99.beta14
@@ -21,13 +21,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
@@ -37,40 +30,54 @@ typedef unsigned char uint8_t; | |||||
#include "caca_internals.h" | #include "caca_internals.h" | ||||
static int caca_init_driver(caca_t *kk); | static int caca_init_driver(caca_t *kk); | ||||
static void caca_init_terminal(caca_t *kk); | |||||
static void caca_check_terminal(caca_t *kk); | |||||
/** \brief Attach a caca graphical context to a cucul backend context. | |||||
* | |||||
* Create a graphical context using device-dependent features (ncurses for | |||||
* terminals, an X11 window, a DOS command window...) that attaches to a | |||||
* libcucul canvas. Everything that gets drawn in the libcucul canvas can | |||||
* then be displayed by the libcaca driver. | |||||
* | |||||
* \param qq The cucul backend context. | |||||
* \return The caca graphical context or NULL if an error occurred. | |||||
*/ | |||||
caca_t * caca_attach(cucul_t * qq) | caca_t * caca_attach(cucul_t * qq) | ||||
{ | { | ||||
int ret; | |||||
caca_t *kk = malloc(sizeof(caca_t)); | caca_t *kk = malloc(sizeof(caca_t)); | ||||
ret = caca_init_driver(kk); | |||||
kk->qq = qq; | |||||
if(ret) | |||||
if(caca_init_driver(kk)) | |||||
{ | { | ||||
free(kk); | free(kk); | ||||
return NULL; | return NULL; | ||||
} | } | ||||
qq->refcount++; | |||||
kk->qq = qq; | |||||
/* Only for slang and ncurses */ | |||||
caca_init_terminal(kk); | |||||
/* Only needed for slang and ncurses */ | |||||
caca_check_terminal(kk); | |||||
if(_caca_init_graphics(kk)) | |||||
if(kk->driver.init_graphics(kk)) | |||||
{ | { | ||||
qq->refcount--; | |||||
free(kk); | free(kk); | ||||
return NULL; | return NULL; | ||||
} | } | ||||
/* Initialise events stuff */ | |||||
/* Attached! */ | |||||
kk->qq->refcount++; | |||||
/* Graphics stuff */ | |||||
kk->delay = 0; | |||||
kk->rendertime = 0; | |||||
/* Events stuff */ | |||||
#if defined(USE_SLANG) || defined(USE_NCURSES) | |||||
kk->events.key_timer.last_sec = 0; | kk->events.key_timer.last_sec = 0; | ||||
kk->events.key_timer.last_usec = 0; | kk->events.key_timer.last_usec = 0; | ||||
kk->events.last_key_ticks = 0; | kk->events.last_key_ticks = 0; | ||||
kk->events.autorepeat_ticks = 0; | kk->events.autorepeat_ticks = 0; | ||||
kk->events.last_key = 0; | kk->events.last_key = 0; | ||||
#endif | |||||
kk->timer.last_sec = 0; | kk->timer.last_sec = 0; | ||||
kk->timer.last_usec = 0; | kk->timer.last_usec = 0; | ||||
@@ -82,6 +89,14 @@ caca_t * caca_attach(cucul_t * qq) | |||||
return kk; | return kk; | ||||
} | } | ||||
/** \brief Detach a caca graphical context from a cucul backend context. | |||||
* | |||||
* Detach a graphical context from its cucul backend and destroy it. The | |||||
* libcucul canvas continues to exist and other graphical contexts can be | |||||
* attached to it afterwards. | |||||
* | |||||
* \param qq The caca graphical context. | |||||
*/ | |||||
void caca_detach(caca_t *kk) | void caca_detach(caca_t *kk) | ||||
{ | { | ||||
kk->driver.end_graphics(kk); | kk->driver.end_graphics(kk); | ||||
@@ -175,7 +190,7 @@ static int caca_init_driver(caca_t *kk) | |||||
return -1; | return -1; | ||||
} | } | ||||
static void caca_init_terminal(caca_t *kk) | |||||
static void caca_check_terminal(caca_t *kk) | |||||
{ | { | ||||
#if defined(HAVE_GETENV) && defined(HAVE_PUTENV) && \ | #if defined(HAVE_GETENV) && defined(HAVE_PUTENV) && \ | ||||
(defined(USE_SLANG) || defined(USE_NCURSES)) | (defined(USE_SLANG) || defined(USE_NCURSES)) | ||||
@@ -20,6 +20,14 @@ | |||||
#ifndef __CACA_INTERNALS_H__ | #ifndef __CACA_INTERNALS_H__ | ||||
#define __CACA_INTERNALS_H__ | #define __CACA_INTERNALS_H__ | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
typedef unsigned short uint16_t; | |||||
typedef unsigned int uint32_t; | |||||
#endif | |||||
#if defined(USE_GL) | #if defined(USE_GL) | ||||
# include <GL/glut.h> | # include <GL/glut.h> | ||||
#endif | #endif | ||||
@@ -102,7 +110,7 @@ struct caca_context | |||||
unsigned int (* get_window_width) (caca_t *); | unsigned int (* get_window_width) (caca_t *); | ||||
unsigned int (* get_window_height) (caca_t *); | unsigned int (* get_window_height) (caca_t *); | ||||
void (* display) (caca_t *); | void (* display) (caca_t *); | ||||
void (* handle_resize) (caca_t *); | |||||
void (* handle_resize) (caca_t *, unsigned int *, unsigned int *); | |||||
} driver; | } driver; | ||||
unsigned int width, height; | unsigned int width, height; | ||||
@@ -124,6 +132,7 @@ struct caca_context | |||||
#endif | #endif | ||||
} events; | } events; | ||||
/* FIXME: maybe this should go away */ | |||||
#if defined(USE_X11) && !defined(_DOXYGEN_SKIP_ME) | #if defined(USE_X11) && !defined(_DOXYGEN_SKIP_ME) | ||||
struct x11 | struct x11 | ||||
{ | { | ||||
@@ -163,6 +172,7 @@ struct caca_context | |||||
HANDLE hin, hout; | HANDLE hin, hout; | ||||
HANDLE front, back; | HANDLE front, back; | ||||
CHAR_INFO *buffer; | CHAR_INFO *buffer; | ||||
CONSOLE_CURSOR_INFO cci; | |||||
} win32; | } win32; | ||||
#endif | #endif | ||||
#if defined(USE_GL) | #if defined(USE_GL) | ||||
@@ -188,18 +198,8 @@ struct caca_context | |||||
#endif | #endif | ||||
}; | }; | ||||
/* Initialisation functions */ | |||||
extern int _caca_init_graphics(caca_t *kk); | |||||
extern int _caca_end_graphics(caca_t *kk); | |||||
/* Timer functions */ | /* Timer functions */ | ||||
extern void _caca_sleep(unsigned int); | extern void _caca_sleep(unsigned int); | ||||
extern unsigned int _caca_getticks(struct caca_timer *); | extern unsigned int _caca_getticks(struct caca_timer *); | ||||
/* Cached screen size */ | |||||
extern unsigned int _caca_width; | |||||
extern unsigned int _caca_height; | |||||
extern int _caca_resize; | |||||
extern int _caca_resize_event; | |||||
#endif /* __CACA_INTERNALS_H__ */ | #endif /* __CACA_INTERNALS_H__ */ |
@@ -9,23 +9,16 @@ | |||||
* http://sam.zoy.org/wtfpl/COPYING for more details. | * http://sam.zoy.org/wtfpl/COPYING for more details. | ||||
*/ | */ | ||||
/** \file graphics.c | |||||
/** \file driver_conio.c | |||||
* \version \$Id$ | * \version \$Id$ | ||||
* \author Sam Hocevar <sam@zoy.org> | * \author Sam Hocevar <sam@zoy.org> | ||||
* \brief Character drawing | |||||
* \brief DOS/conio.h driver | |||||
* | * | ||||
* This file contains character and string drawing functions. | |||||
* This file contains the libcaca DOS/conio.h input and output driver | |||||
*/ | */ | ||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#if defined(USE_CONIO) | #if defined(USE_CONIO) | ||||
#include <dos.h> | #include <dos.h> | ||||
@@ -50,8 +43,7 @@ typedef unsigned char uint8_t; | |||||
#include "cucul.h" | #include "cucul.h" | ||||
#include "cucul_internals.h" | #include "cucul_internals.h" | ||||
#if !defined(_DOXYGEN_SKIP_ME) | |||||
int conio_init_graphics(caca_t *kk) | |||||
static int conio_init_graphics(caca_t *kk) | |||||
{ | { | ||||
_wscroll = 0; | _wscroll = 0; | ||||
_setcursortype(_NOCURSOR); | _setcursortype(_NOCURSOR); | ||||
@@ -72,7 +64,7 @@ int conio_init_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
int conio_end_graphics(caca_t *kk) | |||||
static int conio_end_graphics(caca_t *kk) | |||||
{ | { | ||||
_wscroll = 1; | _wscroll = 1; | ||||
textcolor((enum COLORS)WHITE); | textcolor((enum COLORS)WHITE); | ||||
@@ -85,26 +77,25 @@ int conio_end_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
#endif /* _DOXYGEN_SKIP_ME */ | |||||
int conio_set_window_title(caca_t *kk, char const *title) | |||||
static int conio_set_window_title(caca_t *kk, char const *title) | |||||
{ | { | ||||
return 0; | return 0; | ||||
} | } | ||||
unsigned int conio_get_window_width(caca_t *kk) | |||||
static unsigned int conio_get_window_width(caca_t *kk) | |||||
{ | { | ||||
/* Fallback to a 6x10 font */ | /* Fallback to a 6x10 font */ | ||||
return kk->qq->width * 6; | return kk->qq->width * 6; | ||||
} | } | ||||
unsigned int conio_get_window_height(caca_t *kk) | |||||
static unsigned int conio_get_window_height(caca_t *kk) | |||||
{ | { | ||||
/* Fallback to a 6x10 font */ | /* Fallback to a 6x10 font */ | ||||
return kk->qq->height * 10; | return kk->qq->height * 10; | ||||
} | } | ||||
void conio_display(caca_t *kk) | |||||
static void conio_display(caca_t *kk) | |||||
{ | { | ||||
int n; | int n; | ||||
char *screen = kk->conio.screen; | char *screen = kk->conio.screen; | ||||
@@ -122,9 +113,11 @@ void conio_display(caca_t *kk) | |||||
# endif | # endif | ||||
} | } | ||||
void conio_handle_resize(caca_t *kk) | |||||
static void conio_handle_resize(caca_t *kk, unsigned int *new_width, | |||||
unsigned int *new_height) | |||||
{ | { | ||||
return; | |||||
*new_width = kk->qq->width; | |||||
*new_height = kk->qq->height; | |||||
} | } | ||||
/* | /* | ||||
@@ -9,23 +9,16 @@ | |||||
* http://sam.zoy.org/wtfpl/COPYING for more details. | * http://sam.zoy.org/wtfpl/COPYING for more details. | ||||
*/ | */ | ||||
/** \file graphics.c | |||||
/** \file driver_gl.c | |||||
* \version \$Id$ | * \version \$Id$ | ||||
* \author Sam Hocevar <sam@zoy.org> | |||||
* \brief Character drawing | |||||
* \author Jean-Yves Lamoureux <jylam@lnxscene.org> | |||||
* \brief OpenGL driver | |||||
* | * | ||||
* This file contains character and string drawing functions. | |||||
* This file contains the libcaca OpenGL input and output driver | |||||
*/ | */ | ||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#if defined(USE_GL) | #if defined(USE_GL) | ||||
#include <GL/gl.h> | #include <GL/gl.h> | ||||
@@ -82,7 +75,7 @@ static void gl_handle_reshape(int, int); | |||||
static void gl_handle_mouse(int, int, int, int); | static void gl_handle_mouse(int, int, int, int); | ||||
static void gl_handle_mouse_motion(int, int); | static void gl_handle_mouse_motion(int, int); | ||||
int gl_init_graphics(caca_t *kk) | |||||
static int gl_init_graphics(caca_t *kk) | |||||
{ | { | ||||
char *empty_texture; | char *empty_texture; | ||||
char const *geometry; | char const *geometry; | ||||
@@ -186,29 +179,29 @@ int gl_init_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
int gl_end_graphics(caca_t *kk) | |||||
static int gl_end_graphics(caca_t *kk) | |||||
{ | { | ||||
glutDestroyWindow(kk->gl.window); | glutDestroyWindow(kk->gl.window); | ||||
return 0; | return 0; | ||||
} | } | ||||
int gl_set_window_title(caca_t *kk, char const *title) | |||||
static int gl_set_window_title(caca_t *kk, char const *title) | |||||
{ | { | ||||
glutSetWindowTitle(title); | glutSetWindowTitle(title); | ||||
return 0; | return 0; | ||||
} | } | ||||
unsigned int gl_get_window_width(caca_t *kk) | |||||
static unsigned int gl_get_window_width(caca_t *kk) | |||||
{ | { | ||||
return kk->gl.width; | return kk->gl.width; | ||||
} | } | ||||
unsigned int gl_get_window_height(caca_t *kk) | |||||
static unsigned int gl_get_window_height(caca_t *kk) | |||||
{ | { | ||||
return kk->gl.height; | return kk->gl.height; | ||||
} | } | ||||
void gl_display(caca_t *kk) | |||||
static void gl_display(caca_t *kk) | |||||
{ | { | ||||
unsigned int x, y, line; | unsigned int x, y, line; | ||||
@@ -281,18 +274,14 @@ void gl_display(caca_t *kk) | |||||
glutPostRedisplay(); | glutPostRedisplay(); | ||||
} | } | ||||
void gl_handle_resize(caca_t *kk) | |||||
static void gl_handle_resize(caca_t *kk, unsigned int *new_width, | |||||
unsigned int *new_height) | |||||
{ | { | ||||
unsigned int new_width, new_height; | |||||
new_width = kk->qq->width; | |||||
new_height = kk->qq->height; | |||||
kk->gl.width = kk->gl.new_width; | kk->gl.width = kk->gl.new_width; | ||||
kk->gl.height = kk->gl.new_height; | kk->gl.height = kk->gl.new_height; | ||||
new_width = kk->gl.width / kk->gl.font_width; | |||||
new_height = (kk->gl.height / kk->gl.font_height) + 1; | |||||
*new_width = kk->gl.width / kk->gl.font_width; | |||||
*new_height = (kk->gl.height / kk->gl.font_height) + 1; | |||||
glMatrixMode(GL_PROJECTION); | glMatrixMode(GL_PROJECTION); | ||||
glPushMatrix(); | glPushMatrix(); | ||||
@@ -9,23 +9,16 @@ | |||||
* http://sam.zoy.org/wtfpl/COPYING for more details. | * http://sam.zoy.org/wtfpl/COPYING for more details. | ||||
*/ | */ | ||||
/** \file graphics.c | |||||
/** \file driver_ncurses.c | |||||
* \version \$Id$ | * \version \$Id$ | ||||
* \author Sam Hocevar <sam@zoy.org> | * \author Sam Hocevar <sam@zoy.org> | ||||
* \brief Character drawing | |||||
* \brief Ncurses driver | |||||
* | * | ||||
* This file contains character and string drawing functions. | |||||
* This file contains the libcaca Ncurses input and output driver | |||||
*/ | */ | ||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#if defined(USE_NCURSES) | #if defined(USE_NCURSES) | ||||
#if defined(HAVE_NCURSES_H) | #if defined(HAVE_NCURSES_H) | ||||
@@ -54,23 +47,16 @@ typedef unsigned char uint8_t; | |||||
#include "cucul.h" | #include "cucul.h" | ||||
#include "cucul_internals.h" | #include "cucul_internals.h" | ||||
int ncurses_init_graphics(caca_t *); | |||||
int ncurses_end_graphics(caca_t *); | |||||
int ncurses_set_window_title(caca_t *, char const *); | |||||
unsigned int ncurses_get_window_width(caca_t *); | |||||
unsigned int ncurses_get_window_height(caca_t *); | |||||
void ncurses_display(caca_t *); | |||||
void ncurses_handle_resize(caca_t *); | |||||
/* | /* | ||||
* Local functions | * Local functions | ||||
*/ | */ | ||||
#if defined(HAVE_SIGNAL) | #if defined(HAVE_SIGNAL) | ||||
static RETSIGTYPE sigwinch_handler(int); | static RETSIGTYPE sigwinch_handler(int); | ||||
static caca_t *sigwinch_kk; /* FIXME: we ought to get rid of this */ | static caca_t *sigwinch_kk; /* FIXME: we ought to get rid of this */ | ||||
#endif | #endif | ||||
int ncurses_init_graphics(caca_t *kk) | |||||
static int ncurses_init_graphics(caca_t *kk) | |||||
{ | { | ||||
static int curses_colors[] = | static int curses_colors[] = | ||||
{ | { | ||||
@@ -157,7 +143,7 @@ int ncurses_init_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
int ncurses_end_graphics(caca_t *kk) | |||||
static int ncurses_end_graphics(caca_t *kk) | |||||
{ | { | ||||
mousemask(kk->ncurses.oldmask, NULL); | mousemask(kk->ncurses.oldmask, NULL); | ||||
curs_set(1); | curs_set(1); | ||||
@@ -167,24 +153,24 @@ int ncurses_end_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
int ncurses_set_window_title(caca_t *kk, char const *title) | |||||
static int ncurses_set_window_title(caca_t *kk, char const *title) | |||||
{ | { | ||||
return 0; | return 0; | ||||
} | } | ||||
unsigned int ncurses_get_window_width(caca_t *kk) | |||||
static unsigned int ncurses_get_window_width(caca_t *kk) | |||||
{ | { | ||||
/* Fallback to a 6x10 font */ | /* Fallback to a 6x10 font */ | ||||
return kk->qq->width * 6; | return kk->qq->width * 6; | ||||
} | } | ||||
unsigned int ncurses_get_window_height(caca_t *kk) | |||||
static unsigned int ncurses_get_window_height(caca_t *kk) | |||||
{ | { | ||||
/* Fallback to a 6x10 font */ | /* Fallback to a 6x10 font */ | ||||
return kk->qq->height * 10; | return kk->qq->height * 10; | ||||
} | } | ||||
void ncurses_display(caca_t *kk) | |||||
static void ncurses_display(caca_t *kk) | |||||
{ | { | ||||
int x, y; | int x, y; | ||||
uint8_t *attr = kk->qq->attr; | uint8_t *attr = kk->qq->attr; | ||||
@@ -201,22 +187,22 @@ void ncurses_display(caca_t *kk) | |||||
refresh(); | refresh(); | ||||
} | } | ||||
void ncurses_handle_resize(caca_t *kk) | |||||
static void ncurses_handle_resize(caca_t *kk, unsigned int *new_width, | |||||
unsigned int *new_height) | |||||
{ | { | ||||
unsigned int new_width, new_height; | |||||
struct winsize size; | struct winsize size; | ||||
new_width = kk->qq->width; | |||||
new_height = kk->qq->height; | |||||
*new_width = kk->qq->width; | |||||
*new_height = kk->qq->height; | |||||
if(ioctl(fileno(stdout), TIOCGWINSZ, &size) == 0) | if(ioctl(fileno(stdout), TIOCGWINSZ, &size) == 0) | ||||
{ | { | ||||
new_width = size.ws_col; | |||||
new_height = size.ws_row; | |||||
*new_width = size.ws_col; | |||||
*new_height = size.ws_row; | |||||
#if defined(HAVE_RESIZE_TERM) | #if defined(HAVE_RESIZE_TERM) | ||||
resize_term(new_height, new_width); | |||||
resize_term(*new_height, *new_width); | |||||
#else | #else | ||||
resizeterm(new_height, new_width); | |||||
resizeterm(*new_height, *new_width); | |||||
#endif | #endif | ||||
wrefresh(curscr); | wrefresh(curscr); | ||||
} | } | ||||
@@ -9,23 +9,16 @@ | |||||
* http://sam.zoy.org/wtfpl/COPYING for more details. | * http://sam.zoy.org/wtfpl/COPYING for more details. | ||||
*/ | */ | ||||
/** \file graphics.c | |||||
/** \file driver_slang.c | |||||
* \version \$Id$ | * \version \$Id$ | ||||
* \author Sam Hocevar <sam@zoy.org> | * \author Sam Hocevar <sam@zoy.org> | ||||
* \brief Character drawing | |||||
* \brief SLang driver | |||||
* | * | ||||
* This file contains character and string drawing functions. | |||||
* This file contains the libcaca SLang input and output driver | |||||
*/ | */ | ||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#if defined(USE_SLANG) | #if defined(USE_SLANG) | ||||
#if defined(HAVE_SLANG_SLANG_H) | #if defined(HAVE_SLANG_SLANG_H) | ||||
@@ -112,14 +105,6 @@ static int const slang_assoc[16*16] = | |||||
123, 149, 158, 167, 176, 185, 194, 19, 125, 21, 30, 39, 48, 57, 66, 255, | 123, 149, 158, 167, 176, 185, 194, 19, 125, 21, 30, 39, 48, 57, 66, 255, | ||||
}; | }; | ||||
int slang_init_graphics(caca_t *); | |||||
int slang_end_graphics(caca_t *); | |||||
int slang_set_window_title(caca_t *, char const *); | |||||
unsigned int slang_get_window_width(caca_t *); | |||||
unsigned int slang_get_window_height(caca_t *); | |||||
void slang_display(caca_t *); | |||||
void slang_handle_resize(caca_t *); | |||||
/* | /* | ||||
* Local functions | * Local functions | ||||
*/ | */ | ||||
@@ -130,8 +115,7 @@ static RETSIGTYPE sigwinch_handler(int); | |||||
static caca_t *sigwinch_kk; /* FIXME: we ought to get rid of this */ | static caca_t *sigwinch_kk; /* FIXME: we ought to get rid of this */ | ||||
#endif | #endif | ||||
#if !defined(_DOXYGEN_SKIP_ME) | |||||
int slang_init_graphics(caca_t *kk) | |||||
static int slang_init_graphics(caca_t *kk) | |||||
{ | { | ||||
#if defined(HAVE_SIGNAL) | #if defined(HAVE_SIGNAL) | ||||
sigwinch_kk = kk; | sigwinch_kk = kk; | ||||
@@ -145,7 +129,7 @@ int slang_init_graphics(caca_t *kk) | |||||
if(SLkp_init() == -1) | if(SLkp_init() == -1) | ||||
{ | { | ||||
SLsig_unblock_signals(); | SLsig_unblock_signals(); | ||||
return NULL; | |||||
return -1; | |||||
} | } | ||||
SLang_init_tty(-1, 0, 1); | SLang_init_tty(-1, 0, 1); | ||||
@@ -153,7 +137,7 @@ int slang_init_graphics(caca_t *kk) | |||||
if(SLsmg_init_smg() == -1) | if(SLsmg_init_smg() == -1) | ||||
{ | { | ||||
SLsig_unblock_signals(); | SLsig_unblock_signals(); | ||||
return NULL; | |||||
return -1; | |||||
} | } | ||||
SLsig_unblock_signals(); | SLsig_unblock_signals(); | ||||
@@ -179,7 +163,7 @@ int slang_init_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
int slang_end_graphics(caca_t *kk) | |||||
static int slang_end_graphics(caca_t *kk) | |||||
{ | { | ||||
SLtt_set_mouse_mode(0, 0); | SLtt_set_mouse_mode(0, 0); | ||||
SLtt_set_cursor_visibility(1); | SLtt_set_cursor_visibility(1); | ||||
@@ -188,26 +172,26 @@ int slang_end_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
#endif /* _DOXYGEN_SKIP_ME */ | |||||
int slang_set_window_title(caca_t *kk, char const *title) | |||||
static int slang_set_window_title(caca_t *kk, char const *title) | |||||
{ | { | ||||
/* FIXME */ | |||||
return 0; | return 0; | ||||
} | } | ||||
unsigned int slang_get_window_width(caca_t *kk) | |||||
static unsigned int slang_get_window_width(caca_t *kk) | |||||
{ | { | ||||
/* Fallback to a 6x10 font */ | /* Fallback to a 6x10 font */ | ||||
return kk->qq->width * 6; | return kk->qq->width * 6; | ||||
} | } | ||||
unsigned int slang_get_window_height(caca_t *kk) | |||||
static unsigned int slang_get_window_height(caca_t *kk) | |||||
{ | { | ||||
/* Fallback to a 6x10 font */ | /* Fallback to a 6x10 font */ | ||||
return kk->qq->height * 10; | return kk->qq->height * 10; | ||||
} | } | ||||
void slang_display(caca_t *kk) | |||||
static void slang_display(caca_t *kk) | |||||
{ | { | ||||
int x, y; | int x, y; | ||||
uint8_t *attr = kk->qq->attr; | uint8_t *attr = kk->qq->attr; | ||||
@@ -250,25 +234,21 @@ void slang_display(caca_t *kk) | |||||
SLsmg_refresh(); | SLsmg_refresh(); | ||||
} | } | ||||
/* | |||||
* XXX: following functions are local | |||||
*/ | |||||
void slang_handle_resize(caca_t *kk) | |||||
static void slang_handle_resize(caca_t *kk, unsigned int *new_width, | |||||
unsigned int *new_height) | |||||
{ | { | ||||
unsigned int new_width, new_height; | |||||
new_width = kk->qq->width; | |||||
new_height = kk->qq->height; | |||||
SLtt_get_screen_size(); | SLtt_get_screen_size(); | ||||
new_width = SLtt_Screen_Cols; | |||||
new_height = SLtt_Screen_Rows; | |||||
*new_width = SLtt_Screen_Cols; | |||||
*new_height = SLtt_Screen_Rows; | |||||
if(new_width != kk->qq->width || new_height != kk->qq->height) | |||||
if(*new_width != kk->qq->width || *new_height != kk->qq->height) | |||||
SLsmg_reinit_smg(); | SLsmg_reinit_smg(); | ||||
} | } | ||||
/* | |||||
* XXX: following functions are local | |||||
*/ | |||||
static void slang_init_palette(void) | static void slang_init_palette(void) | ||||
{ | { | ||||
/* See SLang ref., 5.4.4. */ | /* See SLang ref., 5.4.4. */ | ||||
@@ -9,23 +9,16 @@ | |||||
* http://sam.zoy.org/wtfpl/COPYING for more details. | * http://sam.zoy.org/wtfpl/COPYING for more details. | ||||
*/ | */ | ||||
/** \file graphics.c | |||||
/** \file driver_win32.c | |||||
* \version \$Id$ | * \version \$Id$ | ||||
* \author Sam Hocevar <sam@zoy.org> | * \author Sam Hocevar <sam@zoy.org> | ||||
* \brief Character drawing | |||||
* \brief Win32 driver | |||||
* | * | ||||
* This file contains character and string drawing functions. | |||||
* This file contains the libcaca Win32 input and output driver | |||||
*/ | */ | ||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#if defined(USE_WIN32) | #if defined(USE_WIN32) | ||||
#include <windows.h> | #include <windows.h> | ||||
@@ -87,17 +80,8 @@ static int const win32_bg_palette[] = | |||||
BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | ||||
}; | }; | ||||
int win32_init_graphics(caca_t *); | |||||
int win32_end_graphics(caca_t *); | |||||
int win32_set_window_title(caca_t *, char const *); | |||||
unsigned int win32_get_window_width(caca_t *); | |||||
unsigned int win32_get_window_height(caca_t *); | |||||
void win32_display(caca_t *); | |||||
void win32_handle_resize(caca_t *); | |||||
int win32_init_graphics(caca_t *kk) | |||||
static int win32_init_graphics(caca_t *kk) | |||||
{ | { | ||||
CONSOLE_CURSOR_INFO cci; | |||||
CONSOLE_SCREEN_BUFFER_INFO csbi; | CONSOLE_SCREEN_BUFFER_INFO csbi; | ||||
COORD size; | COORD size; | ||||
@@ -111,9 +95,9 @@ int win32_init_graphics(caca_t *kk) | |||||
if(kk->win32.hout == INVALID_HANDLE_VALUE) | if(kk->win32.hout == INVALID_HANDLE_VALUE) | ||||
return -1; | return -1; | ||||
GetConsoleCursorInfo(kk->win32.hout, &cci); | |||||
cci.bVisible = FALSE; | |||||
SetConsoleCursorInfo(kk->win32.hout, &cci); | |||||
GetConsoleCursorInfo(kk->win32.hout, &kk->win32.cci); | |||||
kk->win32.cci.bVisible = FALSE; | |||||
SetConsoleCursorInfo(kk->win32.hout, &kk->win32.cci); | |||||
SetConsoleMode(kk->win32.hout, ENABLE_MOUSE_INPUT); | SetConsoleMode(kk->win32.hout, ENABLE_MOUSE_INPUT); | ||||
@@ -144,11 +128,11 @@ int win32_init_graphics(caca_t *kk) | |||||
SetConsoleMode(kk->win32.front, 0); | SetConsoleMode(kk->win32.front, 0); | ||||
SetConsoleMode(kk->win32.back, 0); | SetConsoleMode(kk->win32.back, 0); | ||||
GetConsoleCursorInfo(kk->win32.front, &cci); | |||||
cci.dwSize = 0; | |||||
cci.bVisible = FALSE; | |||||
SetConsoleCursorInfo(kk->win32.front, &cci); | |||||
SetConsoleCursorInfo(kk->win32.back, &cci); | |||||
GetConsoleCursorInfo(kk->win32.front, &kk->win32.cci); | |||||
kk->win32.cci.dwSize = 0; | |||||
kk->win32.cci.bVisible = FALSE; | |||||
SetConsoleCursorInfo(kk->win32.front, &kk->win32.cci); | |||||
SetConsoleCursorInfo(kk->win32.back, &kk->win32.cci); | |||||
SetConsoleActiveScreenBuffer(kk->win32.front); | SetConsoleActiveScreenBuffer(kk->win32.front); | ||||
@@ -160,7 +144,7 @@ int win32_init_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
int win32_end_graphics(caca_t *kk) | |||||
static int win32_end_graphics(caca_t *kk) | |||||
{ | { | ||||
SetConsoleActiveScreenBuffer(kk->win32.hout); | SetConsoleActiveScreenBuffer(kk->win32.hout); | ||||
CloseHandle(kk->win32.back); | CloseHandle(kk->win32.back); | ||||
@@ -170,20 +154,20 @@ int win32_end_graphics(caca_t *kk) | |||||
| FOREGROUND_RED | | FOREGROUND_RED | ||||
| FOREGROUND_GREEN | | FOREGROUND_GREEN | ||||
| FOREGROUND_BLUE); | | FOREGROUND_BLUE); | ||||
cci.bVisible = TRUE; | |||||
SetConsoleCursorInfo(kk->win32.hout, &cci); | |||||
kk->win32.cci.bVisible = TRUE; | |||||
SetConsoleCursorInfo(kk->win32.hout, &kk->win32.cci); | |||||
CloseHandle(kk->win32.hout); | CloseHandle(kk->win32.hout); | ||||
return 0; | return 0; | ||||
} | } | ||||
int win32_set_window_title(caca_t *kk, char const *title) | |||||
static int win32_set_window_title(caca_t *kk, char const *title) | |||||
{ | { | ||||
SetConsoleTitle(title); | SetConsoleTitle(title); | ||||
return 0; | return 0; | ||||
} | } | ||||
unsigned int win32_get_window_width(caca_t *kk) | |||||
static unsigned int win32_get_window_width(caca_t *kk) | |||||
{ | { | ||||
/* FIXME */ | /* FIXME */ | ||||
@@ -191,7 +175,7 @@ unsigned int win32_get_window_width(caca_t *kk) | |||||
return kk->qq->width * 6; | return kk->qq->width * 6; | ||||
} | } | ||||
unsigned int win32_get_window_height(caca_t *kk) | |||||
static unsigned int win32_get_window_height(caca_t *kk) | |||||
{ | { | ||||
/* FIXME */ | /* FIXME */ | ||||
@@ -199,7 +183,7 @@ unsigned int win32_get_window_height(caca_t *kk) | |||||
return kk->qq->height * 10; | return kk->qq->height * 10; | ||||
} | } | ||||
void win32_display(caca_t *kk) | |||||
static void win32_display(caca_t *kk) | |||||
{ | { | ||||
COORD size, pos; | COORD size, pos; | ||||
SMALL_RECT rect; | SMALL_RECT rect; | ||||
@@ -224,14 +208,12 @@ void win32_display(caca_t *kk) | |||||
WriteConsoleOutput(kk->win32.front, kk->win32.buffer, size, pos, &rect); | WriteConsoleOutput(kk->win32.front, kk->win32.buffer, size, pos, &rect); | ||||
} | } | ||||
void win32_handle_resize(caca_t *kk) | |||||
static void win32_handle_resize(caca_t *kk, unsigned int *new_width, | |||||
unsigned int *new_height) | |||||
{ | { | ||||
unsigned int new_width, new_height; | |||||
new_width = kk->qq->width; | |||||
new_height = kk->qq->height; | |||||
/* Nothing to do here. */ | /* Nothing to do here. */ | ||||
*new_width = kk->qq->width; | |||||
*new_height = kk->qq->height; | |||||
} | } | ||||
/* | /* | ||||
@@ -9,23 +9,16 @@ | |||||
* http://sam.zoy.org/wtfpl/COPYING for more details. | * http://sam.zoy.org/wtfpl/COPYING for more details. | ||||
*/ | */ | ||||
/** \file graphics.c | |||||
/** \file driver_x11.c | |||||
* \version \$Id$ | * \version \$Id$ | ||||
* \author Sam Hocevar <sam@zoy.org> | * \author Sam Hocevar <sam@zoy.org> | ||||
* \brief Character drawing | |||||
* \brief X11 driver | |||||
* | * | ||||
* This file contains character and string drawing functions. | |||||
* This file contains the libcaca X11 input and output driver | |||||
*/ | */ | ||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#if defined(USE_X11) | #if defined(USE_X11) | ||||
#include <X11/Xlib.h> | #include <X11/Xlib.h> | ||||
@@ -46,21 +39,12 @@ typedef unsigned char uint8_t; | |||||
#include "cucul.h" | #include "cucul.h" | ||||
#include "cucul_internals.h" | #include "cucul_internals.h" | ||||
int x11_init_graphics(caca_t *); | |||||
int x11_end_graphics(caca_t *); | |||||
int x11_set_window_title(caca_t *, char const *); | |||||
unsigned int x11_get_window_width(caca_t *); | |||||
unsigned int x11_get_window_height(caca_t *); | |||||
void x11_display(caca_t *); | |||||
void x11_handle_resize(caca_t *); | |||||
/* | /* | ||||
* Local functions | * Local functions | ||||
*/ | */ | ||||
static int x11_error_handler(Display *, XErrorEvent *); | static int x11_error_handler(Display *, XErrorEvent *); | ||||
#if !defined(_DOXYGEN_SKIP_ME) | |||||
int x11_init_graphics(caca_t *kk) | |||||
static int x11_init_graphics(caca_t *kk) | |||||
{ | { | ||||
static int const x11_palette[] = | static int const x11_palette[] = | ||||
{ | { | ||||
@@ -210,7 +194,7 @@ int x11_init_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
int x11_end_graphics(caca_t *kk) | |||||
static int x11_end_graphics(caca_t *kk) | |||||
{ | { | ||||
XSync(kk->x11.dpy, False); | XSync(kk->x11.dpy, False); | ||||
#if defined(HAVE_X11_XKBLIB_H) | #if defined(HAVE_X11_XKBLIB_H) | ||||
@@ -226,25 +210,24 @@ int x11_end_graphics(caca_t *kk) | |||||
return 0; | return 0; | ||||
} | } | ||||
#endif /* _DOXYGEN_SKIP_ME */ | |||||
int x11_set_window_title(caca_t *kk, char const *title) | |||||
static int x11_set_window_title(caca_t *kk, char const *title) | |||||
{ | { | ||||
XStoreName(kk->x11.dpy, kk->x11.window, title); | XStoreName(kk->x11.dpy, kk->x11.window, title); | ||||
return 0; | return 0; | ||||
} | } | ||||
unsigned int x11_get_window_width(caca_t *kk) | |||||
static unsigned int x11_get_window_width(caca_t *kk) | |||||
{ | { | ||||
return kk->qq->width * kk->x11.font_width; | return kk->qq->width * kk->x11.font_width; | ||||
} | } | ||||
unsigned int x11_get_window_height(caca_t *kk) | |||||
static unsigned int x11_get_window_height(caca_t *kk) | |||||
{ | { | ||||
return kk->qq->height * kk->x11.font_height; | return kk->qq->height * kk->x11.font_height; | ||||
} | } | ||||
void x11_display(caca_t *kk) | |||||
static void x11_display(caca_t *kk) | |||||
{ | { | ||||
unsigned int x, y, len; | unsigned int x, y, len; | ||||
@@ -308,17 +291,13 @@ void x11_display(caca_t *kk) | |||||
XFlush(kk->x11.dpy); | XFlush(kk->x11.dpy); | ||||
} | } | ||||
void x11_handle_resize(caca_t *kk) | |||||
static void x11_handle_resize(caca_t *kk, unsigned int *new_width, | |||||
unsigned int *new_height) | |||||
{ | { | ||||
unsigned int new_width, new_height; | |||||
Pixmap new_pixmap; | Pixmap new_pixmap; | ||||
new_width = kk->qq->width; | |||||
new_height = kk->qq->height; | |||||
new_width = kk->x11.new_width; | |||||
new_height = kk->x11.new_height; | |||||
*new_width = kk->x11.new_width; | |||||
*new_height = kk->x11.new_height; | |||||
new_pixmap = XCreatePixmap(kk->x11.dpy, kk->x11.window, | new_pixmap = XCreatePixmap(kk->x11.dpy, kk->x11.window, | ||||
kk->qq->width * kk->x11.font_width, | kk->qq->width * kk->x11.font_width, | ||||
@@ -19,12 +19,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#if defined(USE_SLANG) | #if defined(USE_SLANG) | ||||
# if defined(HAVE_SLANG_SLANG_H) | # if defined(HAVE_SLANG_SLANG_H) | ||||
# include <slang/slang.h> | # include <slang/slang.h> | ||||
@@ -658,11 +652,11 @@ static unsigned int _lowlevel_event(caca_t *kk) | |||||
for( ; ; ) | for( ; ; ) | ||||
{ | { | ||||
GetNumberOfConsoleInputEvents(win32_hin, &num); | |||||
GetNumberOfConsoleInputEvents(kk->win32.hin, &num); | |||||
if(num == 0) | if(num == 0) | ||||
break; | break; | ||||
ReadConsoleInput(win32_hin, &rec, 1, &num); | |||||
ReadConsoleInput(kk->win32.hin, &rec, 1, &num); | |||||
if(rec.EventType == KEY_EVENT) | if(rec.EventType == KEY_EVENT) | ||||
{ | { | ||||
if(rec.Event.KeyEvent.bKeyDown) | if(rec.Event.KeyEvent.bKeyDown) | ||||
@@ -19,13 +19,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdio.h> /* BUFSIZ */ | #include <stdio.h> /* BUFSIZ */ | ||||
#include <string.h> | #include <string.h> | ||||
#include <stdlib.h> | #include <stdlib.h> | ||||
@@ -44,26 +37,6 @@ typedef unsigned char uint8_t; | |||||
*/ | */ | ||||
static void caca_handle_resize(caca_t *kk); | static void caca_handle_resize(caca_t *kk); | ||||
#if !defined(_DOXYGEN_SKIP_ME) | |||||
int _caca_init_graphics(caca_t *kk) | |||||
{ | |||||
int ret = kk->driver.init_graphics(kk); | |||||
if(!ret) | |||||
return ret; | |||||
kk->delay = 0; | |||||
kk->rendertime = 0; | |||||
return 0; | |||||
} | |||||
int _caca_end_graphics(caca_t *kk) | |||||
{ | |||||
return kk->driver.end_graphics(kk); | |||||
} | |||||
#endif /* _DOXYGEN_SKIP_ME */ | |||||
/** \brief Set the window title. | /** \brief Set the window title. | ||||
* | * | ||||
* If libcaca runs in a window, try to change its title. This works with | * If libcaca runs in a window, try to change its title. This works with | ||||
@@ -191,10 +164,7 @@ static void caca_handle_resize(caca_t *kk) | |||||
{ | { | ||||
unsigned int new_width, new_height; | unsigned int new_width, new_height; | ||||
new_width = kk->qq->width; | |||||
new_height = kk->qq->height; | |||||
kk->driver.handle_resize(kk); | |||||
kk->driver.handle_resize(kk, &new_width, &new_height); | |||||
/* Tell libcucul we changed size */ | /* Tell libcucul we changed size */ | ||||
if(new_width != kk->qq->width || new_height != kk->qq->height) | if(new_width != kk->qq->width || new_height != kk->qq->height) | ||||
@@ -19,14 +19,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
typedef unsigned short uint16_t; | |||||
typedef unsigned int uint32_t; | |||||
#endif | |||||
#if defined(HAVE_ENDIAN_H) | #if defined(HAVE_ENDIAN_H) | ||||
# include <endian.h> | # include <endian.h> | ||||
#endif | #endif | ||||
@@ -19,12 +19,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include "cucul.h" | #include "cucul.h" | ||||
@@ -19,13 +19,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdio.h> /* BUFSIZ */ | #include <stdio.h> /* BUFSIZ */ | ||||
#include <string.h> | #include <string.h> | ||||
#include <stdlib.h> | #include <stdlib.h> | ||||
@@ -102,7 +95,7 @@ void cucul_putchar(cucul_t *qq, int x, int y, char c) | |||||
y < 0 || y >= (int)qq->height) | y < 0 || y >= (int)qq->height) | ||||
return; | return; | ||||
qq->chars[x + y * qq->width] = c & 0x7f; /* FIXME: ASCII-only */ | |||||
qq->chars[x + y * qq->width] = c & 0x0000007f; /* FIXME: ASCII-only */ | |||||
qq->attr[x + y * qq->width] = (qq->bgcolor << 4) | qq->fgcolor; | qq->attr[x + y * qq->width] = (qq->bgcolor << 4) | qq->fgcolor; | ||||
} | } | ||||
@@ -151,7 +144,7 @@ void cucul_putstr(cucul_t *qq, int x, int y, char const *s) | |||||
t = s; | t = s; | ||||
while(*t) | while(*t) | ||||
{ | { | ||||
*chars++ = *t++ & 0x7f; /* FIXME: ASCII-only */ | |||||
*chars++ = *t++ & 0x0000007f; /* FIXME: ASCII-only */ | |||||
*attr++ = (qq->bgcolor << 4) | qq->fgcolor; | *attr++ = (qq->bgcolor << 4) | qq->fgcolor; | ||||
} | } | ||||
} | } | ||||
@@ -20,12 +20,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include "cucul.h" | #include "cucul.h" | ||||
@@ -20,13 +20,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
@@ -20,6 +20,14 @@ | |||||
#ifndef __CUCUL_INTERNALS_H__ | #ifndef __CUCUL_INTERNALS_H__ | ||||
#define __CUCUL_INTERNALS_H__ | #define __CUCUL_INTERNALS_H__ | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
typedef unsigned char uint16_t; | |||||
typedef unsigned int uint32_t; | |||||
#endif | |||||
struct cucul_context | struct cucul_context | ||||
{ | { | ||||
/* Context size */ | /* Context size */ | ||||
@@ -27,7 +35,7 @@ struct cucul_context | |||||
uint32_t *chars; | uint32_t *chars; | ||||
uint8_t *attr; | uint8_t *attr; | ||||
uint8_t *empty_line, *scratch_line; | |||||
char *empty_line, *scratch_line; | |||||
enum cucul_color fgcolor; | enum cucul_color fgcolor; | ||||
enum cucul_color bgcolor; | enum cucul_color bgcolor; | ||||
@@ -9,23 +9,18 @@ | |||||
* http://sam.zoy.org/wtfpl/COPYING for more details. | * http://sam.zoy.org/wtfpl/COPYING for more details. | ||||
*/ | */ | ||||
/** \file char.c | |||||
/** \file export.c | |||||
* \version \$Id$ | * \version \$Id$ | ||||
* \author Sam Hocevar <sam@zoy.org> | * \author Sam Hocevar <sam@zoy.org> | ||||
* \brief Character drawing | |||||
* \author Jean-Yves Lamoureux <jylam@lnxscene.org> | |||||
* \brief Export function | |||||
* | * | ||||
* This file contains character and string drawing functions. | |||||
* This file contains export functions for various file formats such | |||||
* as HTML or IRC. | |||||
*/ | */ | ||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned int uint32_t; | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <stdio.h> | #include <stdio.h> | ||||
#include <string.h> | #include <string.h> | ||||
@@ -20,12 +20,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include "cucul.h" | #include "cucul.h" | ||||
@@ -19,12 +19,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include "cucul.h" | #include "cucul.h" | ||||
@@ -19,12 +19,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdio.h> | #include <stdio.h> | ||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
@@ -19,12 +19,6 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#if defined(HAVE_INTTYPES_H) || defined(_DOXYGEN_SKIP_ME) | |||||
# include <inttypes.h> | |||||
#else | |||||
typedef unsigned char uint8_t; | |||||
#endif | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include "cucul.h" | #include "cucul.h" | ||||
@@ -680,8 +680,8 @@ static void load_image(char const *name) | |||||
fclose(fp); | fclose(fp); | ||||
/* Create the libcaca bitmap */ | /* Create the libcaca bitmap */ | ||||
bitmap = caca_create_bitmap(bpp, w, h, depth * w, | |||||
rmask, gmask, bmask, amask); | |||||
bitmap = cucul_create_bitmap(qq, bpp, w, h, depth * w, | |||||
rmask, gmask, bmask, amask); | |||||
if(!bitmap) | if(!bitmap) | ||||
{ | { | ||||
free(pixels); | free(pixels); | ||||
@@ -690,7 +690,7 @@ static void load_image(char const *name) | |||||
} | } | ||||
if(bpp == 8) | if(bpp == 8) | ||||
caca_set_bitmap_palette(bitmap, red, green, blue, alpha); | |||||
cucul_set_bitmap_palette(qq, bitmap, red, green, blue, alpha); | |||||
#endif | #endif | ||||
} | } | ||||