Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 1999 Aladdin Enterprises.  All rights reserved.
2
 
3
  This software is provided AS-IS with no warranty, either express or
4
  implied.
5
 
6
  This software is distributed under license and may not be copied,
7
  modified or distributed except as expressly authorized under the terms
8
  of the license contained in the file LICENSE in this distribution.
9
 
10
  For more information about licensing, please refer to
11
  http://www.ghostscript.com/licensing/. For information on
12
  commercial licensing, go to http://www.artifex.com/licensing/ or
13
  contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
  San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
*/
16
 
17
/* $Id: gdevmrun.h,v 1.5 2002/06/16 07:25:26 lpd Exp $ */
18
/* Definition of run-length encoded memory device */
19
 
20
#ifndef gdevmrun_INCLUDED
21
#  define gdevmrun_INCLUDED
22
 
23
/*
24
 * This memory device stores full-size pixels with run-length
25
 * encoding if possible, switching to the standard uncompressed
26
 * representation if necessary.
27
 */
28
 
29
#include "gxdevmem.h"
30
 
31
/*
32
 * Define the device, built on a memory device.
33
 */
34
typedef struct gx_device_run_s {
35
    gx_device_memory md;	/* must be first */
36
    uint runs_per_line;
37
    int umin, umax1;		/* some range of uninitialized lines */
38
    int smin, smax1;		/* some range in standard (not run) form */
39
    /*
40
     * Save memory device procedures that we replace with run-oriented
41
     * ones, for use with the uncompressed representation.
42
     */
43
    struct sp_ {
44
	dev_proc_copy_mono((*copy_mono));
45
	dev_proc_copy_color((*copy_color));
46
	dev_proc_fill_rectangle((*fill_rectangle));
47
	dev_proc_copy_alpha((*copy_alpha));
48
	dev_proc_strip_tile_rectangle((*strip_tile_rectangle));
49
	dev_proc_strip_copy_rop((*strip_copy_rop));
50
	dev_proc_get_bits_rectangle((*get_bits_rectangle));
51
    } save_procs;
52
} gx_device_run;
53
 
54
/*
55
 * Convert a memory device to run-length form.  The mdev argument should be
56
 * const, but it isn't because we need to call gx_device_white.
57
 */
58
int gdev_run_from_mem(gx_device_run *rdev, gx_device_memory *mdev);
59
 
60
#endif /* gdevmrun_INCLUDED */