diff options
Diffstat (limited to 'source/pdf/pdf-op-filter.c')
-rw-r--r-- | source/pdf/pdf-op-filter.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/source/pdf/pdf-op-filter.c b/source/pdf/pdf-op-filter.c index ad80d3cd..a71f2fa7 100644 --- a/source/pdf/pdf-op-filter.c +++ b/source/pdf/pdf-op-filter.c @@ -389,6 +389,42 @@ pdf_filter_ri(fz_context *ctx, pdf_processor *proc, const char *intent) } static void +pdf_filter_gs_OP(fz_context *ctx, pdf_processor *proc, int b) +{ + pdf_filter_processor *p = (pdf_filter_processor*)proc; + filter_flush(ctx, p, 0); + if (p->chain->op_gs_OP) + p->chain->op_gs_OP(ctx, p->chain, b); +} + +static void +pdf_filter_gs_op(fz_context *ctx, pdf_processor *proc, int b) +{ + pdf_filter_processor *p = (pdf_filter_processor*)proc; + filter_flush(ctx, p, 0); + if (p->chain->op_gs_op) + p->chain->op_gs_op(ctx, p->chain, b); +} + +static void +pdf_filter_gs_OPM(fz_context *ctx, pdf_processor *proc, int i) +{ + pdf_filter_processor *p = (pdf_filter_processor*)proc; + filter_flush(ctx, p, 0); + if (p->chain->op_gs_OPM) + p->chain->op_gs_OPM(ctx, p->chain, i); +} + +static void +pdf_filter_gs_UseBlackPtComp(fz_context *ctx, pdf_processor *proc, pdf_obj *name) +{ + pdf_filter_processor *p = (pdf_filter_processor*)proc; + filter_flush(ctx, p, 0); + if (p->chain->op_gs_UseBlackPtComp) + p->chain->op_gs_UseBlackPtComp(ctx, p->chain, name); +} + +static void pdf_filter_i(fz_context *ctx, pdf_processor *proc, float flatness) { pdf_filter_processor *p = (pdf_filter_processor*)proc; @@ -1238,6 +1274,12 @@ pdf_new_filter_processor(fz_context *ctx, pdf_processor *chain, pdf_obj *old_rdb proc->super.op_BX = pdf_filter_BX; proc->super.op_EX = pdf_filter_EX; + /* extgstate */ + proc->super.op_gs_OP = pdf_filter_gs_OP; + proc->super.op_gs_op = pdf_filter_gs_op; + proc->super.op_gs_OPM = pdf_filter_gs_OPM; + proc->super.op_gs_UseBlackPtComp = pdf_filter_gs_UseBlackPtComp; + proc->super.op_END = pdf_filter_END; } |