summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drv/cdcgm.c2
-rw-r--r--src/drv/cddxf.c1
-rw-r--r--src/drv/cdpdf.c2
-rw-r--r--src/drv/cdps.c2
-rw-r--r--src/svg/cdsvg.c16
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,