|
- /*
- * libcucul++ C++ bindings for libcucul
- * Copyright (c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org>
- * All Rights Reserved
- *
- * $Id$
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the Do What The Fuck You Want To
- * Public License, Version 2, as published by Sam Hocevar. See
- * http://sam.zoy.org/wtfpl/COPYING for more details.
- */
-
- /** \file cucul++.h
- * \version \$Id$
- * \author Jean-Yves Lamoureux <jylam@lnxscene.org>
- * \brief The \e libcucul++ public header.
- *
- * This header contains the public types and functions that applications
- * using \e libcucul++ may use.
- */
-
- #ifndef _CUCUL_PP_H
- #define _CUCUL_PP_H
-
- #include <cucul.h>
-
- class Cucul
- {
- friend class Caca;
- public:
- Cucul();
- Cucul(int width, int height);
- ~Cucul();
-
- /* Ugly, I know */
- class Font
- {
- friend class Cucul;
- protected:
- cucul_font *font;
- };
-
- class Dither
- {
- friend class Cucul;
- protected:
- cucul_dither *dither;
- };
-
- class Buffer
- {
- friend class Cucul;
- protected:
- cucul_buffer *buffer;
- };
-
- void set_size(unsigned int w, unsigned int h);
- unsigned int get_width(void);
- unsigned int get_height(void);
- void set_color(unsigned int f, unsigned int b);
- char const * get_color_name(unsigned int color);
- void printf(int x , int y , char const * format,...);
- void putchar(int x, int y, char ch);
- void putstr(int x, int y, char *str);
- void clear(void);
- void blit(int, int, Cucul* c1, Cucul* c2);
- void invert();
- void flip();
- void flop();
- void rotate();
- void draw_line(int, int, int, int, char const *);
- void draw_polyline(int const x[], int const y[], int, char const *);
- void draw_thin_line(int, int, int, int);
- void draw_thin_polyline(int const x[], int const y[], int);
- void draw_circle(int, int, int, char const *);
- void draw_ellipse(int, int, int, int, char const *);
- void draw_thin_ellipse(int, int, int, int);
- void fill_ellipse(int, int, int, int, char const *);
- void draw_box(int, int, int, int, char const *);
- void draw_thin_box(int, int, int, int);
- void fill_box(int, int, int, int, char const *);
- void draw_triangle(int, int, int, int, int, int, char const *);
- void draw_thin_triangle(int, int, int, int, int, int);
- void fill_triangle(int, int, int, int, int, int, char const *);
- int rand(int, int);
- Dither * create_dither(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
- void set_dither_palette(Cucul::Dither *, unsigned int r[], unsigned int g[], unsigned int b[], unsigned int a[]);
- void set_dither_brightness(Cucul::Dither *, float);
- void set_dither_gamma(Cucul::Dither *, float);
- void set_dither_contrast(Cucul::Dither *, float);
- void set_dither_invert(Cucul::Dither *, int);
- void set_dither_antialias(Cucul::Dither *, char const *);
- char const *const * get_dither_antialias_list(Cucul::Dither const *);
- void set_dither_color(Cucul::Dither *, char const *);
- char const *const * get_dither_color_list(Cucul::Dither const *);
- void set_dither_charset(Cucul::Dither *, char const *);
- char const *const * get_dither_charset_list(Cucul::Dither const *);
- void set_dither_mode(Cucul::Dither *, char const *);
- char const *const * get_dither_mode_list(Cucul::Dither const *);
- void dither_bitmap(int, int, int, int, Cucul::Dither const *, void *);
- void free_dither(Cucul::Dither *);
- Font * load_font(void const *, unsigned int);
- char const *const * get_font_list(void);
- unsigned int get_font_width(Font *);
- unsigned int get_font_height(Font *);
- void render_canvas(Font *, unsigned char *, unsigned int, unsigned int, unsigned int);
- void free_font(Font *);
- Buffer * export_canvas(char const *);
- char const *const * get_export_list(void);
-
- protected:
- cucul_canvas_t *get_cucul_canvas_t();
-
- private:
- cucul_canvas_t *cv;
- };
-
-
- #endif /* _CUCUL_PP_H */
|