@@ -55,12 +55,6 @@ Cucul::Cucul(int width, int height) | |||
if(!cv) throw -1; | |||
} | |||
Cucul::Cucul(Buffer *b, char const *format) | |||
{ | |||
cv = cucul_import_canvas(b->getBuffer(), format); | |||
if(!cv) throw -1; | |||
} | |||
Cucul::~Cucul() | |||
{ | |||
if(cv) | |||
@@ -99,20 +93,20 @@ int Cucul::setColorARGB(unsigned int f, unsigned int b) | |||
void Cucul::putChar(int x, int y, unsigned long int ch) | |||
{ | |||
cucul_putchar(cv, x, y, ch); | |||
cucul_put_char(cv, x, y, ch); | |||
} | |||
unsigned long int Cucul::getChar(int x, int y) | |||
{ | |||
return cucul_getchar(cv, x, y); | |||
return cucul_get_char(cv, x, y); | |||
} | |||
void Cucul::putStr(int x, int y, char *str) | |||
{ | |||
cucul_putstr(cv, x, y, str); | |||
cucul_put_str(cv, x, y, str); | |||
} | |||
void Cucul::Printf(int x, int y, char const * format,...) | |||
void Cucul::Printf(int x, int y, char const * format, ...) | |||
{ | |||
char tmp[BUFSIZ]; | |||
char *buf = tmp; | |||
@@ -161,12 +155,12 @@ void Cucul::Rotate() | |||
cucul_rotate(cv); | |||
} | |||
void Cucul::drawLine(int x1, int y1, int x2, int y2, char const *ch) | |||
void Cucul::drawLine(int x1, int y1, int x2, int y2, unsigned long int ch) | |||
{ | |||
cucul_draw_line(cv, x1, y1, x2, y2, ch); | |||
} | |||
void Cucul::drawPolyline(int const x[], int const y[], int f, char const *ch) | |||
void Cucul::drawPolyline(int const x[], int const y[], int f, unsigned long int ch) | |||
{ | |||
cucul_draw_polyline(cv, x, y, f, ch); | |||
} | |||
@@ -181,12 +175,12 @@ void Cucul::drawThinPolyline(int const x[], int const y[], int f) | |||
cucul_draw_thin_polyline(cv, x, y, f); | |||
} | |||
void Cucul::drawCircle(int x, int y, int d, char const *ch) | |||
void Cucul::drawCircle(int x, int y, int d, unsigned long int ch) | |||
{ | |||
cucul_draw_circle(cv, x, y, d, ch); | |||
} | |||
void Cucul::drawEllipse(int x, int y, int d1, int d2, char const *ch) | |||
void Cucul::drawEllipse(int x, int y, int d1, int d2, unsigned long int ch) | |||
{ | |||
cucul_draw_ellipse(cv, x, y, d1, d2, ch); | |||
} | |||
@@ -196,12 +190,12 @@ void Cucul::drawThinEllipse(int x, int y, int d1, int d2) | |||
cucul_draw_thin_ellipse(cv, x, y, d1, d2); | |||
} | |||
void Cucul::fillEllipse(int x, int y, int d1, int d2, char const *ch) | |||
void Cucul::fillEllipse(int x, int y, int d1, int d2, unsigned long int ch) | |||
{ | |||
cucul_fill_ellipse(cv, x, y, d1, d2, ch); | |||
} | |||
void Cucul::drawBox(int x, int y, int w, int h, char const *ch) | |||
void Cucul::drawBox(int x, int y, int w, int h, unsigned long int ch) | |||
{ | |||
cucul_draw_box(cv, x, y, w, h, ch); | |||
} | |||
@@ -211,12 +205,17 @@ void Cucul::drawThinBox(int x, int y, int w, int h) | |||
cucul_draw_thin_box(cv, x, y, w, h); | |||
} | |||
void Cucul::fillBox(int x, int y, int w, int h, char const *ch) | |||
void Cucul::drawCP437Box(int x, int y, int w, int h) | |||
{ | |||
cucul_draw_cp437_box(cv, x, y, w, h); | |||
} | |||
void Cucul::fillBox(int x, int y, int w, int h, unsigned long int ch) | |||
{ | |||
cucul_fill_box(cv, x, y, w, h, ch); | |||
} | |||
void Cucul::drawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, char const *ch) | |||
void Cucul::drawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, unsigned long int ch) | |||
{ | |||
cucul_draw_triangle(cv, x1, y1, x2, y2, x3, y3, ch); | |||
} | |||
@@ -226,7 +225,7 @@ void Cucul::drawThinTriangle(int x1, int y1, int x2, int y2, int x3, int y3) | |||
cucul_draw_thin_triangle(cv, x1, y1, x2, y2, x3, y3); | |||
} | |||
void Cucul::fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3, const char *ch) | |||
void Cucul::fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3, unsigned long int ch) | |||
{ | |||
cucul_fill_triangle(cv, x1, y1, x2, y2, x3, y3, ch); | |||
} | |||
@@ -269,6 +268,31 @@ int Cucul::freeFrame(unsigned int f) | |||
return cucul_create_canvas_frame(cv, f); | |||
} | |||
char const *const * Cucul::getImportList(void) | |||
{ | |||
return cucul_get_import_list(); | |||
} | |||
long int Cucul::importMemory(void const *buf, unsigned long int len, char const *fmt) | |||
{ | |||
return cucul_import_memory(cv, buf, len, fmt); | |||
} | |||
long int Cucul::importFile(char const *file, char const *fmt) | |||
{ | |||
return cucul_import_file(cv, file, fmt); | |||
} | |||
char const *const * Cucul::getExportList(void) | |||
{ | |||
return cucul_get_export_list(); | |||
} | |||
void *Cucul::exportMemory(char const *fmt, unsigned long int *len) | |||
{ | |||
return cucul_export_memory(cv, fmt, len); | |||
} | |||
Dither::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) | |||
{ | |||
dither = cucul_create_dither(v1, v2, v3, v4, v5, v6, v7, v8); | |||
@@ -384,47 +408,3 @@ Font::~Font() | |||
cucul_free_font(font); | |||
} | |||
Buffer::Buffer() | |||
{ | |||
buffer_ = NULL; | |||
} | |||
Buffer::~Buffer() | |||
{ | |||
if(buffer_) | |||
cucul_free_buffer(buffer_); | |||
} | |||
char const *const * Buffer::getExportList(void) | |||
{ | |||
return cucul_get_export_list(); | |||
} | |||
void *Buffer::getData(void) | |||
{ | |||
return cucul_get_buffer_data(buffer_); | |||
} | |||
void Buffer::loadMemory(void *buf, unsigned long int size) | |||
{ | |||
buffer_ = cucul_load_memory(buf, size); | |||
if(buffer_ == NULL) | |||
throw -1; | |||
} | |||
void Buffer::loadFile(char const *filename) | |||
{ | |||
buffer_ = cucul_load_file(filename); | |||
if(buffer_ == NULL) | |||
throw -1; | |||
} | |||
unsigned long int Buffer::getSize() | |||
{ | |||
return cucul_get_buffer_size(buffer_); | |||
} | |||
cucul_buffer *Buffer::getBuffer() | |||
{ | |||
return buffer_; | |||
} |
@@ -25,10 +25,8 @@ | |||
#include <cucul.h> | |||
class Cucul; | |||
class Charset | |||
{ | |||
unsigned long int utf8ToUtf32(char const *, unsigned int *); | |||
@@ -37,10 +35,6 @@ class Charset | |||
unsigned long int cp437ToUtf32(unsigned char); | |||
}; | |||
/* Ugly, I know */ | |||
class Font | |||
{ | |||
@@ -50,21 +44,23 @@ class Font | |||
char const *const * getList(void); | |||
unsigned int getWidth(); | |||
unsigned int getHeight(); | |||
void renderCanvas(Cucul *, unsigned char *, unsigned int, unsigned int, unsigned int); | |||
void renderCanvas(Cucul *, unsigned char *, unsigned int, | |||
unsigned int, unsigned int); | |||
unsigned long int const *getBlocks(); | |||
private: | |||
cucul_font *font; | |||
}; | |||
class Dither | |||
{ | |||
public: | |||
Dither(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); | |||
Dither(unsigned int, unsigned int, unsigned int, unsigned int, | |||
unsigned int, unsigned int, unsigned int, unsigned int); | |||
~Dither(); | |||
void setPalette(unsigned int r[], unsigned int g[], unsigned int b[], unsigned int a[]); | |||
void setPalette(unsigned int r[], unsigned int g[], | |||
unsigned int b[], unsigned int a[]); | |||
void setBrightness(float); | |||
void setGamma(float); | |||
void setContrast(float); | |||
@@ -81,40 +77,16 @@ class Dither | |||
private: | |||
cucul_dither *dither; | |||
}; | |||
class Buffer | |||
{ | |||
friend class Cucul; | |||
public: | |||
Buffer(); | |||
~Buffer(); | |||
char const *const * getExportList(void); | |||
void *getData(void); | |||
void loadMemory(void *buf, unsigned long int size); | |||
void loadFile(char const *filename); | |||
unsigned long int getSize(); | |||
protected: | |||
cucul_buffer *get_buffer(); | |||
private: | |||
cucul_buffer *buffer_; | |||
cucul_buffer *getBuffer(); | |||
}; | |||
class Cucul | |||
{ | |||
friend class Caca; | |||
friend class Dither; | |||
friend class Font; | |||
friend class Buffer; | |||
public: | |||
Cucul(); | |||
Cucul(int width, int height); | |||
Cucul(Buffer *, char const *); | |||
~Cucul(); | |||
void setSize(unsigned int w, unsigned int h); | |||
@@ -124,7 +96,7 @@ class Cucul | |||
int setAttr(unsigned long int); | |||
int setColorANSI(unsigned char f, unsigned char b); | |||
int setColorARGB(unsigned int f, unsigned int b); | |||
void Printf(int x , int y , char const * format,...); | |||
void Printf(int x, int y , char const * format, ...); | |||
void putChar(int x, int y, unsigned long int ch); | |||
unsigned long int getChar(int, int); | |||
void putStr(int x, int y, char *str); | |||
@@ -134,28 +106,34 @@ class Cucul | |||
void Flip(); | |||
void Flop(); | |||
void Rotate(); | |||
void drawLine(int, int, int, int, char const *); | |||
void drawPolyline(int const x[], int const y[], int, char const *); | |||
void drawLine(int, int, int, int, unsigned long int); | |||
void drawPolyline(int const x[], int const y[], int, unsigned long int); | |||
void drawThinLine(int, int, int, int); | |||
void drawThinPolyline(int const x[], int const y[], int); | |||
void drawCircle(int, int, int, char const *); | |||
void drawEllipse(int, int, int, int, char const *); | |||
void drawCircle(int, int, int, unsigned long int); | |||
void drawEllipse(int, int, int, int, unsigned long int); | |||
void drawThinEllipse(int, int, int, int); | |||
void fillEllipse(int, int, int, int, char const *); | |||
void drawBox(int, int, int, int, char const *); | |||
void fillEllipse(int, int, int, int, unsigned long int); | |||
void drawBox(int, int, int, int, unsigned long int); | |||
void drawThinBox(int, int, int, int); | |||
void fillBox(int, int, int, int, char const *); | |||
void drawTriangle(int, int, int, int, int, int, char const *); | |||
void drawCP437Box(int, int, int, int); | |||
void fillBox(int, int, int, int, unsigned long int); | |||
void drawTriangle(int, int, int, int, int, int, unsigned long int); | |||
void drawThinTriangle(int, int, int, int, int, int); | |||
void fillTriangle(int, int, int, int, int, int, char const *); | |||
void fillTriangle(int, int, int, int, int, int, unsigned long int); | |||
int Rand(int, int); | |||
int setBoundaries(cucul_canvas_t *, int, int, | |||
unsigned int, unsigned int); | |||
int setBoundaries(cucul_canvas_t *, int, int, unsigned int, unsigned int); | |||
unsigned int getFrameCount(); | |||
int setFrame(unsigned int); | |||
int createFrame(unsigned int); | |||
int freeFrame(unsigned int); | |||
char const * const * getImportList(void); | |||
long int importMemory(void const *, unsigned long int, char const *); | |||
long int importFile(char const *, char const *); | |||
char const * const * getExportList(void); | |||
void *exportMemory(char const *, unsigned long int *); | |||
protected: | |||
cucul_canvas_t *get_cucul_canvas_t(); | |||
@@ -163,5 +141,4 @@ class Cucul | |||
cucul_canvas_t *cv; | |||
}; | |||
#endif /* _CUCUL_PP_H */ |
@@ -64,15 +64,9 @@ int main(int argc, char *argv[]) | |||
try { | |||
// Import buffer into a canvas | |||
Buffer *buf = new Buffer(); | |||
buf->loadMemory((void *)pigstring, strlen(pigstring)); | |||
pig = new Cucul(buf, "text"); | |||
delete buf; | |||
// Change colour to magenta | |||
pig = new Cucul(); | |||
pig->setColorANSI(CUCUL_LIGHTMAGENTA, CUCUL_TRANSPARENT); | |||
for(int y = 0; y < pig->getHeight(); y++) | |||
for(int x = 0; x < pig->getWidth(); x++) | |||
pig->putChar(x, y, pig->getChar(x, y)); | |||
pig->importMemory(pigstring, strlen(pigstring), "text"); | |||
} | |||
catch(int e) { | |||
cerr << "Error while importing image (" << e << ")" << endl; | |||