Annotation of ntddk/src/video/displays/framebuf/pattern.c, revision 1.1.1.1

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, 4, 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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.