xref: /haiku/headers/os/interface/GraphicsDefs.h (revision f6e4cbb95290a74b33d012600438b84742b0e572)
152a38012Sejakowatz //------------------------------------------------------------------------------
252a38012Sejakowatz //	Copyright (c) 2001-2002, OpenBeOS
352a38012Sejakowatz //
452a38012Sejakowatz //	Permission is hereby granted, free of charge, to any person obtaining a
552a38012Sejakowatz //	copy of this software and associated documentation files (the "Software"),
652a38012Sejakowatz //	to deal in the Software without restriction, including without limitation
752a38012Sejakowatz //	the rights to use, copy, modify, merge, publish, distribute, sublicense,
852a38012Sejakowatz //	and/or sell copies of the Software, and to permit persons to whom the
952a38012Sejakowatz //	Software is furnished to do so, subject to the following conditions:
1052a38012Sejakowatz //
1152a38012Sejakowatz //	The above copyright notice and this permission notice shall be included in
1252a38012Sejakowatz //	all copies or substantial portions of the Software.
1352a38012Sejakowatz //
1452a38012Sejakowatz //	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1552a38012Sejakowatz //	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1652a38012Sejakowatz //	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1752a38012Sejakowatz //	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1852a38012Sejakowatz //	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1952a38012Sejakowatz //	FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2052a38012Sejakowatz //	DEALINGS IN THE SOFTWARE.
2152a38012Sejakowatz //
2252a38012Sejakowatz //	File Name:		GraphicsDefs.h
2352a38012Sejakowatz //	Author:			Frans van Nispen
2452a38012Sejakowatz //	Description:	BMessageFilter class creates objects that filter
2552a38012Sejakowatz //					in-coming BMessages.
2652a38012Sejakowatz //------------------------------------------------------------------------------
2752a38012Sejakowatz 
2852a38012Sejakowatz #ifndef _GRAPHICS_DEFS_H
2952a38012Sejakowatz #define _GRAPHICS_DEFS_H
3052a38012Sejakowatz 
3152a38012Sejakowatz // Standard Includes -----------------------------------------------------------
3252a38012Sejakowatz 
3352a38012Sejakowatz // System Includes -------------------------------------------------------------
3452a38012Sejakowatz #include <BeBuild.h>
3552a38012Sejakowatz #include <SupportDefs.h>
3652a38012Sejakowatz 
3752a38012Sejakowatz // Project Includes ------------------------------------------------------------
3852a38012Sejakowatz 
3952a38012Sejakowatz // Local Includes --------------------------------------------------------------
4052a38012Sejakowatz 
4152a38012Sejakowatz // Local Defines ---------------------------------------------------------------
4252a38012Sejakowatz 
4352a38012Sejakowatz // Globals ---------------------------------------------------------------------
4452a38012Sejakowatz 
4552a38012Sejakowatz 
4652a38012Sejakowatz //------------------------------------------------------------------------------
4752a38012Sejakowatz 
4852a38012Sejakowatz typedef struct pattern {
4952a38012Sejakowatz 		uint8		data[8];
5052a38012Sejakowatz } pattern;
5152a38012Sejakowatz 
5209852109SStephan Aßmus #ifdef __cplusplus
5309852109SStephan Aßmus 
5409852109SStephan Aßmus inline bool
5509852109SStephan Aßmus operator==(const pattern& a, const pattern& b)
5609852109SStephan Aßmus {
5709852109SStephan Aßmus 	return (*(uint64*)a.data == *(uint64*)b.data);
5809852109SStephan Aßmus }
5909852109SStephan Aßmus 
60758b1d0eSIngo Weinhold inline bool
61758b1d0eSIngo Weinhold operator!=(const pattern& a, const pattern& b)
62758b1d0eSIngo Weinhold {
63758b1d0eSIngo Weinhold 	return !(a == b);
64758b1d0eSIngo Weinhold }
65758b1d0eSIngo Weinhold 
6609852109SStephan Aßmus #endif // __cplusplus
6709852109SStephan Aßmus 
68*f6e4cbb9SAxel Dörfler extern const pattern B_SOLID_HIGH;
69*f6e4cbb9SAxel Dörfler extern const pattern B_MIXED_COLORS;
70*f6e4cbb9SAxel Dörfler extern const pattern B_SOLID_LOW;
7152a38012Sejakowatz 
7252a38012Sejakowatz //------------------------------------------------------------------------------
7352a38012Sejakowatz 
7452a38012Sejakowatz typedef struct rgb_color {
7552a38012Sejakowatz 	uint8		red;
7652a38012Sejakowatz 	uint8		green;
7752a38012Sejakowatz 	uint8		blue;
7852a38012Sejakowatz 	uint8		alpha;
799551dd1cSAxel Dörfler 
809551dd1cSAxel Dörfler #if defined(__cplusplus)
819551dd1cSAxel Dörfler 	// some convenient additions
829551dd1cSAxel Dörfler 
83cd0ea6ffSAxel Dörfler 	inline rgb_color&
84cd0ea6ffSAxel Dörfler 	set_to(uint8 r, uint8 g, uint8 b, uint8 a = 255)
85cd0ea6ffSAxel Dörfler 	{
86cd0ea6ffSAxel Dörfler 		red = r;
87cd0ea6ffSAxel Dörfler 		green = g;
88cd0ea6ffSAxel Dörfler 		blue = b;
89cd0ea6ffSAxel Dörfler 		alpha = a;
90cd0ea6ffSAxel Dörfler 		return *this;
91cd0ea6ffSAxel Dörfler 	}
92cd0ea6ffSAxel Dörfler 
939551dd1cSAxel Dörfler 	inline bool
949551dd1cSAxel Dörfler 	operator==(const rgb_color& other) const
959551dd1cSAxel Dörfler 	{
969551dd1cSAxel Dörfler 		return *(const uint32 *)this == *(const uint32 *)&other;
979551dd1cSAxel Dörfler 	}
989551dd1cSAxel Dörfler 
999551dd1cSAxel Dörfler 	inline bool
1009551dd1cSAxel Dörfler 	operator!=(const rgb_color& other) const
1019551dd1cSAxel Dörfler 	{
1029551dd1cSAxel Dörfler 		return *(const uint32 *)this != *(const uint32 *)&other;
1039551dd1cSAxel Dörfler 	}
1049551dd1cSAxel Dörfler #endif
10552a38012Sejakowatz } rgb_color;
10652a38012Sejakowatz 
107cd0ea6ffSAxel Dörfler #if defined(__cplusplus)
108cd0ea6ffSAxel Dörfler inline rgb_color
109cd0ea6ffSAxel Dörfler make_color(uint8 red, uint8 green, uint8 blue, uint8 alpha = 255)
110cd0ea6ffSAxel Dörfler {
111cd0ea6ffSAxel Dörfler 	rgb_color color = {red, green, blue, alpha};
112cd0ea6ffSAxel Dörfler 	return color;
113cd0ea6ffSAxel Dörfler }
114cd0ea6ffSAxel Dörfler #endif
115cd0ea6ffSAxel Dörfler 
11652a38012Sejakowatz //------------------------------------------------------------------------------
11752a38012Sejakowatz 
118*f6e4cbb9SAxel Dörfler extern const rgb_color 	B_TRANSPARENT_COLOR;
119*f6e4cbb9SAxel Dörfler extern const uint8		B_TRANSPARENT_MAGIC_CMAP8;
120*f6e4cbb9SAxel Dörfler extern const uint16		B_TRANSPARENT_MAGIC_RGBA15;
121*f6e4cbb9SAxel Dörfler extern const uint16		B_TRANSPARENT_MAGIC_RGBA15_BIG;
122*f6e4cbb9SAxel Dörfler extern const uint32		B_TRANSPARENT_MAGIC_RGBA32;
123*f6e4cbb9SAxel Dörfler extern const uint32		B_TRANSPARENT_MAGIC_RGBA32_BIG;
12452a38012Sejakowatz 
125*f6e4cbb9SAxel Dörfler extern const uint8 		B_TRANSPARENT_8_BIT;
126*f6e4cbb9SAxel Dörfler extern const rgb_color	B_TRANSPARENT_32_BIT;
12752a38012Sejakowatz 
12852a38012Sejakowatz //------------------------------------------------------------------------------
12952a38012Sejakowatz 
13052a38012Sejakowatz typedef struct color_map {
13152a38012Sejakowatz 	int32				id;
13252a38012Sejakowatz 	rgb_color			color_list[256];
13352a38012Sejakowatz 	uint8				inversion_map[256];
13452a38012Sejakowatz 	uint8				index_map[32768];
13552a38012Sejakowatz } color_map;
13652a38012Sejakowatz 
13752a38012Sejakowatz typedef struct overlay_rect_limits {
13852a38012Sejakowatz 	uint16				horizontal_alignment;
13952a38012Sejakowatz 	uint16				vertical_alignment;
14052a38012Sejakowatz 	uint16				width_alignment;
14152a38012Sejakowatz 	uint16				height_alignment;
14252a38012Sejakowatz 	uint16				min_width;
14352a38012Sejakowatz 	uint16				max_width;
14452a38012Sejakowatz 	uint16				min_height;
14552a38012Sejakowatz 	uint16				max_height;
14652a38012Sejakowatz 	uint32				reserved[8];
14752a38012Sejakowatz } overlay_rect_limits;
14852a38012Sejakowatz 
14952a38012Sejakowatz typedef struct overlay_restrictions {
15052a38012Sejakowatz 	overlay_rect_limits	source;
15152a38012Sejakowatz 	overlay_rect_limits	destination;
15252a38012Sejakowatz 	float				min_width_scale;
15352a38012Sejakowatz 	float				max_width_scale;
15452a38012Sejakowatz 	float				min_height_scale;
15552a38012Sejakowatz 	float				max_height_scale;
15652a38012Sejakowatz 	uint32				reserved[8];
15752a38012Sejakowatz } overlay_restrictions;
15852a38012Sejakowatz 
15952a38012Sejakowatz //------------------------------------------------------------------------------
16052a38012Sejakowatz 
16152a38012Sejakowatz struct screen_id { int32 id; };
16252a38012Sejakowatz 
163*f6e4cbb9SAxel Dörfler extern const struct screen_id B_MAIN_SCREEN_ID;
16452a38012Sejakowatz 
16552a38012Sejakowatz //------------------------------------------------------------------------------
16652a38012Sejakowatz 
16752a38012Sejakowatz typedef enum
16852a38012Sejakowatz {
16952a38012Sejakowatz 	B_NO_COLOR_SPACE =	0x0000,	//* byte in memory order, high bit first
17052a38012Sejakowatz 
17152a38012Sejakowatz 	// linear color space (little endian is the default)
17252a38012Sejakowatz 	B_RGB32 = 			0x0008,	//* B[7:0]  G[7:0]  R[7:0]  -[7:0]
17352a38012Sejakowatz 	B_RGBA32 = 			0x2008,	// B[7:0]  G[7:0]  R[7:0]  A[7:0]
17452a38012Sejakowatz 	B_RGB24 = 			0x0003,	// B[7:0]  G[7:0]  R[7:0]
17552a38012Sejakowatz 	B_RGB16 = 			0x0005,	// G[2:0],B[4:0]  R[4:0],G[5:3]
17652a38012Sejakowatz 	B_RGB15 = 			0x0010,	// G[2:0],B[4:0]  	   -[0],R[4:0],G[4:3]
17752a38012Sejakowatz 	B_RGBA15 = 			0x2010,	// G[2:0],B[4:0]  	   A[0],R[4:0],G[4:3]
17852a38012Sejakowatz 	B_CMAP8 = 			0x0004,	// D[7:0]
17952a38012Sejakowatz 	B_GRAY8 = 			0x0002,	// Y[7:0]
18052a38012Sejakowatz 	B_GRAY1 = 			0x0001,	// Y0[0],Y1[0],Y2[0],Y3[0],Y4[0],Y5[0],Y6[0],Y7[0]
18152a38012Sejakowatz 
18252a38012Sejakowatz 	// big endian version, when the encoding is not endianess independant
18352a38012Sejakowatz 	B_RGB32_BIG =		0x1008,	// -[7:0]  R[7:0]  G[7:0]  B[7:0]
18452a38012Sejakowatz 	B_RGBA32_BIG = 		0x3008,	// A[7:0]  R[7:0]  G[7:0]  B[7:0]
18552a38012Sejakowatz 	B_RGB24_BIG = 		0x1003,	// R[7:0]  G[7:0]  B[7:0]
18652a38012Sejakowatz 	B_RGB16_BIG = 		0x1005,	// R[4:0],G[5:3]  G[2:0],B[4:0]
18752a38012Sejakowatz 	B_RGB15_BIG = 		0x1010,	// -[0],R[4:0],G[4:3]  G[2:0],B[4:0]
18852a38012Sejakowatz 	B_RGBA15_BIG = 		0x3010,	// A[0],R[4:0],G[4:3]  G[2:0],B[4:0]
18952a38012Sejakowatz 
19052a38012Sejakowatz 	// little-endian declarations, for completness
19152a38012Sejakowatz 	B_RGB32_LITTLE = 	B_RGB32,
19252a38012Sejakowatz 	B_RGBA32_LITTLE =	B_RGBA32,
19352a38012Sejakowatz 	B_RGB24_LITTLE =	B_RGB24,
19452a38012Sejakowatz 	B_RGB16_LITTLE =	B_RGB16,
19552a38012Sejakowatz 	B_RGB15_LITTLE =	B_RGB15,
19652a38012Sejakowatz 	B_RGBA15_LITTLE =	B_RGBA15,
19752a38012Sejakowatz 
19852a38012Sejakowatz 	// non linear color space -- note that these are here for exchange purposes;
19952a38012Sejakowatz 	// a BBitmap or BView may not necessarily support all these color spaces.
20052a38012Sejakowatz 
20152a38012Sejakowatz 	// Loss/Saturation points are Y 16-235 (absoulte); Cb/Cr 16-240 (center 128)
20252a38012Sejakowatz 
20352a38012Sejakowatz 	B_YCbCr422 = 		0x4000,	// Y0[7:0]  Cb0[7:0]  Y1[7:0]  Cr0[7:0]  Y2[7:0]...
20452a38012Sejakowatz 								// Cb2[7:0]  Y3[7:0]  Cr2[7:0]
20552a38012Sejakowatz 	B_YCbCr411 = 		0x4001,	// Cb0[7:0]  Y0[7:0]  Cr0[7:0]  Y1[7:0]  Cb4[7:0]...
20652a38012Sejakowatz 								// Y2[7:0]  Cr4[7:0]  Y3[7:0]  Y4[7:0]  Y5[7:0]...
20752a38012Sejakowatz 								// Y6[7:0]  Y7[7:0]
20852a38012Sejakowatz 	B_YCbCr444 = 		0x4003,	// Y0[7:0]  Cb0[7:0]  Cr0[7:0]
20952a38012Sejakowatz 	B_YCbCr420 = 		0x4004,	// Non-interlaced only, Cb0  Y0  Y1  Cb2 Y2  Y3
21052a38012Sejakowatz 								// on even scan lines,  Cr0  Y0  Y1  Cr2 Y2  Y3
21152a38012Sejakowatz 								// on odd scan lines
21252a38012Sejakowatz 
21352a38012Sejakowatz 	// Extrema points are
21452a38012Sejakowatz 	//		Y 0 - 207 (absolute)
21552a38012Sejakowatz 	//		U -91 - 91 (offset 128)
21652a38012Sejakowatz 	//		V -127 - 127 (offset 128)
21752a38012Sejakowatz 	// note that YUV byte order is different from YCbCr
21852a38012Sejakowatz 	// USE YCbCr, not YUV, when that's what you mean!
21952a38012Sejakowatz 	B_YUV422 =			0x4020, // U0[7:0]  Y0[7:0]   V0[7:0]  Y1[7:0] ...
22052a38012Sejakowatz 								// U2[7:0]  Y2[7:0]   V2[7:0]  Y3[7:0]
22152a38012Sejakowatz 	B_YUV411 =			0x4021, // U0[7:0]  Y0[7:0]  Y1[7:0]  V0[7:0]  Y2[7:0]  Y3[7:0]
22252a38012Sejakowatz 								// U4[7:0]  Y4[7:0]  Y5[7:0]  V4[7:0]  Y6[7:0]  Y7[7:0]
22352a38012Sejakowatz 	B_YUV444 =			0x4023,	// U0[7:0]  Y0[7:0]  V0[7:0]  U1[7:0]  Y1[7:0]  V1[7:0]
22452a38012Sejakowatz 	B_YUV420 = 			0x4024,	// Non-interlaced only, U0  Y0  Y1  U2 Y2  Y3
22552a38012Sejakowatz 								// on even scan lines,  V0  Y0  Y1  V2 Y2  Y3
22652a38012Sejakowatz 								// on odd scan lines
22752a38012Sejakowatz 	B_YUV9 = 			0x402C,	// planar?	410?
22852a38012Sejakowatz 	B_YUV12 = 			0x402D,	// planar?	420?
22952a38012Sejakowatz 
23052a38012Sejakowatz 	B_UVL24 =			0x4030,	// U0[7:0] V0[7:0] L0[7:0] ...
23152a38012Sejakowatz 	B_UVL32 =			0x4031,	// U0[7:0] V0[7:0] L0[7:0] X0[7:0]...
23252a38012Sejakowatz 	B_UVLA32 =			0x6031,	// U0[7:0] V0[7:0] L0[7:0] A0[7:0]...
23352a38012Sejakowatz 
23452a38012Sejakowatz 	B_LAB24 =			0x4032,	// L0[7:0] a0[7:0] b0[7:0] ...  (a is not alpha!)
23552a38012Sejakowatz 	B_LAB32 =			0x4033,	// L0[7:0] a0[7:0] b0[7:0] X0[7:0] ... (b is not alpha!)
23652a38012Sejakowatz 	B_LABA32 =			0x6033,	// L0[7:0] a0[7:0] b0[7:0] A0[7:0] ... (A is alpha)
23752a38012Sejakowatz 
23852a38012Sejakowatz 	// red is at hue = 0
23952a38012Sejakowatz 
24052a38012Sejakowatz 	B_HSI24 =			0x4040,	// H[7:0]  S[7:0]  I[7:0]
24152a38012Sejakowatz 	B_HSI32 =			0x4041,	// H[7:0]  S[7:0]  I[7:0]  X[7:0]
24252a38012Sejakowatz 	B_HSIA32 =			0x6041,	// H[7:0]  S[7:0]  I[7:0]  A[7:0]
24352a38012Sejakowatz 
24452a38012Sejakowatz 	B_HSV24 =			0x4042,	// H[7:0]  S[7:0]  V[7:0]
24552a38012Sejakowatz 	B_HSV32 =			0x4043,	// H[7:0]  S[7:0]  V[7:0]  X[7:0]
24652a38012Sejakowatz 	B_HSVA32 =			0x6043,	// H[7:0]  S[7:0]  V[7:0]  A[7:0]
24752a38012Sejakowatz 
24852a38012Sejakowatz 	B_HLS24 =			0x4044,	// H[7:0]  L[7:0]  S[7:0]
24952a38012Sejakowatz 	B_HLS32 =			0x4045,	// H[7:0]  L[7:0]  S[7:0]  X[7:0]
25052a38012Sejakowatz 	B_HLSA32 =			0x6045,	// H[7:0]  L[7:0]  S[7:0]  A[7:0]
25152a38012Sejakowatz 
25252a38012Sejakowatz 	B_CMY24 =			0xC001,	// C[7:0]  M[7:0]  Y[7:0]  			No gray removal done
25352a38012Sejakowatz 	B_CMY32 =			0xC002,	// C[7:0]  M[7:0]  Y[7:0]  X[7:0]	No gray removal done
25452a38012Sejakowatz 	B_CMYA32 =			0xE002,	// C[7:0]  M[7:0]  Y[7:0]  A[7:0]	No gray removal done
25552a38012Sejakowatz 	B_CMYK32 =			0xC003,	// C[7:0]  M[7:0]  Y[7:0]  K[7:0]
25652a38012Sejakowatz 
25752a38012Sejakowatz 	// compatibility declarations
25852a38012Sejakowatz 	B_MONOCHROME_1_BIT = 	B_GRAY1,
25952a38012Sejakowatz 	B_GRAYSCALE_8_BIT =		B_GRAY8,
26052a38012Sejakowatz 	B_COLOR_8_BIT =			B_CMAP8,
26152a38012Sejakowatz 	B_RGB_32_BIT =			B_RGB32,
26252a38012Sejakowatz 	B_RGB_16_BIT =			B_RGB15,
26352a38012Sejakowatz 	B_BIG_RGB_32_BIT =		B_RGB32_BIG,
26452a38012Sejakowatz 	B_BIG_RGB_16_BIT =		B_RGB15_BIG
26552a38012Sejakowatz } color_space;
26652a38012Sejakowatz 
26752a38012Sejakowatz 
26852a38012Sejakowatz // Find out whether a specific color space is supported by BBitmaps.
26952a38012Sejakowatz // Support_flags will be set to what kinds of support are available.
27052a38012Sejakowatz // If support_flags is set to 0, false will be returned.
27152a38012Sejakowatz enum {
27252a38012Sejakowatz 	B_VIEWS_SUPPORT_DRAW_BITMAP = 0x1,
27352a38012Sejakowatz 	B_BITMAPS_SUPPORT_ATTACHED_VIEWS = 0x2
27452a38012Sejakowatz };
275*f6e4cbb9SAxel Dörfler bool bitmaps_support_space(color_space space, uint32 * support_flags);
27652a38012Sejakowatz 
27752a38012Sejakowatz //------------------------------------------------------------------------------
27852a38012Sejakowatz // "pixel_chunk" is the native increment from one pixel starting on an integral byte
27952a38012Sejakowatz // to the next. "row_alignment" is the native alignment for pixel scanline starts.
28052a38012Sejakowatz // "pixels_per_chunk" is the number of pixels in a pixel_chunk. For instance, B_GRAY1
28152a38012Sejakowatz // sets pixel_chunk to 1, row_alignment to 4 and pixels_per_chunk to 8, whereas
28252a38012Sejakowatz // B_RGB24 sets pixel_chunk to 3, row_alignment to 4 and pixels_per_chunk to 1.
28352a38012Sejakowatz //------------------------------------------------------------------------------
284*f6e4cbb9SAxel Dörfler status_t get_pixel_size_for(color_space space, size_t * pixel_chunk,
28552a38012Sejakowatz 	size_t * row_alignment, size_t * pixels_per_chunk);
28652a38012Sejakowatz 
28752a38012Sejakowatz 
28852a38012Sejakowatz enum buffer_orientation {
28952a38012Sejakowatz 	B_BUFFER_TOP_TO_BOTTOM,
29052a38012Sejakowatz 	B_BUFFER_BOTTOM_TO_TOP
29152a38012Sejakowatz };
29252a38012Sejakowatz 
29352a38012Sejakowatz enum buffer_layout {
29452a38012Sejakowatz 	B_BUFFER_NONINTERLEAVED = 1
29552a38012Sejakowatz };
29652a38012Sejakowatz 
29752a38012Sejakowatz //------------------------------------------------------------------------------
29852a38012Sejakowatz 
29952a38012Sejakowatz enum drawing_mode {
30052a38012Sejakowatz 	B_OP_COPY,
30152a38012Sejakowatz 	B_OP_OVER,
30252a38012Sejakowatz 	B_OP_ERASE,
30352a38012Sejakowatz 	B_OP_INVERT,
30452a38012Sejakowatz 	B_OP_ADD,
30552a38012Sejakowatz 	B_OP_SUBTRACT,
30652a38012Sejakowatz 	B_OP_BLEND,
30752a38012Sejakowatz 	B_OP_MIN,
30852a38012Sejakowatz 	B_OP_MAX,
30952a38012Sejakowatz 	B_OP_SELECT,
31052a38012Sejakowatz 	B_OP_ALPHA
31152a38012Sejakowatz };
31252a38012Sejakowatz 
31352a38012Sejakowatz enum source_alpha {
31452a38012Sejakowatz 	B_PIXEL_ALPHA=0,
31552a38012Sejakowatz 	B_CONSTANT_ALPHA
31652a38012Sejakowatz };
31752a38012Sejakowatz 
31852a38012Sejakowatz enum alpha_function {
31952a38012Sejakowatz 	B_ALPHA_OVERLAY=0,
32052a38012Sejakowatz 	B_ALPHA_COMPOSITE
32152a38012Sejakowatz };
32252a38012Sejakowatz 
32352a38012Sejakowatz enum {
32452a38012Sejakowatz 	B_8_BIT_640x480    = 0x00000001,
32552a38012Sejakowatz 	B_8_BIT_800x600    = 0x00000002,
32652a38012Sejakowatz 	B_8_BIT_1024x768   = 0x00000004,
32752a38012Sejakowatz 	B_8_BIT_1280x1024  = 0x00000008,
32852a38012Sejakowatz 	B_8_BIT_1600x1200  = 0x00000010,
32952a38012Sejakowatz 	B_16_BIT_640x480   = 0x00000020,
33052a38012Sejakowatz 	B_16_BIT_800x600   = 0x00000040,
33152a38012Sejakowatz 	B_16_BIT_1024x768  = 0x00000080,
33252a38012Sejakowatz 	B_16_BIT_1280x1024 = 0x00000100,
33352a38012Sejakowatz 	B_16_BIT_1600x1200 = 0x00000200,
33452a38012Sejakowatz 	B_32_BIT_640x480   = 0x00000400,
33552a38012Sejakowatz 	B_32_BIT_800x600   = 0x00000800,
33652a38012Sejakowatz 	B_32_BIT_1024x768  = 0x00001000,
33752a38012Sejakowatz 	B_32_BIT_1280x1024 = 0x00002000,
33852a38012Sejakowatz 	B_32_BIT_1600x1200 = 0x00004000,
33952a38012Sejakowatz     B_8_BIT_1152x900   = 0x00008000,
34052a38012Sejakowatz     B_16_BIT_1152x900  = 0x00010000,
34152a38012Sejakowatz     B_32_BIT_1152x900  = 0x00020000,
34252a38012Sejakowatz 	B_15_BIT_640x480   = 0x00040000,
34352a38012Sejakowatz 	B_15_BIT_800x600   = 0x00080000,
34452a38012Sejakowatz 	B_15_BIT_1024x768  = 0x00100000,
34552a38012Sejakowatz 	B_15_BIT_1280x1024 = 0x00200000,
34652a38012Sejakowatz 	B_15_BIT_1600x1200 = 0x00400000,
34752a38012Sejakowatz     B_15_BIT_1152x900  = 0x00800000,
34852a38012Sejakowatz 
34952a38012Sejakowatz 	// do not use B_FAKE_DEVICE--it will go away!
35052a38012Sejakowatz 	B_FAKE_DEVICE	   = 0x40000000,
35152a38012Sejakowatz 	B_8_BIT_640x400	   = (int)0x80000000
35252a38012Sejakowatz };
35352a38012Sejakowatz 
35452a38012Sejakowatz #endif	// _GRAPHICSDEFS_H
35552a38012Sejakowatz 
35652a38012Sejakowatz /*
35752a38012Sejakowatz  * $Log $
35852a38012Sejakowatz  *
35952a38012Sejakowatz  * $Id  $
36052a38012Sejakowatz  *
36152a38012Sejakowatz  */
36252a38012Sejakowatz 
363