Commit | Line | Data |
---|---|---|
80a2decd WJ |
1 | /* Copyright (C) 1989 Aladdin Enterprises. All rights reserved. |
2 | Distributed by Free Software Foundation, Inc. | |
3 | ||
4 | This file is part of Ghostscript. | |
5 | ||
6 | Ghostscript is distributed in the hope that it will be useful, but | |
7 | WITHOUT ANY WARRANTY. No author or distributor accepts responsibility | |
8 | to anyone for the consequences of using it or for whether it serves any | |
9 | particular purpose or works at all, unless he says so in writing. Refer | |
10 | to the Ghostscript General Public License for full details. | |
11 | ||
12 | Everyone is granted permission to copy, modify and redistribute | |
13 | Ghostscript, but only under the conditions described in the Ghostscript | |
14 | General Public License. A copy of this license is supposed to have been | |
15 | given to you along with Ghostscript so you can know your rights and | |
16 | responsibilities. It should be in a file named COPYING. Among other | |
17 | things, the copyright notice and this notice must be preserved on all | |
18 | copies. */ | |
19 | ||
20 | /* gxbitmap.h */ | |
21 | /* Definitions for stored bitmaps for Ghostscript */ | |
22 | ||
23 | #ifndef gxbitmap_INCLUDED | |
24 | # define gxbitmap_INCLUDED | |
25 | ||
26 | /* | |
27 | * Drivers such as the X driver and the command list (band list) driver | |
28 | * benefit greatly by being able to cache bitmaps (tiles and characters) | |
29 | * and refer to them later. To support this, we define a bitmap ID type | |
30 | * which the kernel passes to the driver on each copy_ or tile_ operation. | |
31 | */ | |
32 | typedef unsigned long gx_bitmap_id; | |
33 | #define gx_no_bitmap_id 0L | |
34 | ||
35 | /* | |
36 | * Structure for describing stored bitmaps. | |
37 | * Bitmaps are stored bit-big-endian (i.e., the 2^7 bit of the first | |
38 | * byte corresponds to x=0), as a sequence of bytes (i.e., you can't | |
39 | * do word-oriented operations on them if you're on a little-endian | |
40 | * platform like the Intel 80x86 or VAX). Each scan line must start on | |
41 | * a (32-bit) word boundary, and hence must be is padded to a word boundary, | |
42 | * although this should rarely be of concern, since the raster and width | |
43 | * are specified individually. The first scan line corresponds to y=0 | |
44 | * in whatever coordinate system is relevant. | |
45 | * | |
46 | * For bitmaps used as halftone tiles, we may replicate the tile in | |
47 | * X and/or Y, but it is still valuable to know the true tile dimensions. | |
48 | */ | |
49 | typedef struct gx_bitmap_s { | |
50 | byte *data; | |
51 | int raster; /* bytes per scan line */ | |
52 | gs_int_point size; /* width, height */ | |
53 | gx_bitmap_id id; | |
54 | ushort rep_width, rep_height; /* true size of tile */ | |
55 | } gx_bitmap; | |
56 | ||
57 | #endif /* gxbitmap_INCLUDED */ |