diff options
Diffstat (limited to 'cd/include/cd.h')
-rwxr-xr-x | cd/include/cd.h | 56 |
1 files changed, 43 insertions, 13 deletions
diff --git a/cd/include/cd.h b/cd/include/cd.h index ca38983..85b02c2 100755 --- a/cd/include/cd.h +++ b/cd/include/cd.h @@ -19,9 +19,9 @@ extern "C" { #define CD_NAME "CD - Canvas Draw" #define CD_DESCRIPTION "A 2D Graphics Library" #define CD_COPYRIGHT "Copyright (C) 1994-2010 Tecgraf, PUC-Rio." -#define CD_VERSION "5.3" /* bug fixes are reported only by cdVersion functions */ -#define CD_VERSION_NUMBER 503000 -#define CD_VERSION_DATE "2010/01/26" +#define CD_VERSION "5.4" /* bug fixes are reported only by cdVersion functions */ +#define CD_VERSION_NUMBER 504000 +#define CD_VERSION_DATE "2010/06/24" /* does not include bug fix releases */ typedef struct _cdContext cdContext; typedef struct _cdCanvas cdCanvas; @@ -113,10 +113,12 @@ int cdCanvasRegionCombineMode(cdCanvas* canvas, int mode); void cdCanvasPixel(cdCanvas* canvas, int x, int y, long color); void cdCanvasMark(cdCanvas* canvas, int x, int y); -void cdCanvasLine(cdCanvas* canvas, int x1, int y1, int x2, int y2); void cdCanvasBegin(cdCanvas* canvas, int mode); -void cdCanvasVertex(cdCanvas* canvas, int x, int y); +void cdCanvasPathSet(cdCanvas* canvas, int action); void cdCanvasEnd(cdCanvas* canvas); + +void cdCanvasLine(cdCanvas* canvas, int x1, int y1, int x2, int y2); +void cdCanvasVertex(cdCanvas* canvas, int x, int y); void cdCanvasRect(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax); void cdCanvasBox(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax); void cdCanvasArc(cdCanvas* canvas, int xc, int yc, int w, int h, double angle1, double angle2); @@ -152,7 +154,7 @@ unsigned char* cdCanvasGetStipple(cdCanvas* canvas, int *n, int *m); void cdCanvasPattern(cdCanvas* canvas, int w, int h, long const int *pattern); long* cdCanvasGetPattern(cdCanvas* canvas, int* n, int* m); int cdCanvasFillMode(cdCanvas* canvas, int mode); -int cdCanvasFont(cdCanvas* canvas, const char* type_face, int style, int size); +int cdCanvasFont(cdCanvas* canvas, const char* type_face, int style, int size); void cdCanvasGetFont(cdCanvas* canvas, char *type_face, int *style, int *size); char* cdCanvasNativeFont(cdCanvas* canvas, const char* font); int cdCanvasTextAlignment(cdCanvas* canvas, int alignment); @@ -165,13 +167,13 @@ void cdCanvasVectorText(cdCanvas* canvas, int x, int y, const char* s); void cdCanvasMultiLineVectorText(cdCanvas* canvas, int x, int y, const char* s); /* vector text attributes */ -char *cdCanvasVectorFont(cdCanvas* canvas, const char *filename); -void cdCanvasVectorTextDirection(cdCanvas* canvas, int x1, int y1, int x2, int y2); +char* cdCanvasVectorFont(cdCanvas* canvas, const char *filename); +void cdCanvasVectorTextDirection(cdCanvas* canvas, int x1, int y1, int x2, int y2); double* cdCanvasVectorTextTransform(cdCanvas* canvas, const double* matrix); -void cdCanvasVectorTextSize(cdCanvas* canvas, int size_x, int size_y, const char* s); -int cdCanvasVectorCharSize(cdCanvas* canvas, int size); -void cdCanvasVectorFontSize(cdCanvas* canvas, double size_x, double size_y); -void cdCanvasGetVectorFontSize(cdCanvas* canvas, double *size_x, double *size_y); +void cdCanvasVectorTextSize(cdCanvas* canvas, int size_x, int size_y, const char* s); +int cdCanvasVectorCharSize(cdCanvas* canvas, int size); +void cdCanvasVectorFontSize(cdCanvas* canvas, double size_x, double size_y); +void cdCanvasGetVectorFontSize(cdCanvas* canvas, double *size_x, double *size_y); /* vector text properties */ void cdCanvasGetVectorTextSize(cdCanvas* canvas, const char* s, int *x, int *y); @@ -271,11 +273,25 @@ enum { /* polygon mode (begin...end) */ CD_CLOSED_LINES, CD_CLIP, CD_BEZIER, - CD_REGION + CD_REGION, + CD_PATH }; #define CD_POLYCUSTOM 10 +enum { /* path actions */ + CD_PATH_NEW, + CD_PATH_MOVETO, + CD_PATH_LINETO, + CD_PATH_ARC, + CD_PATH_CURVETO, + CD_PATH_CLOSE, + CD_PATH_FILL, + CD_PATH_STROKE, + CD_PATH_FILLSTROKE, + CD_PATH_CLIP +}; + enum { /* fill mode */ CD_EVENODD, CD_WINDING @@ -410,6 +426,8 @@ enum { /* some font sizes */ #define CD_CAP_PALETTE 0x08000000 #define CD_CAP_LINECAP 0x10000000 #define CD_CAP_LINEJOIN 0x20000000 +#define CD_CAP_PATH 0x40000000 +#define CD_CAP_BEZIER 0x80000000 #define CD_CAP_ALL 0xFFFFFFFF /* cdPlay definitions */ @@ -459,6 +477,18 @@ typedef int(*cdSizeCB)(cdCanvas *canvas, int w, int h, double w_mm, double h_mm) #define CD_RAD2DEG 57.295779513 /* radians to degrees (deg = CD_RAD2DEG * rad) */ #define CD_DEG2RAD 0.01745329252 /* degrees to radians (rad = CD_DEG2RAD * deg) */ +/* paper sizes */ +enum { + CD_A0, + CD_A1, + CD_A2, + CD_A3, + CD_A4, + CD_A5, + CD_LETTER, + CD_LEGAL +}; + #ifdef __cplusplus } |