00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00042 #ifndef _H_PG_PGFX
00043 #define _H_PG_PGFX
00044
00064
00065
00077
00078 typedef int pgu;
00079
00092 typedef int pgprim;
00093
00094
00108 typedef struct pgfx_context {
00109 struct pgfx_lib *lib;
00110 pghandle device;
00111 pgcolor color;
00112 pgu cx;
00113 pgu cy;
00114 unsigned long flags;
00115 int sequence;
00116 } *pgcontext;
00117
00118
00126 struct pgfx_lib {
00128 pgprim (*pixel) (pgcontext c, pgu x, pgu y);
00130 pgprim (*line) (pgcontext c, pgu x1, pgu y1, pgu x2, pgu y2);
00132 pgprim (*rect) (pgcontext c, pgu x, pgu y, pgu w, pgu h);
00134 pgprim (*frame) (pgcontext c, pgu x, pgu y, pgu w, pgu h);
00136 pgprim (*slab) (pgcontext c, pgu x, pgu y, pgu w);
00138 pgprim (*bar) (pgcontext c, pgu x, pgu y, pgu h);
00140 pgprim (*ellipse) (pgcontext c, pgu x, pgu y, pgu w, pgu h);
00142 pgprim (*fellipse) (pgcontext c, pgu x, pgu y, pgu w, pgu h);
00144 pgprim (*fpolygon) (pgcontext c, pghandle array);
00146 pgprim (*text) (pgcontext c, pgu x, pgu y, pghandle string);
00148 pgprim (*bitmap) (pgcontext c, pgu x, pgu y, pgu w, pgu h,
00149 pghandle bitmap);
00151 pgprim (*rotatebitmap) (pgcontext c, pgu x, pgu y, pgu w, pgu h,
00152 pghandle bitmap);
00154 pgprim (*tilebitmap)(pgcontext c, pgu x, pgu y, pgu w, pgu h,
00155 pghandle bitmap);
00157 pgprim (*gradient) (pgcontext c, pgu x, pgu y, pgu w, pgu h,
00158 pgu angle, pgcolor c1, pgcolor c2);
00160 pgprim (*blur)(pgcontext c, pgu x,pgu y,pgu w,pgu h,pgu radius);
00161
00162
00163
00165 pgprim (*setcolor)(pgcontext c, pgcolor color);
00167 pgprim (*setfont)(pgcontext c, pghandle font);
00169 pgprim (*setlgop)(pgcontext c, short lgop);
00171 pgprim (*setangle)(pgcontext c, pgu angle);
00173 pgprim (*setsrc)(pgcontext c, pgu x,pgu y,pgu w,pgu h);
00175 pgprim (*setmapping)(pgcontext c, pgu x,pgu y,pgu w,pgu h,short type);
00177 pgprim (*setclip)(pgcontext c, pgu x,pgu y,pgu w,pgu h);
00178
00180 void (*update)(pgcontext c);
00181
00182
00183
00184 };
00185
00187
00188
00189
00199
00200 inline pgprim pgPixel(pgcontext c,pgu x,pgu y);
00202 inline pgprim pgLine(pgcontext c,pgu x1,pgu y1,pgu x2,pgu y2);
00204 inline pgprim pgRect(pgcontext c,pgu x,pgu y,pgu w,pgu h);
00206 inline pgprim pgFrame(pgcontext c,pgu x,pgu y,pgu w,pgu h);
00208 inline pgprim pgSlab(pgcontext c,pgu x,pgu y,pgu w);
00210 inline pgprim pgBar(pgcontext c,pgu x,pgu y,pgu h);
00212 inline pgprim pgEllipse(pgcontext c,pgu x,pgu y,pgu w,pgu h);
00214 inline pgprim pgFEllipse(pgcontext c,pgu x,pgu y,pgu w,pgu h);
00216 inline pgprim pgFPolygon(pgcontext c, pghandle array);
00218 inline pgprim pgBlur(pgcontext c, pgu x, pgu y, pgu w, pgu h, pgu radius);
00232 inline pgprim pgText(pgcontext c,pgu x,pgu y,pghandle string);
00243 inline pgprim pgBitmap(pgcontext c,pgu x,pgu y,pgu w,pgu h,pghandle bitmap);
00259 inline pgprim pgRotateBitmap(pgcontext c,pgu x,pgu y,pgu w,pgu h,pghandle bitmap);
00270 inline pgprim pgTileBitmap(pgcontext c,pgu x,pgu y,pgu w,pgu h,pghandle bitmap);
00279 inline pgprim pgGradient(pgcontext c,pgu x,pgu y,pgu w,pgu h,
00280 pgu angle,pgcolor c1,pgcolor c2);
00282 inline pgprim pgSetColor(pgcontext c,pgcolor color);
00284 inline pgprim pgSetFont(pgcontext c,pghandle font);
00306 inline pgprim pgSetLgop(pgcontext c,short lgop);
00316 inline pgprim pgSetAngle(pgcontext c,pgu angle);
00325 inline pgprim pgSetSrc(pgcontext c,pgu x,pgu y,pgu w,pgu h);
00341 inline pgprim pgSetMapping(pgcontext c,pgu x,pgu y,pgu w,pgu h,short type);
00342
00349 inline pgprim pgSetClip(pgcontext c,pgu x,pgu y,pgu w,pgu h);
00350
00359 inline void pgContextUpdate(pgcontext c);
00360
00362 void pgMoveTo(pgcontext c, pgu x, pgu y);
00364 pgprim pgLineTo(pgcontext c, pgu x, pgu y);
00365
00367
00368
00369
00395 #define PGFX_IMMEDIATE 1
00396
00405 #define PGFX_PERSISTENT 2
00406
00407
00408
00417 pgcontext pgNewCanvasContext(pghandle canvas,short mode);
00418
00429 pgcontext pgNewBitmapContext(pghandle bitmap);
00430
00432 void pgDeleteContext(pgcontext c);
00433
00436
00437 #endif
00438
00439