|
|
1.1 root 1: /******************************Module*Header*******************************\
2: * Module Name: pattern.c
3: *
4: * Used for creating and destroying the default patterns to be used on this
5: * device.
6: *
7: * Copyright (c) 1992 Microsoft Corporation
8: \**************************************************************************/
9:
10: #include "driver.h"
11:
12: /******************************Public*Data*Struct*************************\
13: * gaajPat
14: *
15: * These are the standard patterns defined Windows, they are used to produce
16: * hatch brushes, grey brushes etc.
17: *
18: \**************************************************************************/
19:
20: const BYTE gaajPat[HS_DDI_MAX][32] = {
21:
22: { 0x00,0x00,0x00,0x00, // ........ HS_HORIZONTAL 0
23: 0x00,0x00,0x00,0x00, // ........
24: 0x00,0x00,0x00,0x00, // ........
25: 0xff,0x00,0x00,0x00, // ********
26: 0x00,0x00,0x00,0x00, // ........
27: 0x00,0x00,0x00,0x00, // ........
28: 0x00,0x00,0x00,0x00, // ........
29: 0x00,0x00,0x00,0x00 }, // ........
30:
31: { 0x08,0x00,0x00,0x00, // ....*... HS_VERTICAL 1
32: 0x08,0x00,0x00,0x00, // ....*...
33: 0x08,0x00,0x00,0x00, // ....*...
34: 0x08,0x00,0x00,0x00, // ....*...
35: 0x08,0x00,0x00,0x00, // ....*...
36: 0x08,0x00,0x00,0x00, // ....*...
37: 0x08,0x00,0x00,0x00, // ....*...
38: 0x08,0x00,0x00,0x00 }, // ....*...
39:
40: { 0x80,0x00,0x00,0x00, // *....... HS_FDIAGONAL 2
41: 0x40,0x00,0x00,0x00, // .*......
42: 0x20,0x00,0x00,0x00, // ..*.....
43: 0x10,0x00,0x00,0x00, // ...*....
44: 0x08,0x00,0x00,0x00, // ....*...
45: 0x04,0x00,0x00,0x00, // .....*..
46: 0x02,0x00,0x00,0x00, // ......*.
47: 0x01,0x00,0x00,0x00 }, // .......*
48:
49: { 0x01,0x00,0x00,0x00, // .......* HS_BDIAGONAL 3
50: 0x02,0x00,0x00,0x00, // ......*.
51: 0x04,0x00,0x00,0x00, // .....*..
52: 0x08,0x00,0x00,0x00, // ....*...
53: 0x10,0x00,0x00,0x00, // ...*....
54: 0x20,0x00,0x00,0x00, // ..*.....
55: 0x40,0x00,0x00,0x00, // .*......
56: 0x80,0x00,0x00,0x00 }, // *.......
57:
58: { 0x08,0x00,0x00,0x00, // ....*... HS_CROSS 4
59: 0x08,0x00,0x00,0x00, // ....*...
60: 0x08,0x00,0x00,0x00, // ....*...
61: 0xff,0x00,0x00,0x00, // ********
62: 0x08,0x00,0x00,0x00, // ....*...
63: 0x08,0x00,0x00,0x00, // ....*...
64: 0x08,0x00,0x00,0x00, // ....*...
65: 0x08,0x00,0x00,0x00 }, // ....*...
66:
67: { 0x81,0x00,0x00,0x00, // *......* HS_DIAGCROSS 5
68: 0x42,0x00,0x00,0x00, // .*....*.
69: 0x24,0x00,0x00,0x00, // ..*..*..
70: 0x18,0x00,0x00,0x00, // ...**...
71: 0x18,0x00,0x00,0x00, // ...**...
72: 0x24,0x00,0x00,0x00, // ..*..*..
73: 0x42,0x00,0x00,0x00, // .*....*.
74: 0x81,0x00,0x00,0x00 }, // *......*
75:
76: { 0x81,0x00,0x00,0x00, // *......* HS_FDIAGONAL1 6
77: 0x60,0x00,0x00,0x00, // .**.....
78: 0x18,0x00,0x00,0x00, // ...**...
79: 0x06,0x00,0x00,0x00, // .....**.
80: 0x81,0x00,0x00,0x00, // *......*
81: 0x60,0x00,0x00,0x00, // .**.....
82: 0x18,0x00,0x00,0x00, // ...**...
83: 0x06,0x00,0x00,0x00 }, // .....**.
84:
85: { 0x81,0x00,0x00,0x00, // *......* HS_BDIAGONAL1 7
86: 0x06,0x00,0x00,0x00, // .....**.
87: 0x18,0x00,0x00,0x00, // ...**...
88: 0x60,0x00,0x00,0x00, // .**.....
89: 0x81,0x00,0x00,0x00, // *......*
90: 0x06,0x00,0x00,0x00, // .....**.
91: 0x18,0x00,0x00,0x00, // ...**...
92: 0x60,0x00,0x00,0x00 }, // .**.....
93:
94: { 0xFF,0x00,0x00,0x00, // ******** HS_SOLID 8
95: 0xFF,0x00,0x00,0x00, // ********
96: 0xFF,0x00,0x00,0x00, // ********
97: 0xFF,0x00,0x00,0x00, // ********
98: 0xFF,0x00,0x00,0x00, // ********
99: 0xFF,0x00,0x00,0x00, // ********
100: 0xFF,0x00,0x00,0x00, // ********
101: 0xFF,0x00,0x00,0x00 }, // ********
102:
103: { 0x38,0x00,0x00,0x00, // ..***... HS_DENSE1 9
104: 0x7c,0x00,0x00,0x00, // .*****..
105: 0x7c,0x00,0x00,0x00, // .*****..
106: 0x38,0x00,0x00,0x00, // ..***...
107: 0x83,0x00,0x00,0x00, // *.....**
108: 0xc7,0x00,0x00,0x00, // **...***
109: 0xc7,0x00,0x00,0x00, // **...***
110: 0x83,0x00,0x00,0x00 }, // *.....**
111:
112: { 0x38,0x00,0x00,0x00, // ..***... HS_DENSE2 10
113: 0x6c,0x00,0x00,0x00, // .**.**..
114: 0x54,0x00,0x00,0x00, // .*.*.*..
115: 0x38,0x00,0x00,0x00, // ..***...
116: 0x83,0x00,0x00,0x00, // *.....**
117: 0xc6,0x00,0x00,0x00, // **...**.
118: 0x45,0x00,0x00,0x00, // .*...*.*
119: 0x83,0x00,0x00,0x00 }, // *.....**
120:
121: { 0x18,0x00,0x00,0x00, // ...**... HS_DENSE3 11
122: 0x3c,0x00,0x00,0x00, // ..****..
123: 0x34,0x00,0x00,0x00, // ..**.*..
124: 0x18,0x00,0x00,0x00, // ...**...
125: 0x81,0x00,0x00,0x00, // *......*
126: 0xc3,0x00,0x00,0x00, // **....**
127: 0x43,0x00,0x00,0x00, // .*....**
128: 0x81,0x00,0x00,0x00 }, // *......*
129:
130: { 0x18,0x00,0x00,0x00, // ...**... HS_DENSE4 12
131: 0x2c,0x00,0x00,0x00, // ..*.**..
132: 0x24,0x00,0x00,0x00, // ..*..*..
133: 0x18,0x00,0x00,0x00, // ...**...
134: 0x81,0x00,0x00,0x00, // *......*
135: 0xc1,0x00,0x00,0x00, // **....*.
136: 0x42,0x00,0x00,0x00, // .*....*.
137: 0x81,0x00,0x00,0x00 }, // *......*
138:
139: { 0x10,0x00,0x00,0x00, // ...*.... HS_DENSE5 13
140: 0x38,0x00,0x00,0x00, // ..***...
141: 0x28,0x00,0x00,0x00, // ..*.*...
142: 0x10,0x00,0x00,0x00, // ...*....
143: 0x01,0x00,0x00,0x00, // .......*
144: 0x83,0x00,0x00,0x00, // *.....**
145: 0x82,0x00,0x00,0x00, // *.....*.
146: 0x01,0x00,0x00,0x00 }, // .......*
147:
148: { 0x00,0x00,0x00,0x00, // ........ HS_DENSE6 14
149: 0x10,0x00,0x00,0x00, // ...*....
150: 0x38,0x00,0x00,0x00, // ..***...
151: 0x10,0x00,0x00,0x00, // ...*....
152: 0x00,0x00,0x00,0x00, // ........
153: 0x01,0x00,0x00,0x00, // .......*
154: 0x83,0x00,0x00,0x00, // *.....**
155: 0x01,0x00,0x00,0x00 }, // .......*
156:
157: { 0x00,0x00,0x00,0x00, // ........ HS_DENSE7 15
158: 0x10,0x00,0x00,0x00, // ...*....
159: 0x30,0x00,0x00,0x00, // ..**....
160: 0x00,0x00,0x00,0x00, // ........
161: 0x00,0x00,0x00,0x00, // ........
162: 0x01,0x00,0x00,0x00, // .......*
163: 0x03,0x00,0x00,0x00, // ......**
164: 0x00,0x00,0x00,0x00 }, // ........
165:
166: { 0x00,0x00,0x00,0x00, // ........ HS_DENSE8 16
167: 0x00,0x00,0x00,0x00, // ........
168: 0x20,0x00,0x00,0x00, // ..*.....
169: 0x00,0x00,0x00,0x00, // ........
170: 0x00,0x00,0x00,0x00, // ........
171: 0x00,0x00,0x00,0x00, // ........
172: 0x02,0x00,0x00,0x00, // ......*.
173: 0x00,0x00,0x00,0x00 }, // ........
174:
175: { 0x00,0x00,0x00,0x00, // ........ HS_NOSHADE 17
176: 0x00,0x00,0x00,0x00, // ........
177: 0x00,0x00,0x00,0x00, // ........
178: 0x00,0x00,0x00,0x00, // ........
179: 0x00,0x00,0x00,0x00, // ........
180: 0x00,0x00,0x00,0x00, // ........
181: 0x00,0x00,0x00,0x00, // ........
182: 0x00,0x00,0x00,0x00 }, // ........
183:
184: { 0xAA,0x00,0x00,0x00, // *.*.*.*. HS_HALFTONE 18
185: 0x55,0x00,0x00,0x00, // .*.*.*.*
186: 0xAA,0x00,0x00,0x00, // *.*.*.*.
187: 0x55,0x00,0x00,0x00, // .*.*.*.*
188: 0xAA,0x00,0x00,0x00, // *.*.*.*.
189: 0x55,0x00,0x00,0x00, // .*.*.*.*
190: 0xAA,0x00,0x00,0x00, // *.*.*.*.
191: 0x55,0x00,0x00,0x00 } // .*.*.*.*
192: };
193:
194: /******************************Public*Routine******************************\
195: * bInitPatterns
196: *
197: * This routine initializes the default patterns.
198: *
199: \**************************************************************************/
200:
201: BOOL bInitPatterns(
202: IN PPDEV ppdev,
203: INT cPatterns)
204: {
205: SIZEL sizl;
206: INT iLoop;
207:
208: sizl.cx = 8;
209: sizl.cy = 8;
210:
211: for (iLoop = 0; iLoop < cPatterns; iLoop++)
212: {
213: ppdev->ahbmPat[iLoop] = EngCreateBitmap(sizl,
214: sizl.cx / 8,
215: BMF_1BPP,
216: BMF_TOPDOWN,
217: (PULONG) (&gaajPat[iLoop][0]));
218:
219: if (ppdev->ahbmPat[iLoop] == (HBITMAP) 0)
220: {
221: // Set the count created so vDisablePatterns will clean up.
222:
223: ppdev->cPatterns = iLoop;
224: return(FALSE);
225: }
226: }
227:
228: ppdev->cPatterns = cPatterns;
229: return(TRUE);
230: }
231:
232: /******************************Public*Routine******************************\
233: * vDisablePatterns
234: *
235: * Delete the standard patterns allocated.
236: *
237: \**************************************************************************/
238:
239: VOID vDisablePatterns(IN PPDEV ppdev)
240: {
241: ULONG ulIndex;
242:
243: // Erase all patterns.
244:
245: for (ulIndex = 0; ulIndex < ppdev->cPatterns; ulIndex++)
246: {
247: EngDeleteSurface((HSURF) ppdev->ahbmPat[ulIndex]);
248: }
249: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.