this->config_use_fontconfig=1;
this->config_break_on_warning=0;
this->config_remapunicode=0;
+ this->config_transparent=0;
this->do_interpretType3Chars = gTrue;
this->parameters = p;
this->config_use_fontconfig = atoi(value);
} else if(!strcmp(key,"remapunicode")) {
this->config_remapunicode = atoi(value);
- } else {
- msg("<warning> Ignored parameter: %s=%s", key, value);
+ } else if(!strcmp(key,"transparent")) {
+ this->config_transparent = atoi(value);
}
}
if(dashnum && ldash) {
float * dash = (float*)malloc(sizeof(float)*(dashnum+1));
int t;
- double cut = 0;
- int fixzero = 0;
msg("<trace> %d dashes", dashnum);
msg("<trace> | phase: %f", dashphase);
for(t=0;t<dashnum;t++) {
if(flags&STROKE_FILL) {
ArtSVP* svp = gfxstrokeToSVP(line, width, capType, joinType, miterLimit);
gfxline_t*gfxline = SVPtogfxline(svp);
+ if(getLogLevel() >= LOGLEVEL_TRACE) {
+ dump_outline(gfxline);
+ }
+ if(!gfxline) {
+ msg("<warning> Empty polygon (resulting from stroked line)");
+ }
if(flags&STROKE_CLIP) {
device->startclip(device, gfxline);
states[statepos].clipping++;
{
GfxPath * path = state->getPath();
gfxline_t*line= gfxPath_to_gfxline(state, path, 0, user_movex + clipmovex, user_movey + clipmovey);
+
+ if(getLogLevel() >= LOGLEVEL_TRACE) {
+ msg("<trace> cliptostrokepath\n");
+ dump_outline(line);
+ }
+
strokeGfxline(state, line, STROKE_FILL|STROKE_CLIP);
gfxline_free(line);
}
clippath[3].type = gfx_lineTo;clippath[3].x = x1; clippath[3].y = y2; clippath[3].next = &clippath[4];
clippath[4].type = gfx_lineTo;clippath[4].x = x1; clippath[4].y = y1; clippath[4].next = 0;
device->startclip(device, clippath); outer_clip_box = 1;
- device->fill(device, clippath, &white);
+ if(!config_transparent)
+ device->fill(device, clippath, &white);
}