コード例 #1
0
ファイル: gdevbbox.c プロジェクト: ststeiger/ghostsvg
static bool
bbox_forward_init_box(void *pdata)
{
    gx_device_bbox *const bdev = (gx_device_bbox *)pdata;

    return BBOX_INIT_BOX(bdev);
}
コード例 #2
0
ファイル: gdevbbox.c プロジェクト: computersforpeace/ghostpdl
static int
bbox_open_device(gx_device * dev)
{
    gx_device_bbox *bdev = (gx_device_bbox *) dev;
    int code;

    if (bdev->free_standing) {
        gx_device_forward_fill_in_procs((gx_device_forward *) dev);
        bdev->box_procs = box_procs_default;
        bdev->box_proc_data = bdev;

        code = install_internal_subclass_devices((gx_device **)&bdev, NULL);
        if (code < 0)
            return code;
    }
    if (bdev->box_procs.init_box == box_procs_default.init_box)
        BBOX_INIT_BOX(bdev);
    /* gx_forward_open_device doesn't exist */
    {
        gx_device *tdev = bdev->target;
        int code =
            (tdev && bdev->forward_open_close ? gs_opendevice(tdev) : 0);

        bbox_copy_params(bdev, true);
        return code;
    }
}
コード例 #3
0
ファイル: gdevbbox.c プロジェクト: ststeiger/ghostsvg
int bbox_fillpage(gx_device *dev, gs_imager_state * pis, gx_device_color *pdevc)
{
    /* Call the target's proc, but don't account the size. */
    gx_device_bbox *const bdev = (gx_device_bbox *) dev;
    gx_device *tdev = bdev->target;

    BBOX_INIT_BOX(bdev);
    if (tdev == NULL)
	return 0;
    return dev_proc(tdev, fillpage)(tdev, pis, pdevc);
}
コード例 #4
0
ファイル: gdevbbox.c プロジェクト: ststeiger/ghostsvg
/* from PageBoundingBox. */
static int
bbox_put_params(gx_device * dev, gs_param_list * plist)
{
    gx_device_bbox *const bdev = (gx_device_bbox *) dev;
    int code;
    int ecode = 0;
    bool white_is_opaque = bdev->white_is_opaque;
    gs_param_name param_name;
    gs_param_float_array bba;

    code = param_read_float_array(plist, (param_name = "PageBoundingBox"),
				  &bba);
    switch (code) {
	case 0:
	    if (bba.size != 4) {
		ecode = gs_note_error(gs_error_rangecheck);
		goto e;
	    }
	    break;
	default:
	    ecode = code;
	    e:param_signal_error(plist, param_name, ecode);
	case 1:
	    bba.data = 0;
    }

    switch (code = param_read_bool(plist, (param_name = "WhiteIsOpaque"), &white_is_opaque)) {
	default:
	    ecode = code;
	    param_signal_error(plist, param_name, ecode);
	case 0:
        case 1:
	    break;
    }

    code = gx_forward_put_params(dev, plist);
    if (ecode < 0)
	code = ecode;
    if (code >= 0) {
        if( bba.data != 0) {
	    BBOX_INIT_BOX(bdev);
	    BBOX_ADD_RECT(bdev, float2fixed(bba.data[0]), float2fixed(bba.data[1]),
	    	          float2fixed(bba.data[2]), float2fixed(bba.data[3]));
        }
        bdev->white_is_opaque = white_is_opaque;
    }
    bbox_copy_params(bdev, bdev->is_open);
    return code;
}