ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/meta/rast.h
Revision: 1.1
Committed: Sat Feb 22 02:07:26 2003 UTC (21 years, 2 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad3R5
Log Message:
Changes and check-in for 3.5 release
Includes new source files and modifications not recorded for many years
See ray/doc/notes/ReleaseNotes for notes between 3.1 and 3.5 release

File Contents

# User Rev Content
1 greg 1.1 /* RCSid: $Id$ */
2     /*
3     * Structures for line segment output to raster files
4     */
5    
6     #define NUMSCANS 16 /* number of scanlines per block */
7    
8     typedef struct { /* raster scanline block */
9     unsigned char *cols[NUMSCANS];
10     int ybot, ytop; /* ybot is scan[0] */
11     int xleft, xright;
12     int width;
13     } SCANBLOCK;
14    
15     extern int ydown; /* y going down? */
16    
17     extern int minwidth; /* minimum line width */
18    
19     extern SCANBLOCK outblock; /* output span */
20    
21     #define IBLK 0 /* index for black */
22     #define IRED 1
23     #define IGRN 2
24     #define IBLU 3
25     #define IYEL 4
26     #define IMAG 5
27     #define ICYN 6
28     #define IWHT 7
29    
30     #define pixtog(x,y,c) { register unsigned char \
31     *cp = outblock.cols[(y)-outblock.ybot]+(x); \
32     *cp = ((~*cp ^ (c)<<3)&070) | (*cp&07); }
33    
34     #define pixmix(x,y,c) (outblock.cols[(y)-outblock.ybot][x] &= 070|(c))
35    
36     #define someabove(p,y) (CONV((p)->xy[YMX],dysize) > (y))
37     #define somebelow(p,y) (CONV((p)->xy[YMN],dysize) < (y))
38    
39     #define inthis(p) (ydown ? someabove(p,outblock.ybot-1) : \
40     somebelow(p,outblock.ytop+1))
41     #define innext(p) (ydown ? somebelow(p,outblock.ybot) : \
42     someabove(p,outblock.ytop))