|
|
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(IN PPDEV ppdev, ULONG cPatterns) ! 202: { ! 203: SIZEL sizl; ! 204: ULONG ulLoop; ! 205: ! 206: sizl.cx = 8; ! 207: sizl.cy = 8; ! 208: ! 209: for (ulLoop = 0; ulLoop < cPatterns; ulLoop++) ! 210: { ! 211: ppdev->ahbmPat[ulLoop] = EngCreateBitmap(sizl, sizl.cx / 8, BMF_1BPP, ! 212: BMF_TOPDOWN, (PULONG) (&gaajPat[ulLoop][0])); ! 213: ! 214: if (ppdev->ahbmPat[ulLoop] == (HBITMAP) 0) ! 215: { ! 216: // Set the count created so vDisablePatterns will clean up. ! 217: ! 218: ppdev->cPatterns = ulLoop; ! 219: return(FALSE); ! 220: } ! 221: } ! 222: ! 223: ppdev->cPatterns = cPatterns; ! 224: return(TRUE); ! 225: } ! 226: ! 227: /******************************Public*Routine******************************\ ! 228: * vDisablePatterns ! 229: * ! 230: * Delete the standard patterns allocated. ! 231: * ! 232: \**************************************************************************/ ! 233: ! 234: VOID vDisablePatterns(IN PPDEV ppdev) ! 235: { ! 236: ULONG ulIndex; ! 237: ! 238: // Erase all patterns. ! 239: ! 240: for (ulIndex = 0; ulIndex < ppdev->cPatterns; ulIndex++) ! 241: { ! 242: EngDeleteSurface((HSURF) ppdev->ahbmPat[ulIndex]); ! 243: } ! 244: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.