diff options
-rw-r--r-- | mak.vc9/cd.sln | 6 | ||||
-rw-r--r-- | src/xrender/cdxrender.c | 18 | ||||
-rw-r--r-- | test/simple/config.mak | 19 |
3 files changed, 30 insertions, 13 deletions
diff --git a/mak.vc9/cd.sln b/mak.vc9/cd.sln index 20e7f2e..f006382 100644 --- a/mak.vc9/cd.sln +++ b/mak.vc9/cd.sln @@ -122,6 +122,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cdtestcairo", "cdtestcairo. {8441F69D-7135-43B2-974F-45C6123C8467} = {8441F69D-7135-43B2-974F-45C6123C8467} EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ContextPlus", "ContextPlus", "{89C76F13-4572-4A6D-9F6B-9ED4D0809B64}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -178,7 +180,6 @@ Global {01818D2C-AAAA-4D5C-ABCD-1234401C6461} = {1EE89DAC-3D3A-450C-9CF8-E200DF5E12E8} {01818D2C-1234-4D5C-ABCD-4DFF401C6461} = {1EE89DAC-3D3A-450C-9CF8-E200DF5E12E8} {01818D2C-65AF-4D5C-9452-4DFF401C6461} = {1EE89DAC-3D3A-450C-9CF8-E200DF5E12E8} - {01818D2C-AAAA-DD23-00AA-5678401C6461} = {1EE89DAC-3D3A-450C-9CF8-E200DF5E12E8} {B4823266-DF8C-AAAA-9999-C7E78C234EAC} = {E92DB6FF-5501-4FC0-81D2-00DB8EFA2434} {53FC9752-81C1-4AA6-B366-AF6D0A2B81F6} = {E92DB6FF-5501-4FC0-81D2-00DB8EFA2434} {B4823266-DF8C-1224-EE00-C7688C234EAC} = {EFB1BE3C-2981-456B-8E32-928CBDFF7822} @@ -191,6 +192,9 @@ Global {A7E49FB8-0000-45EC-1234-ABCDC7E83C00} = {162715BD-4DB3-4007-8B50-725C0BD11878} {A7E49FB8-5467-45EC-2211-FFAB7E83C100} = {162715BD-4DB3-4007-8B50-725C0BD11878} {A7E49FB8-0022-15EC-AB17-FFCDC7E83C00} = {162715BD-4DB3-4007-8B50-725C0BD11878} + {01818D2C-AAAA-DD23-00AA-5678401C6461} = {89C76F13-4572-4A6D-9F6B-9ED4D0809B64} + {160DEDA5-C1AA-48C7-8B07-490C6A8DE2EE} = {89C76F13-4572-4A6D-9F6B-9ED4D0809B64} + {51A96255-7EAB-4F36-A6E5-1BAF6245FA18} = {89C76F13-4572-4A6D-9F6B-9ED4D0809B64} EndGlobalSection GlobalSection(DevPartner Solution Properties) = postSolution EndGlobalSection diff --git a/src/xrender/cdxrender.c b/src/xrender/cdxrender.c index 2682a6d..5f7e868 100644 --- a/src/xrender/cdxrender.c +++ b/src/xrender/cdxrender.c @@ -920,11 +920,11 @@ static void cdkillcanvas(cdCtxCanvas *ctxcanvas) if (ctxcanvas->ctxplus->font) XftFontClose(ctxcanvas->dpy, ctxcanvas->ctxplus->font); - XftDrawDestroy(ctxcanvas->ctxplus->draw); - free(ctxcanvas->ctxplus); - /* call original method */ ctxcanvas->ctxplus->cxKillCanvas(ctxcanvas); + + XftDrawDestroy(ctxcanvas->ctxplus->draw); + free(ctxcanvas->ctxplus); } static void xrInitTable(cdCanvas* canvas) @@ -1014,13 +1014,13 @@ static void xrCreateCanvasDBUFFER(cdCanvas* canvas, void *data) { cdcreatecanvasDBUFFER(canvas, data); /* call original first */ xrCreateContextPlus(canvas->ctxcanvas); - canvas->ctxcanvas->ctxplus->cxKillCanvas = cdkillcanvasDBUFFER; /* must set it here since CreateContext clears the structure */ } static void xrInitTableDBUFFER(cdCanvas* canvas) { - if (!cdkillcanvasDBUFFER) cdkillcanvasDBUFFER = canvas->cxKillCanvas; /* save original method */ cdinittableDBUFFER(canvas); + if (!cdkillcanvasDBUFFER) cdkillcanvasDBUFFER = canvas->cxKillCanvas; + canvas->ctxcanvas->ctxplus->cxKillCanvas = cdkillcanvasDBUFFER; xrInitTable(canvas); } @@ -1050,13 +1050,13 @@ static void xrCreateCanvasNATIVE(cdCanvas* canvas, void *data) { cdcreatecanvasNATIVE(canvas, data); xrCreateContextPlus(canvas->ctxcanvas); - canvas->ctxcanvas->ctxplus->cxKillCanvas = cdkillcanvasNATIVE; } static void xrInitTableNATIVE(cdCanvas* canvas) { - if (!cdkillcanvasNATIVE) cdkillcanvasNATIVE = canvas->cxKillCanvas; cdinittableNATIVE(canvas); + if (!cdkillcanvasNATIVE) cdkillcanvasNATIVE = canvas->cxKillCanvas; + canvas->ctxcanvas->ctxplus->cxKillCanvas = cdkillcanvasNATIVE; xrInitTable(canvas); } @@ -1081,13 +1081,13 @@ static void xrCreateCanvasIMAGE(cdCanvas* canvas, void *data) { cdcreatecanvasIMAGE(canvas, data); xrCreateContextPlus(canvas->ctxcanvas); - canvas->ctxcanvas->ctxplus->cxKillCanvas = cdkillcanvasIMAGE; } static void xrInitTableIMAGE(cdCanvas* canvas) { - if (!cdkillcanvasIMAGE) cdkillcanvasIMAGE = canvas->cxKillCanvas; cdinittableIMAGE(canvas); + if (!cdkillcanvasIMAGE) cdkillcanvasIMAGE = canvas->cxKillCanvas; + canvas->ctxcanvas->ctxplus->cxKillCanvas = cdkillcanvasIMAGE; xrInitTable(canvas); } diff --git a/test/simple/config.mak b/test/simple/config.mak index 2777b7d..bf10d3b 100644 --- a/test/simple/config.mak +++ b/test/simple/config.mak @@ -30,8 +30,21 @@ USE_STATIC = Yes #USE_IM = Yes ifneq ($(findstring Win, $(TEC_SYSNAME)), ) - LIBS = cdpdf pdflib cdcontextplus gdiplus + LIBS = cdpdf pdflib + ifndef USE_GDK + LIBS += cdcontextplus gdiplus + endif else - SLIB = $(CD)/lib/$(TEC_UNAME)/libcdpdf.a $(CD)/lib/$(TEC_UNAME)/libpdflib.a $(CD)/lib/$(TEC_UNAME)/libcdcontextplus.a - LIBS = Xrender Xft + ifdef DBG_DIR + CDLIB = $(CD)/lib/$(TEC_UNAME)d + else + CDLIB = $(CD)/lib/$(TEC_UNAME) + endif + + SLIB = $(CDLIB)/libcdpdf.a $(CDLIB)/libpdflib.a + ifndef USE_GDK + SLIB += $(CDLIB)/libcdcontextplus.a + LIBS = Xrender Xft + else + endif endif |