/* Install a fully constructed screen in the gstate. */ int gs_screen_install(gs_screen_enum * penum) { gx_device_halftone dev_ht; int code; dev_ht.rc.memory = penum->halftone.rc.memory; dev_ht.order = penum->order; dev_ht.components = 0; if ((code = gx_ht_install(penum->pgs, &penum->halftone, &dev_ht)) < 0) gx_device_halftone_release(&dev_ht, dev_ht.rc.memory); return code; }
/* Install the halftone after sampling. */ static int sethalftone_finish(i_ctx_t *i_ctx_p) { gx_device_halftone *pdht = r_ptr(esp, gx_device_halftone); int code; if (pdht->components) pdht->order = pdht->components[0].corder; code = gx_ht_install(igs, r_ptr(esp - 1, gs_halftone), pdht); if (code < 0) return code; istate->halftone = esp[-2]; esp -= 4; sethalftone_cleanup(i_ctx_p); return o_pop_estack; }
/* Install the color screen after sampling. */ static int setcolorscreen_finish(i_ctx_t *i_ctx_p) { gx_device_halftone *pdht = r_ptr(esp, gx_device_halftone); int code; pdht->order = pdht->components[0].corder; code = gx_ht_install(igs, r_ptr(esp - 1, gs_halftone), pdht); if (code < 0) return code; memcpy(&istate->screen_procs.red, esp - 5, sizeof(ref) * 4); make_null(&istate->halftone); esp -= 7; setcolorscreen_cleanup(i_ctx_p); return o_pop_estack; }
/* Install the color screen after sampling. */ static int setcolorscreen_finish(i_ctx_t *i_ctx_p) { gx_device_halftone *pdht = r_ptr(esp, gx_device_halftone); int code; pdht->order = pdht->components[0].corder; code = gx_ht_install(igs, r_ptr(esp - 1, gs_halftone), pdht); if (code < 0) return code; istate->screen_procs.red = esp[-5]; istate->screen_procs.green = esp[-4]; istate->screen_procs.blue = esp[-3]; istate->screen_procs.gray = esp[-2]; make_null(&istate->halftone); esp -= 7; setcolorscreen_cleanup(i_ctx_p); return o_pop_estack; }