Annotation of ntddk/src/video/displays/s3/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(
                    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: }

unix.superglobalmegacorp.com

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