1bdcaa8d0Smrg#ifndef __CMD2D_H__
2bdcaa8d0Smrg#define __CMD2D_H__
3bdcaa8d0Smrg
4bdcaa8d0Smrg/*
5bdcaa8d0Smrg * commands the 2d microcode offers
6bdcaa8d0Smrg */
7bdcaa8d0Smrg
8bdcaa8d0Smrg#define CMD_SETUP					32
9bdcaa8d0Smrg#define CMD_SET_PIX_REG				2
10bdcaa8d0Smrg#define CMD_RECT_SOLID				1
11bdcaa8d0Smrg#define CMD_RECT_SOLID_ROP			41
12bdcaa8d0Smrg#define CMD_SET_FGCOLOR				50
13bdcaa8d0Smrg#define CMD_DD_RECT_SOLID			38
14bdcaa8d0Smrg#define CMD_SCREEN_BLT				12
15bdcaa8d0Smrg#define CMD_DD_SCREEN_BLT			37
16bdcaa8d0Smrg#define CMD_BITBLT_MS_COLOR			7
17bdcaa8d0Smrg#define CMD_BITBLT_MS_MONO			22
18bdcaa8d0Smrg#define CMD_LOAD_COLOR_BRUSH		5
19bdcaa8d0Smrg#define CMD_RECT_COLOR_BRUSH		6
20bdcaa8d0Smrg#define CMD_RECT_COLOR_BRUSH_ROP	24
21bdcaa8d0Smrg#define CMD_LOAD_MONO_BRUSH			4
22bdcaa8d0Smrg#define CMD_RECT_MONO_BRUSH			3
23bdcaa8d0Smrg#define CMD_RECT_MONO_BRUSH_ROP		42
24bdcaa8d0Smrg#define CMD_SET_PIXEL				34
25bdcaa8d0Smrg#define CMD_GET_PIXEL				9
26bdcaa8d0Smrg#define CMD_LINE_SOLID				20
27bdcaa8d0Smrg#define CMD_LINE_STYLE				21
28bdcaa8d0Smrg#define CMD_SCAN_LINE_SOLID			15
29bdcaa8d0Smrg#define CMD_BSCAN_SOLID				19
30bdcaa8d0Smrg#define CMD_BSCAN_COLOR				14
31bdcaa8d0Smrg#define CMD_BSCAN_MONO				13
32bdcaa8d0Smrg#define CMD_ENDSCAN					18
33bdcaa8d0Smrg#define CMD_SCANLINE_COLOR_BRUSH	17
34bdcaa8d0Smrg#define CMD_SCANLINE_MONO_BRUSH		16
35bdcaa8d0Smrg#define CMD_STRETCH_BLT				23
36bdcaa8d0Smrg#define CMD_DD_STRETCH_BLT			39
37bdcaa8d0Smrg#define CMD_LOAD_COLOR_TABLE		25
38bdcaa8d0Smrg#define CMD_BLTDIB1					26
39bdcaa8d0Smrg#define CMD_BLTDIB4					27
40bdcaa8d0Smrg#define CMD_BLTDIB8					28
41bdcaa8d0Smrg#define CMD_BLTRLE4					30
42bdcaa8d0Smrg#define CMD_BLTRLE8					31
43bdcaa8d0Smrg#define CMD_SET_PALETTE				33
44bdcaa8d0Smrg#define CMD_SETCLIPPING				36
45bdcaa8d0Smrg#define CMD_DRAWGLYPHS				35
46bdcaa8d0Smrg#define CMD_DD_YUV2RGB				43
47bdcaa8d0Smrg#define CMD_DD_YUV2RGBCk			44
48bdcaa8d0Smrg
49bdcaa8d0Smrg
50bdcaa8d0Smrg
51bdcaa8d0Smrg/*
52bdcaa8d0Smrg * pixel formats (R: red, G: green, B: blue, I: intensity/index, A: alpha)
53bdcaa8d0Smrg *
54bdcaa8d0Smrg * <ml>: this is redundant; one should use the enums in vtypes.h.
55bdcaa8d0Smrg */
56bdcaa8d0Smrg
57bdcaa8d0Smrg#define FMT_SOURCE					0
58bdcaa8d0Smrg#define FMT_8_332_RGB				1
59bdcaa8d0Smrg#define FMT_8_I						2
60bdcaa8d0Smrg#define FMT_8_A						3
61bdcaa8d0Smrg#define FMT_16_565_RGB				4
62bdcaa8d0Smrg#define FMT_16_4444_ARGB			5
63bdcaa8d0Smrg#define FMT_16_1555_ARGB			6
64bdcaa8d0Smrg#define FMT_4I_565_RGB				8
65bdcaa8d0Smrg#define FMT_4I_444_ARGB				9
66bdcaa8d0Smrg#define FMT_4I_1555_ARGB			0xa
67bdcaa8d0Smrg#define FMT_32_8888_ARGB			0xc
68bdcaa8d0Smrg#define FMT_32_888_Y0CrY1Cb			0xd
69bdcaa8d0Smrg
70bdcaa8d0Smrg
71bdcaa8d0Smrg
72bdcaa8d0Smrg/*
73bdcaa8d0Smrg * stride values for address calculation
74bdcaa8d0Smrg */
75bdcaa8d0Smrg
76bdcaa8d0Smrg#define STRIDE0_0					0
77bdcaa8d0Smrg#define STRIDE0_8					1
78bdcaa8d0Smrg#define STRIDE0_9					2
79bdcaa8d0Smrg#define STRIDE0_10					3
80bdcaa8d0Smrg#define STRIDE0_2					4
81bdcaa8d0Smrg#define STRIDE1_0					0
82bdcaa8d0Smrg#define STRIDE1_4					1
83bdcaa8d0Smrg#define STRIDE1_5					2
84bdcaa8d0Smrg#define STRIDE1_6					3
85bdcaa8d0Smrg#define STRIDE1_7					4
86bdcaa8d0Smrg#define STRIDE1_10					5
87bdcaa8d0Smrg#define STRIDE1_11					6
88bdcaa8d0Smrg#define STRIDE1_12					7
89bdcaa8d0Smrg
90bdcaa8d0Smrg
91bdcaa8d0Smrg
92bdcaa8d0Smrg/*
93bdcaa8d0Smrg * raster operations (S: source, D: destination, N: not)
94bdcaa8d0Smrg */
95bdcaa8d0Smrg
96bdcaa8d0Smrg#define ROP_ALLBITS0				0
97bdcaa8d0Smrg#define ROP_NOR_SD					1
98bdcaa8d0Smrg#define ROP_AND_NSD					2
99bdcaa8d0Smrg#define ROP_NOT_S					3
100bdcaa8d0Smrg#define ROP_AND_SND					4
101bdcaa8d0Smrg#define ROP_NOT_D					5
102bdcaa8d0Smrg#define ROP_XOR_SD					6
103bdcaa8d0Smrg#define ROP_NAND_SD					7
104bdcaa8d0Smrg#define ROP_AND_SD					8
105bdcaa8d0Smrg#define ROP_XNOR_SD					9
106bdcaa8d0Smrg#define ROP_D						0xa
107bdcaa8d0Smrg#define ROP_OR_NSD					0xb
108bdcaa8d0Smrg#define ROP_S						0xc
109bdcaa8d0Smrg#define ROP_OR_SND					0xd
110bdcaa8d0Smrg#define ROP_OR_SD					0xe
111bdcaa8d0Smrg#define ROP_ALLBITS1				0xf
112bdcaa8d0Smrg
113bdcaa8d0Smrg
114bdcaa8d0Smrg
115bdcaa8d0Smrg/*
116bdcaa8d0Smrg * ... modes
117bdcaa8d0Smrg */
118bdcaa8d0Smrg
119bdcaa8d0Smrg#define MODE_TRANSPARENT			0
120bdcaa8d0Smrg#define MODE_OPAQUE					1
121bdcaa8d0Smrg
122bdcaa8d0Smrg
123bdcaa8d0Smrg
124bdcaa8d0Smrg/*
125bdcaa8d0Smrg * 8x8 predefined monochrome brushes
126bdcaa8d0Smrg */
127bdcaa8d0Smrg
128bdcaa8d0Smrg#define HS_HORIZONTAL				0
129bdcaa8d0Smrg#define HS_VERTICAL					1
130bdcaa8d0Smrg#define HS_FDIAGONAL				2
131bdcaa8d0Smrg#define HS_BDIAGONAL				3
132bdcaa8d0Smrg#define HS_CROSS					4
133bdcaa8d0Smrg#define HS_DIAGCROSS				5
134bdcaa8d0Smrg
135bdcaa8d0Smrg
136bdcaa8d0Smrg
137bdcaa8d0Smrg/*
138bdcaa8d0Smrg * pen styles for styled lined
139bdcaa8d0Smrg */
140bdcaa8d0Smrg
141bdcaa8d0Smrg#define PS_DASH						1
142bdcaa8d0Smrg#define PS_DOT						2
143bdcaa8d0Smrg#define PS_DASHDOT					3
144bdcaa8d0Smrg#define PS_DASHDOTDOT				4
145bdcaa8d0Smrg
146bdcaa8d0Smrg/* end of __CMD2D_H__ */
147bdcaa8d0Smrg#endif
148