diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/drv/cdcgm.c | 2 | ||||
-rw-r--r-- | src/drv/cddxf.c | 1 | ||||
-rw-r--r-- | src/drv/cdpdf.c | 2 | ||||
-rw-r--r-- | src/drv/cdps.c | 2 | ||||
-rw-r--r-- | src/svg/cdsvg.c | 16 |
5 files changed, 20 insertions, 3 deletions
diff --git a/src/drv/cdcgm.c b/src/drv/cdcgm.c index 3049818..ab47c1e 100644 --- a/src/drv/cdcgm.c +++ b/src/drv/cdcgm.c @@ -183,6 +183,8 @@ static void cddeactivate(cdCtxCanvas *ctxcanvas) static void cdflush(cdCtxCanvas *ctxcanvas) { long pt; + + fflush(ctxcanvas->cgm->file); pt = ftell ( ctxcanvas->cgm->file ); fseek ( ctxcanvas->cgm->file, ctxcanvas->point, SEEK_SET ); diff --git a/src/drv/cddxf.c b/src/drv/cddxf.c index b4dc875..db05978 100644 --- a/src/drv/cddxf.c +++ b/src/drv/cddxf.c @@ -314,6 +314,7 @@ static void cdkillcanvas(cdCtxCanvas *ctxcanvas) static void cdflush (cdCtxCanvas *ctxcanvas) { + fflush (ctxcanvas->file); /* flush file */ ctxcanvas->layer++; } diff --git a/src/drv/cdpdf.c b/src/drv/cdpdf.c index ffad84b..8faa824 100644 --- a/src/drv/cdpdf.c +++ b/src/drv/cdpdf.c @@ -1543,7 +1543,7 @@ 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_BACKGROUND | CD_CAP_BACKOPACITY | CD_CAP_WRITEMODE | - CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB), + CD_CAP_GETIMAGERGB), 0, cdcreatecanvas, cdinittable, diff --git a/src/drv/cdps.c b/src/drv/cdps.c index d5d62fe..ef77c4d 100644 --- a/src/drv/cdps.c +++ b/src/drv/cdps.c @@ -466,6 +466,8 @@ static void cdflush(cdCtxCanvas *ctxcanvas) { if (ctxcanvas->debug) fprintf(ctxcanvas->file, "\n%%cdFlush Begin\n"); + fflush(ctxcanvas->file); + if (!ctxcanvas->eps) { fprintf(ctxcanvas->file, "gsave\n"); diff --git a/src/svg/cdsvg.c b/src/svg/cdsvg.c index d44e40a..184031c 100644 --- a/src/svg/cdsvg.c +++ b/src/svg/cdsvg.c @@ -882,6 +882,16 @@ static void cdpixel(cdCtxCanvas *ctxcanvas, int x, int y, long int color) x, y, r, g, b, r, g, b, ctxcanvas->linewidth, ctxcanvas->linecap, ctxcanvas->linejoin, ctxcanvas->linestyle, ctxcanvas->backopacity); } +static void cddeactivate (cdCtxCanvas* ctxcanvas) +{ + fflush(ctxcanvas->file); +} + +static void cdflush (cdCtxCanvas* ctxcanvas) +{ + fflush(ctxcanvas->file); +} + static void cdcreatecanvas(cdCanvas *canvas, void *data) { char filename[10240] = ""; @@ -984,15 +994,17 @@ static void cdinittable(cdCanvas* canvas) canvas->cxTransform = cdtransform; + canvas->cxFlush = cdflush; + canvas->cxDeactivate = cddeactivate; canvas->cxKillCanvas = (void (*)(cdCtxCanvas*))cdkillcanvas; } static cdContext cdSVGContext = { - CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_FLUSH | CD_CAP_PLAY | CD_CAP_PALETTE | + CD_CAP_ALL & ~(CD_CAP_CLEAR | CD_CAP_PLAY | CD_CAP_PALETTE | CD_CAP_REGION | CD_CAP_IMAGESRV | CD_CAP_WRITEMODE | CD_CAP_FONTDIM | CD_CAP_TEXTSIZE | - CD_CAP_IMAGERGBA | CD_CAP_GETIMAGERGB), + CD_CAP_GETIMAGERGB), 0, cdcreatecanvas, cdinittable, |