summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--html/en/func/coordinates.html5
-rw-r--r--include/cd_private.h6
-rw-r--r--src/cairo/cdcairodbuf.c3
-rw-r--r--src/cairo/cdcairoemf.c3
-rw-r--r--src/cairo/cdcairoimg.c3
-rw-r--r--src/cairo/cdcairoirgb.c3
-rw-r--r--src/cairo/cdcaironative_gdk.c3
-rw-r--r--src/cairo/cdcaironative_win32.c3
-rw-r--r--src/cairo/cdcaironative_x11.c3
-rw-r--r--src/cairo/cdcairopdf.c3
-rw-r--r--src/cairo/cdcairoplus.c2
-rw-r--r--src/cairo/cdcairoprn_unix.c3
-rw-r--r--src/cairo/cdcairoprn_win32.c3
-rw-r--r--src/cairo/cdcairops.c3
-rw-r--r--src/cairo/cdcairosvg.c3
-rw-r--r--src/cd.c10
-rw-r--r--src/drv/cdcgm.c1
-rw-r--r--src/drv/cddebug.c1
-rw-r--r--src/drv/cddgn.c1
-rw-r--r--src/drv/cddxf.c1
-rw-r--r--src/drv/cdgl.c1
-rw-r--r--src/drv/cdirgb.c2
-rw-r--r--src/drv/cdmf.c1
-rw-r--r--src/drv/cdpdf.c1
-rw-r--r--src/drv/cdpicture.c1
-rw-r--r--src/drv/cdps.c1
-rw-r--r--src/gdiplus/cdwclpp.cpp3
-rw-r--r--src/gdiplus/cdwdbufp.cpp3
-rw-r--r--src/gdiplus/cdwemfp.cpp3
-rw-r--r--src/gdiplus/cdwgdiplus.c2
-rw-r--r--src/gdiplus/cdwimgp.cpp3
-rw-r--r--src/gdiplus/cdwnativep.cpp3
-rw-r--r--src/gdiplus/cdwprnp.cpp3
-rw-r--r--src/gdk/cdgdkclp.c1
-rw-r--r--src/gdk/cdgdkdbuf.c1
-rw-r--r--src/gdk/cdgdkimg.c1
-rw-r--r--src/gdk/cdgdknative.c1
-rw-r--r--src/lua5/cdvoid5.c1
-rw-r--r--src/svg/cdsvg.c1
-rw-r--r--src/win32/cdwclp.c1
-rw-r--r--src/win32/cdwdbuf.c1
-rw-r--r--src/win32/cdwemf.c1
-rw-r--r--src/win32/cdwimg.c1
-rw-r--r--src/win32/cdwnative.c1
-rw-r--r--src/win32/cdwprn.c1
-rw-r--r--src/win32/cdwwmf.c3
-rw-r--r--src/x11/cdxclp.c1
-rw-r--r--src/x11/cdxdbuf.c1
-rw-r--r--src/x11/cdximg.c1
-rw-r--r--src/x11/cdxnative.c1
-rw-r--r--src/xrender/cdxrender.c12
-rw-r--r--src/xrender/cdxrplus.c2
52 files changed, 41 insertions, 82 deletions
diff --git a/html/en/func/coordinates.html b/html/en/func/coordinates.html
index 1f09f4b..ce4ff9a 100644
--- a/html/en/func/coordinates.html
+++ b/html/en/func/coordinates.html
@@ -119,6 +119,11 @@ and <strong>ScrollArea</strong>.</p>
and <strong>Origin</strong>
functions. And those are affected if a transformation is set, just like other
regular primitives.</p>
+ <p>The transformation matrix and world coordinates perform similar
+ functions.&nbsp;World coordinates were developed before the transformation matrix
+ support.&nbsp;The transformation matrix operates at a lower level than world
+ coordinates, and, as such, might be faster, but might behave differently on
+ different platforms.&nbsp;World coordinates behave consistently across platforms.</p>
</div><div class="function"><pre class="function"><span class="mainFunction">double*&nbsp;<a name="cdGetTransform">cdCanvasGetTransform</a>(cdCanvas* canvas); [in C]</span>
diff --git a/include/cd_private.h b/include/cd_private.h
index 672d23c..92d378b 100644
--- a/include/cd_private.h
+++ b/include/cd_private.h
@@ -68,8 +68,7 @@ struct _cdImage
struct _cdContext
{
unsigned long caps; /* canvas capabilities, combination of CD_CAP_* */
- int plus; /* indicates if the context is a context plus */
- int type; /* context type WINDOW, DEVICE, IMAGE or FILE */
+ int type; /* context type WINDOW, DEVICE, IMAGE or FILE, combined with PLUS */
/* can NOT be NULL */
void (*cxCreateCanvas)(cdCanvas* canvas, void *data);
@@ -264,7 +263,8 @@ void wdSetDefaults(cdCanvas* canvas);
void cdInitContextPlusList(cdContext* ctx_list[]);
cdContext* cdGetContextPlus(int ctx);
enum{CD_CTXPLUS_NATIVEWINDOW, CD_CTXPLUS_IMAGE, CD_CTXPLUS_DBUFFER, CD_CTXPLUS_PRINTER, CD_CTXPLUS_EMF, CD_CTXPLUS_CLIPBOARD};
-#define NUM_CONTEXTPLUS 6
+#define CD_CTXPLUS_COUNT 6
+#define CD_CTX_PLUS 0xFF00 /* to combine with context type */
/*************/
/* utilities */
diff --git a/src/cairo/cdcairodbuf.c b/src/cairo/cdcairodbuf.c
index 845a24b..0322191 100644
--- a/src/cairo/cdcairodbuf.c
+++ b/src/cairo/cdcairodbuf.c
@@ -137,8 +137,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdDBufferContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE ),
- 1,
- CD_CTX_IMAGE,
+ CD_CTX_IMAGE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcairoemf.c b/src/cairo/cdcairoemf.c
index f83ae11..f2b31b6 100644
--- a/src/cairo/cdcairoemf.c
+++ b/src/cairo/cdcairoemf.c
@@ -108,8 +108,7 @@ static cdContext cdEMFCairoContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_GETIMAGERGB |
CD_CAP_WRITEMODE | CD_CAP_PALETTE | CD_CAP_IMAGESRV),
- 1,
- CD_CTX_FILE,
+ CD_CTX_FILE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcairoimg.c b/src/cairo/cdcairoimg.c
index 3786de1..77bbda8 100644
--- a/src/cairo/cdcairoimg.c
+++ b/src/cairo/cdcairoimg.c
@@ -38,8 +38,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdImageContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE ),
- 1,
- CD_CTX_IMAGE,
+ CD_CTX_IMAGE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcairoirgb.c b/src/cairo/cdcairoirgb.c
index 21ff6c5..e5f2c2a 100644
--- a/src/cairo/cdcairoirgb.c
+++ b/src/cairo/cdcairoirgb.c
@@ -146,8 +146,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdCairoImageRGBContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE),
- 0, /* not a plus driver */
- CD_CTX_IMAGE,
+ CD_CTX_IMAGE, /* not a plus driver */
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcaironative_gdk.c b/src/cairo/cdcaironative_gdk.c
index 1e177a4..e2e0bd1 100644
--- a/src/cairo/cdcaironative_gdk.c
+++ b/src/cairo/cdcaironative_gdk.c
@@ -95,8 +95,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdNativeWindowContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE),
- 1,
- CD_CTX_WINDOW,
+ CD_CTX_WINDOW|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcaironative_win32.c b/src/cairo/cdcaironative_win32.c
index 3cc1972..9c097f9 100644
--- a/src/cairo/cdcaironative_win32.c
+++ b/src/cairo/cdcaironative_win32.c
@@ -144,8 +144,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdNativeWindowContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE),
- 1,
- CD_CTX_WINDOW,
+ CD_CTX_WINDOW|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcaironative_x11.c b/src/cairo/cdcaironative_x11.c
index ae08420..c177e82 100644
--- a/src/cairo/cdcaironative_x11.c
+++ b/src/cairo/cdcaironative_x11.c
@@ -84,8 +84,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdNativeWindowContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE ),
- 1,
- CD_CTX_WINDOW,
+ CD_CTX_WINDOW|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcairopdf.c b/src/cairo/cdcairopdf.c
index 980da72..5a8c210 100644
--- a/src/cairo/cdcairopdf.c
+++ b/src/cairo/cdcairopdf.c
@@ -109,8 +109,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdCairoPDFContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE),
- 0, /* not a plus driver */
- CD_CTX_FILE,
+ CD_CTX_FILE, /* not a plus driver */
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcairoplus.c b/src/cairo/cdcairoplus.c
index d37efa7..9da8b33 100644
--- a/src/cairo/cdcairoplus.c
+++ b/src/cairo/cdcairoplus.c
@@ -13,7 +13,7 @@
void cdInitContextPlus(void)
{
- cdContext* ctx_list[NUM_CONTEXTPLUS];
+ cdContext* ctx_list[CD_CTXPLUS_COUNT];
memset(ctx_list, 0, sizeof(ctx_list));
ctx_list[CD_CTXPLUS_NATIVEWINDOW] = cdContextCairoNativeWindow();
diff --git a/src/cairo/cdcairoprn_unix.c b/src/cairo/cdcairoprn_unix.c
index 0c4544c..ddde827 100644
--- a/src/cairo/cdcairoprn_unix.c
+++ b/src/cairo/cdcairoprn_unix.c
@@ -194,8 +194,7 @@ static cdContext cdPrinterCairoContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_GETIMAGERGB |
CD_CAP_WRITEMODE | CD_CAP_PALETTE | CD_CAP_IMAGESRV),
- 1,
- CD_CTX_DEVICE,
+ CD_CTX_DEVICE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcairoprn_win32.c b/src/cairo/cdcairoprn_win32.c
index a5fadbd..003a8ac 100644
--- a/src/cairo/cdcairoprn_win32.c
+++ b/src/cairo/cdcairoprn_win32.c
@@ -181,8 +181,7 @@ static cdContext cdPrinterCairoContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_GETIMAGERGB |
CD_CAP_WRITEMODE | CD_CAP_PALETTE | CD_CAP_IMAGESRV),
- 1,
- CD_CTX_DEVICE,
+ CD_CTX_DEVICE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcairops.c b/src/cairo/cdcairops.c
index 8880255..0905716 100644
--- a/src/cairo/cdcairops.c
+++ b/src/cairo/cdcairops.c
@@ -158,8 +158,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdCairoPSContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE),
- 0, /* not a plus driver */
- CD_CTX_FILE,
+ CD_CTX_FILE, /* not a plus driver */
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cairo/cdcairosvg.c b/src/cairo/cdcairosvg.c
index 116d39d..c147a3e 100644
--- a/src/cairo/cdcairosvg.c
+++ b/src/cairo/cdcairosvg.c
@@ -70,8 +70,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdCairoSVGContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_REGION | CD_CAP_WRITEMODE | CD_CAP_PALETTE),
- 0, /* not a plus driver */
- CD_CTX_FILE,
+ CD_CTX_FILE, /* not a plus driver */
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/cd.c b/src/cd.c
index 50e1134..f833037 100644
--- a/src/cd.c
+++ b/src/cd.c
@@ -268,14 +268,14 @@ int cdContextIsPlus(cdContext *context)
{
if (!context)
return CD_ERROR;
- return context->plus;
+ return context->type&CD_CTX_PLUS? 1: 0;
}
int cdContextType(cdContext *context)
{
if (!context)
return CD_ERROR;
- return context->type;
+ return context->type&0x00FF;
}
int cdCanvasSimulate(cdCanvas* canvas, int mode)
@@ -752,7 +752,7 @@ void cdfCanvasPixel2MM(cdCanvas* canvas, double dx, double dy, double *mm_dx, do
/***** Context Plus Functions ********/
static int use_context_plus = 0;
-static cdContext* context_plus[NUM_CONTEXTPLUS] = {NULL, NULL, NULL, NULL, NULL, NULL};
+static cdContext* context_plus[CD_CTXPLUS_COUNT] = {NULL, NULL, NULL, NULL, NULL, NULL};
int cdUseContextPlus(int use)
{
@@ -768,14 +768,14 @@ int cdUseContextPlus(int use)
void cdInitContextPlusList(cdContext* ctx_list[])
{
int ctx;
- for (ctx = 0; ctx < NUM_CONTEXTPLUS; ctx++)
+ for (ctx = 0; ctx < CD_CTXPLUS_COUNT; ctx++)
if (ctx_list[ctx] != NULL)
context_plus[ctx] = ctx_list[ctx];
}
cdContext* cdGetContextPlus(int ctx)
{
- if (ctx < 0 || ctx >= NUM_CONTEXTPLUS)
+ if (ctx < 0 || ctx >= CD_CTXPLUS_COUNT)
return NULL;
return context_plus[ctx];
diff --git a/src/drv/cdcgm.c b/src/drv/cdcgm.c
index 17a1239..471a174 100644
--- a/src/drv/cdcgm.c
+++ b/src/drv/cdcgm.c
@@ -1135,7 +1135,6 @@ static cdContext cdCGMContext =
CD_CAP_FONTDIM | CD_CAP_TEXTSIZE |
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB |
CD_CAP_TEXTORIENTATION | CD_CAP_PATH | CD_CAP_BEZIER),
- 0,
CD_CTX_FILE,
cdcreatecanvas,
cdinittable,
diff --git a/src/drv/cddebug.c b/src/drv/cddebug.c
index 3550fc6..796947e 100644
--- a/src/drv/cddebug.c
+++ b/src/drv/cddebug.c
@@ -820,7 +820,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdDebugContext =
{
CD_CAP_ALL,
- 0,
CD_CTX_FILE,
cdcreatecanvas,
cdinittable,
diff --git a/src/drv/cddgn.c b/src/drv/cddgn.c
index 505526a..af818c9 100644
--- a/src/drv/cddgn.c
+++ b/src/drv/cddgn.c
@@ -1687,7 +1687,6 @@ static cdContext cdDGNContext =
CD_CAP_HATCH | CD_CAP_STIPPLE | CD_CAP_PATTERN |
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB |
CD_CAP_FPRIMTIVES | CD_CAP_TEXTORIENTATION),
- 0,
CD_CTX_FILE,
cdcreatecanvas,
cdinittable,
diff --git a/src/drv/cddxf.c b/src/drv/cddxf.c
index bdb77a4..2518a36 100644
--- a/src/drv/cddxf.c
+++ b/src/drv/cddxf.c
@@ -1363,7 +1363,6 @@ static cdContext cdDXFContext =
CD_CAP_BACKGROUND | CD_CAP_BACKOPACITY | CD_CAP_WRITEMODE |
CD_CAP_HATCH | CD_CAP_STIPPLE | CD_CAP_PATTERN |
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB),
- 0,
CD_CTX_FILE,
cdcreatecanvas,
cdinittable,
diff --git a/src/drv/cdgl.c b/src/drv/cdgl.c
index 120e4bc..7fe7ba2 100644
--- a/src/drv/cdgl.c
+++ b/src/drv/cdgl.c
@@ -1547,7 +1547,6 @@ static cdContext cdGLContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_PALETTE | CD_CAP_LINEJOIN | CD_CAP_LINECAP |
CD_CAP_REGION | CD_CAP_STIPPLE | CD_CAP_PATTERN),
- 0,
CD_CTX_WINDOW,
cdcreatecanvas,
cdinittable,
diff --git a/src/drv/cdirgb.c b/src/drv/cdirgb.c
index 5b72dc6..90c8335 100644
--- a/src/drv/cdirgb.c
+++ b/src/drv/cdirgb.c
@@ -1878,7 +1878,6 @@ static cdContext cdImageRGBContext =
CD_CAP_ALL & ~(CD_CAP_FLUSH | CD_CAP_PLAY |
CD_CAP_LINECAP | CD_CAP_LINEJOIN |
CD_CAP_PALETTE ),
- 0,
CD_CTX_IMAGE,
cdcreatecanvas,
cdinittable,
@@ -1975,7 +1974,6 @@ static cdContext cdDBufferRGBContext =
CD_CAP_ALL & ~(CD_CAP_PLAY |
CD_CAP_LINECAP | CD_CAP_LINEJOIN |
CD_CAP_PALETTE ),
- 0,
CD_CTX_IMAGE,
cdcreatecanvasDB,
cdinittableDB,
diff --git a/src/drv/cdmf.c b/src/drv/cdmf.c
index ecbdf8c..f309a82 100644
--- a/src/drv/cdmf.c
+++ b/src/drv/cdmf.c
@@ -1262,7 +1262,6 @@ static cdContext cdMetafileContext =
{
CD_CAP_ALL & ~(CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV |
CD_CAP_REGION | CD_CAP_FONTDIM | CD_CAP_TEXTSIZE),
- 0,
CD_CTX_FILE,
cdcreatecanvasMF,
cdinittableMF,
diff --git a/src/drv/cdpdf.c b/src/drv/cdpdf.c
index f7f3b36..4e4898b 100644
--- a/src/drv/cdpdf.c
+++ b/src/drv/cdpdf.c
@@ -1733,7 +1733,6 @@ static cdContext cdPDFContext =
CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_PLAY | CD_CAP_PALETTE |
CD_CAP_REGION | CD_CAP_IMAGESRV | CD_CAP_TEXTSIZE |
CD_CAP_WRITEMODE | CD_CAP_GETIMAGERGB),
- 0,
CD_CTX_FILE,
cdcreatecanvas,
cdinittable,
diff --git a/src/drv/cdpicture.c b/src/drv/cdpicture.c
index 85bb84a..9844763 100644
--- a/src/drv/cdpicture.c
+++ b/src/drv/cdpicture.c
@@ -1396,7 +1396,6 @@ static cdContext cdPictureContext =
{
CD_CAP_ALL & ~(CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV |
CD_CAP_REGION | CD_CAP_FONTDIM | CD_CAP_TEXTSIZE),
- 0,
CD_CTX_DEVICE,
cdcreatecanvas,
cdinittable,
diff --git a/src/drv/cdps.c b/src/drv/cdps.c
index abd7359..88e7360 100644
--- a/src/drv/cdps.c
+++ b/src/drv/cdps.c
@@ -2127,7 +2127,6 @@ static cdContext cdPSContext =
CD_CAP_BACKGROUND | CD_CAP_BACKOPACITY | CD_CAP_WRITEMODE |
CD_CAP_FONTDIM | CD_CAP_TEXTSIZE |
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB),
- 0,
CD_CTX_FILE,
cdcreatecanvas,
cdinittable,
diff --git a/src/gdiplus/cdwclpp.cpp b/src/gdiplus/cdwclpp.cpp
index 9fa2c4c..666f8b1 100644
--- a/src/gdiplus/cdwclpp.cpp
+++ b/src/gdiplus/cdwclpp.cpp
@@ -188,8 +188,7 @@ static cdContext cdClipboardContext =
{
CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_FLUSH | CD_CAP_YAXIS | CD_CAP_PLAY |
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV ),
- 1,
- CD_CTX_DEVICE,
+ CD_CTX_DEVICE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/gdiplus/cdwdbufp.cpp b/src/gdiplus/cdwdbufp.cpp
index df81265..cfa0319 100644
--- a/src/gdiplus/cdwdbufp.cpp
+++ b/src/gdiplus/cdwdbufp.cpp
@@ -148,8 +148,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdDBufferContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS ),
- 1,
- CD_CTX_IMAGE,
+ CD_CTX_IMAGE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/gdiplus/cdwemfp.cpp b/src/gdiplus/cdwemfp.cpp
index b19f4cb..9bf9ec0 100644
--- a/src/gdiplus/cdwemfp.cpp
+++ b/src/gdiplus/cdwemfp.cpp
@@ -87,8 +87,7 @@ static cdContext cdEMFContext =
{
CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_PLAY | CD_CAP_FLUSH | CD_CAP_YAXIS |
CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV),
- 1,
- CD_CTX_FILE,
+ CD_CTX_FILE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/gdiplus/cdwgdiplus.c b/src/gdiplus/cdwgdiplus.c
index 4997d3c..8a45239 100644
--- a/src/gdiplus/cdwgdiplus.c
+++ b/src/gdiplus/cdwgdiplus.c
@@ -25,7 +25,7 @@ void cdInitGdiPlus(void)
void cdInitContextPlus(void)
{
- cdContext* ctx_list[NUM_CONTEXTPLUS];
+ cdContext* ctx_list[CD_CTXPLUS_COUNT];
memset(ctx_list, 0, sizeof(ctx_list));
ctx_list[CD_CTXPLUS_NATIVEWINDOW] = cdContextNativeWindowPlus();
diff --git a/src/gdiplus/cdwimgp.cpp b/src/gdiplus/cdwimgp.cpp
index 9b45edb..f04f91c 100644
--- a/src/gdiplus/cdwimgp.cpp
+++ b/src/gdiplus/cdwimgp.cpp
@@ -49,8 +49,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdImageContext =
{
CD_CAP_ALL & ~(CD_CAP_FLUSH | CD_CAP_PLAY | CD_CAP_YAXIS ),
- 1,
- CD_CTX_IMAGE,
+ CD_CTX_IMAGE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/gdiplus/cdwnativep.cpp b/src/gdiplus/cdwnativep.cpp
index 4fdc19a..47979a0 100644
--- a/src/gdiplus/cdwnativep.cpp
+++ b/src/gdiplus/cdwnativep.cpp
@@ -122,8 +122,7 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdNativeContext =
{
CD_CAP_ALL & ~(CD_CAP_FLUSH | CD_CAP_PLAY | CD_CAP_YAXIS ),
- 1,
- CD_CTX_WINDOW,
+ CD_CTX_WINDOW|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/gdiplus/cdwprnp.cpp b/src/gdiplus/cdwprnp.cpp
index df62ca5..4d32249 100644
--- a/src/gdiplus/cdwprnp.cpp
+++ b/src/gdiplus/cdwprnp.cpp
@@ -141,8 +141,7 @@ static cdContext cdPrinterContext =
{
CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_PLAY | CD_CAP_YAXIS |
CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV),
- 1,
- CD_CTX_DEVICE,
+ CD_CTX_DEVICE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/gdk/cdgdkclp.c b/src/gdk/cdgdkclp.c
index e861b5e..50a6a22 100644
--- a/src/gdk/cdgdkclp.c
+++ b/src/gdk/cdgdkclp.c
@@ -121,7 +121,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdClipboardContext =
{
CD_CAP_ALL & ~(CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV | CD_CAP_FONTDIM | CD_CAP_TEXTSIZE ), /* same as CD_MF */
- 0,
CD_CTX_DEVICE,
cdcreatecanvas,
cdinittable,
diff --git a/src/gdk/cdgdkdbuf.c b/src/gdk/cdgdkdbuf.c
index 3df8ec3..ad409ed 100644
--- a/src/gdk/cdgdkdbuf.c
+++ b/src/gdk/cdgdkdbuf.c
@@ -128,7 +128,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdDBufferContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_PATH | CD_CAP_BEZIER | CD_CAP_FPRIMTIVES ),
- 0,
CD_CTX_IMAGE,
cdcreatecanvas,
cdinittable,
diff --git a/src/gdk/cdgdkimg.c b/src/gdk/cdgdkimg.c
index aab9a1b..b9532e5 100644
--- a/src/gdk/cdgdkimg.c
+++ b/src/gdk/cdgdkimg.c
@@ -31,7 +31,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdImageContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_FPRIMTIVES | CD_CAP_PATH | CD_CAP_BEZIER ),
- 0,
CD_CTX_IMAGE,
cdcreatecanvas,
cdinittable,
diff --git a/src/gdk/cdgdknative.c b/src/gdk/cdgdknative.c
index 8e66dbe..bbad84c 100644
--- a/src/gdk/cdgdknative.c
+++ b/src/gdk/cdgdknative.c
@@ -96,7 +96,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdNativeWindowContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_FPRIMTIVES | CD_CAP_PATH | CD_CAP_BEZIER ),
- 0,
CD_CTX_WINDOW,
cdcreatecanvas,
cdinittable,
diff --git a/src/lua5/cdvoid5.c b/src/lua5/cdvoid5.c
index ebc965c..67c2c99 100644
--- a/src/lua5/cdvoid5.c
+++ b/src/lua5/cdvoid5.c
@@ -117,7 +117,6 @@ static cdContext cdVoidContext =
{
0,
0,
- 0,
cdcreatecanvas,
cdinittable,
NULL,
diff --git a/src/svg/cdsvg.c b/src/svg/cdsvg.c
index 64d6be7..ca495e3 100644
--- a/src/svg/cdsvg.c
+++ b/src/svg/cdsvg.c
@@ -1342,7 +1342,6 @@ static cdContext cdSVGContext =
CD_CAP_REGION | CD_CAP_IMAGESRV | CD_CAP_WRITEMODE |
CD_CAP_FONTDIM | CD_CAP_TEXTSIZE |
CD_CAP_GETIMAGERGB),
- 0,
CD_CTX_FILE,
cdcreatecanvas,
cdinittable,
diff --git a/src/win32/cdwclp.c b/src/win32/cdwclp.c
index 3c31569..f532bf5 100644
--- a/src/win32/cdwclp.c
+++ b/src/win32/cdwclp.c
@@ -530,7 +530,6 @@ static cdContext cdClipboardContext =
CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_YAXIS |
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV |
CD_CAP_FPRIMTIVES ),
- 0,
CD_CTX_DEVICE,
cdcreatecanvas,
cdinittable,
diff --git a/src/win32/cdwdbuf.c b/src/win32/cdwdbuf.c
index 54dbf16..82ccb56 100644
--- a/src/win32/cdwdbuf.c
+++ b/src/win32/cdwdbuf.c
@@ -141,7 +141,6 @@ static cdContext cdDBufferContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS |
CD_CAP_FPRIMTIVES ),
- 0,
CD_CTX_IMAGE,
cdcreatecanvas,
cdinittable,
diff --git a/src/win32/cdwemf.c b/src/win32/cdwemf.c
index 3932c36..f9a0598 100644
--- a/src/win32/cdwemf.c
+++ b/src/win32/cdwemf.c
@@ -97,7 +97,6 @@ static cdContext cdEMFContext =
CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_YAXIS |
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV |
CD_CAP_FPRIMTIVES ),
- 0,
CD_CTX_FILE,
cdcreatecanvas,
cdinittable,
diff --git a/src/win32/cdwimg.c b/src/win32/cdwimg.c
index 294a8d7..3fe912e 100644
--- a/src/win32/cdwimg.c
+++ b/src/win32/cdwimg.c
@@ -63,7 +63,6 @@ static cdContext cdImageContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS |
CD_CAP_FPRIMTIVES ),
- 0,
CD_CTX_IMAGE,
cdcreatecanvas,
cdinittable,
diff --git a/src/win32/cdwnative.c b/src/win32/cdwnative.c
index bd9d4dd..ab5df6b 100644
--- a/src/win32/cdwnative.c
+++ b/src/win32/cdwnative.c
@@ -185,7 +185,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdNativeContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_FPRIMTIVES ),
- 0,
CD_CTX_WINDOW,
cdcreatecanvas,
cdinittable,
diff --git a/src/win32/cdwprn.c b/src/win32/cdwprn.c
index 1ffcd03..f158ac0 100644
--- a/src/win32/cdwprn.c
+++ b/src/win32/cdwprn.c
@@ -185,7 +185,6 @@ static cdContext cdPrinterContext =
CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_PLAY | CD_CAP_YAXIS |
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV |
CD_CAP_FPRIMTIVES ),
- 0,
CD_CTX_DEVICE,
cdcreatecanvas,
cdinittable,
diff --git a/src/win32/cdwwmf.c b/src/win32/cdwwmf.c
index 26d8fa9..d0e9a6c 100644
--- a/src/win32/cdwwmf.c
+++ b/src/win32/cdwwmf.c
@@ -96,8 +96,7 @@ static cdContext cdWMFContext =
CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV |
CD_CAP_LINECAP | CD_CAP_LINEJOIN |
CD_CAP_FPRIMTIVES ),
- 0,
- CD_CTX_FILE,
+ CD_CTX_FILE|CD_CTX_PLUS,
cdcreatecanvas,
cdinittable,
cdplayWMF,
diff --git a/src/x11/cdxclp.c b/src/x11/cdxclp.c
index ed3b0db..6d3e3b4 100644
--- a/src/x11/cdxclp.c
+++ b/src/x11/cdxclp.c
@@ -124,7 +124,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdClipboardContext =
{
CD_CAP_ALL & ~(CD_CAP_GETIMAGERGB | CD_CAP_IMAGESRV | CD_CAP_FONTDIM | CD_CAP_TEXTSIZE ), /* same as CD_MF */
- 0,
CD_CTX_DEVICE,
cdcreatecanvas,
cdinittable,
diff --git a/src/x11/cdxdbuf.c b/src/x11/cdxdbuf.c
index 7d29467..e57e800 100644
--- a/src/x11/cdxdbuf.c
+++ b/src/x11/cdxdbuf.c
@@ -127,7 +127,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdDBufferContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_FPRIMTIVES | CD_CAP_PATH | CD_CAP_BEZIER ),
- 0,
CD_CTX_IMAGE,
cdcreatecanvas,
cdinittable,
diff --git a/src/x11/cdximg.c b/src/x11/cdximg.c
index 12db352..0bb1b34 100644
--- a/src/x11/cdximg.c
+++ b/src/x11/cdximg.c
@@ -31,7 +31,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdImageContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_FPRIMTIVES | CD_CAP_PATH | CD_CAP_BEZIER ),
- 0,
CD_CTX_IMAGE,
cdcreatecanvas,
cdinittable,
diff --git a/src/x11/cdxnative.c b/src/x11/cdxnative.c
index ddf6670..4ab65e0 100644
--- a/src/x11/cdxnative.c
+++ b/src/x11/cdxnative.c
@@ -144,7 +144,6 @@ static void cdinittable(cdCanvas* canvas)
static cdContext cdNativeWindowContext =
{
CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_FPRIMTIVES | CD_CAP_PATH | CD_CAP_BEZIER),
- 0,
CD_CTX_WINDOW,
cdcreatecanvas,
cdinittable,
diff --git a/src/xrender/cdxrender.c b/src/xrender/cdxrender.c
index dfd4370..421dfa5 100644
--- a/src/xrender/cdxrender.c
+++ b/src/xrender/cdxrender.c
@@ -1013,11 +1013,11 @@ static void xrInitTableDBUFFER(cdCanvas* canvas)
cdContext* cdContextDBufferPlus(void)
{
- if (!cdDBufferContext.plus)
+ if (!(cdDBufferContext.type & CD_CTX_PLUS))
{
int old_plus = cdUseContextPlus(0); /* disable context plus */
cdDBufferContext = *cdContextDBuffer(); /* copy original context */
- cdDBufferContext.plus = 1; /* mark as plus */
+ cdDBufferContext.type |= CD_CTX_PLUS; /* mark as plus */
cdDBufferContext.caps |= CD_CAP_FPRIMTIVES;
/* save original methods */
@@ -1049,7 +1049,7 @@ static void xrInitTableNATIVE(cdCanvas* canvas)
cdContext* cdContextNativeWindowPlus(void)
{
- if (!cdNativeWindowContext.plus)
+ if (!(cdNativeWindowContext.type & CD_CTX_PLUS))
{
int old_plus = cdUseContextPlus(0);
cdNativeWindowContext = *cdContextNativeWindow();
@@ -1057,7 +1057,7 @@ cdContext* cdContextNativeWindowPlus(void)
cdinittableNATIVE = cdNativeWindowContext.cxInitTable;
cdNativeWindowContext.cxCreateCanvas = xrCreateCanvasNATIVE;
cdNativeWindowContext.cxInitTable = xrInitTableNATIVE;
- cdNativeWindowContext.plus = 1;
+ cdNativeWindowContext.type |= CD_CTX_PLUS;
cdNativeWindowContext.caps |= CD_CAP_FPRIMTIVES;
cdUseContextPlus(old_plus);
}
@@ -1080,7 +1080,7 @@ static void xrInitTableIMAGE(cdCanvas* canvas)
cdContext* cdContextImagePlus(void)
{
- if (!cdImageContext.plus)
+ if (!(cdImageContext.type & CD_CTX_PLUS))
{
int old_plus = cdUseContextPlus(0);
cdImageContext = *cdContextImage();
@@ -1088,7 +1088,7 @@ cdContext* cdContextImagePlus(void)
cdinittableIMAGE = cdImageContext.cxInitTable;
cdImageContext.cxCreateCanvas = xrCreateCanvasIMAGE;
cdImageContext.cxInitTable = xrInitTableIMAGE;
- cdImageContext.plus = 1;
+ cdImageContext.type |= CD_CTX_PLUS;
cdImageContext.caps |= CD_CAP_FPRIMTIVES;
cdUseContextPlus(old_plus);
}
diff --git a/src/xrender/cdxrplus.c b/src/xrender/cdxrplus.c
index 589aa3c..af3bbde 100644
--- a/src/xrender/cdxrplus.c
+++ b/src/xrender/cdxrplus.c
@@ -15,7 +15,7 @@ cdContext* cdContextDBufferPlus(void);
void cdInitContextPlus(void)
{
- cdContext* ctx_list[NUM_CONTEXTPLUS];
+ cdContext* ctx_list[CD_CTXPLUS_COUNT];
memset(ctx_list, 0, sizeof(ctx_list));
ctx_list[CD_CTXPLUS_NATIVEWINDOW] = cdContextNativeWindowPlus();