Annotation of ntddk/src/video/displays/vga256/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 ULONG gaaulPat[HS_DDI_MAX][8] = {
                     21: 
                     22: // Scans have to be DWORD aligned:
                     23: 
                     24:     { 0x00,                // ........     HS_HORIZONTAL 0
                     25:       0x00,                // ........
                     26:       0x00,                // ........
                     27:       0xff,                // ********
                     28:       0x00,                // ........
                     29:       0x00,                // ........
                     30:       0x00,                // ........
                     31:       0x00 },              // ........
                     32: 
                     33:     { 0x08,                // ....*...     HS_VERTICAL 1
                     34:       0x08,                // ....*...
                     35:       0x08,                // ....*...
                     36:       0x08,                // ....*...
                     37:       0x08,                // ....*...
                     38:       0x08,                // ....*...
                     39:       0x08,                // ....*...
                     40:       0x08 },              // ....*...
                     41: 
                     42:     { 0x80,                // *.......     HS_FDIAGONAL 2
                     43:       0x40,                // .*......
                     44:       0x20,                // ..*.....
                     45:       0x10,                // ...*....
                     46:       0x08,                // ....*...
                     47:       0x04,                // .....*..
                     48:       0x02,                // ......*.
                     49:       0x01 },              // .......*
                     50: 
                     51:     { 0x01,                // .......*     HS_BDIAGONAL 3
                     52:       0x02,                // ......*.
                     53:       0x04,                // .....*..
                     54:       0x08,                // ....*...
                     55:       0x10,                // ...*....
                     56:       0x20,                // ..*.....
                     57:       0x40,                // .*......
                     58:       0x80 },              // *.......
                     59: 
                     60:     { 0x08,                // ....*...     HS_CROSS 4
                     61:       0x08,                // ....*...
                     62:       0x08,                // ....*...
                     63:       0xff,                // ********
                     64:       0x08,                // ....*...
                     65:       0x08,                // ....*...
                     66:       0x08,                // ....*...
                     67:       0x08 },              // ....*...
                     68: 
                     69:     { 0x81,                // *......*     HS_DIAGCROSS 5
                     70:       0x42,                // .*....*.
                     71:       0x24,                // ..*..*..
                     72:       0x18,                // ...**...
                     73:       0x18,                // ...**...
                     74:       0x24,                // ..*..*..
                     75:       0x42,                // .*....*.
                     76:       0x81 },              // *......*
                     77: 
                     78:     { 0x81,                // *......*     HS_FDIAGONAL1 6
                     79:       0x60,                // .**.....
                     80:       0x18,                // ...**...
                     81:       0x06,                // .....**.
                     82:       0x81,                // *......*
                     83:       0x60,                // .**.....
                     84:       0x18,                // ...**...
                     85:       0x06 },              // .....**.
                     86: 
                     87:     { 0x81,                // *......*     HS_BDIAGONAL1 7
                     88:       0x06,                // .....**.
                     89:       0x18,                // ...**...
                     90:       0x60,                // .**.....
                     91:       0x81,                // *......*
                     92:       0x06,                // .....**.
                     93:       0x18,                // ...**...
                     94:       0x60 },              // .**.....
                     95: 
                     96:     { 0xFF,                // ********     HS_SOLID 8
                     97:       0xFF,                // ********
                     98:       0xFF,                // ********
                     99:       0xFF,                // ********
                    100:       0xFF,                // ********
                    101:       0xFF,                // ********
                    102:       0xFF,                // ********
                    103:       0xFF },              // ********
                    104: 
                    105:     { 0x38,                // ..***...     HS_DENSE1 9
                    106:       0x7c,                // .*****..
                    107:       0x7c,                // .*****..
                    108:       0x38,                // ..***...
                    109:       0x83,                // *.....**
                    110:       0xc7,                // **...***
                    111:       0xc7,                // **...***
                    112:       0x83 },              // *.....**
                    113: 
                    114:     { 0x38,                // ..***...     HS_DENSE2 10
                    115:       0x6c,                // .**.**..
                    116:       0x54,                // .*.*.*..
                    117:       0x38,                // ..***...
                    118:       0x83,                // *.....**
                    119:       0xc6,                // **...**.
                    120:       0x45,                // .*...*.*
                    121:       0x83 },              // *.....**
                    122: 
                    123:     { 0x18,                // ...**...     HS_DENSE3 11
                    124:       0x3c,                // ..****..
                    125:       0x34,                // ..**.*..
                    126:       0x18,                // ...**...
                    127:       0x81,                // *......*
                    128:       0xc3,                // **....**
                    129:       0x43,                // .*....**
                    130:       0x81 },              // *......*
                    131: 
                    132:     { 0x18,                // ...**...     HS_DENSE4 12
                    133:       0x2c,                // ..*.**..
                    134:       0x24,                // ..*..*..
                    135:       0x18,                // ...**...
                    136:       0x81,                // *......*
                    137:       0xc1,                // **....*.
                    138:       0x42,                // .*....*.
                    139:       0x81 },              // *......*
                    140: 
                    141:     { 0x10,                // ...*....     HS_DENSE5 13
                    142:       0x38,                // ..***...
                    143:       0x28,                // ..*.*...
                    144:       0x10,                // ...*....
                    145:       0x01,                // .......*
                    146:       0x83,                // *.....**
                    147:       0x82,                // *.....*.
                    148:       0x01 },              // .......*
                    149: 
                    150:     { 0x00,                // ........     HS_DENSE6 14
                    151:       0x10,                // ...*....
                    152:       0x38,                // ..***...
                    153:       0x10,                // ...*....
                    154:       0x00,                // ........
                    155:       0x01,                // .......*
                    156:       0x83,                // *.....**
                    157:       0x01 },              // .......*
                    158: 
                    159:     { 0x00,                // ........     HS_DENSE7 15
                    160:       0x10,                // ...*....
                    161:       0x30,                // ..**....
                    162:       0x00,                // ........
                    163:       0x00,                // ........
                    164:       0x01,                // .......*
                    165:       0x03,                // ......**
                    166:       0x00 },              // ........
                    167: 
                    168:     { 0x00,                // ........     HS_DENSE8 16
                    169:       0x00,                // ........
                    170:       0x20,                // ..*.....
                    171:       0x00,                // ........
                    172:       0x00,                // ........
                    173:       0x00,                // ........
                    174:       0x02,                // ......*.
                    175:       0x00 },              // ........
                    176: 
                    177:     { 0x00,                // ........     HS_NOSHADE 17
                    178:       0x00,                // ........
                    179:       0x00,                // ........
                    180:       0x00,                // ........
                    181:       0x00,                // ........
                    182:       0x00,                // ........
                    183:       0x00,                // ........
                    184:       0x00 },              // ........
                    185: 
                    186:     { 0xAA,                // *.*.*.*.     HS_HALFTONE 18
                    187:       0x55,                // .*.*.*.*
                    188:       0xAA,                // *.*.*.*.
                    189:       0x55,                // .*.*.*.*
                    190:       0xAA,                // *.*.*.*.
                    191:       0x55,                // .*.*.*.*
                    192:       0xAA,                // *.*.*.*.
                    193:       0x55 }               // .*.*.*.*
                    194: };
                    195: 
                    196: // Same pattern, repeated in planar format:
                    197: 
                    198: const ULONG gaaulPlanarPat[HS_DDI_MAX][8] = {
                    199:     { 0x0000,              // ........     HS_HORIZONTAL 0
                    200:       0x0000,              // ........
                    201:       0x0000,              // ........
                    202:       0xffff,              // ********
                    203:       0x0000,              // ........
                    204:       0x0000,              // ........
                    205:       0x0000,              // ........
                    206:       0x0000 },            // ........
                    207: 
                    208:     { 0x0110,              // ....*...     HS_VERTICAL 1
                    209:       0x0110,              // ....*...
                    210:       0x0110,              // ....*...
                    211:       0x0110,              // ....*...
                    212:       0x0110,              // ....*...
                    213:       0x0110,              // ....*...
                    214:       0x0110,              // ....*...
                    215:       0x0110 },            // ....*...
                    216: 
                    217:     { 0x1001,              // *.......     HS_FDIAGONAL 2
                    218:       0x2002,              // .*......
                    219:       0x4004,              // ..*.....
                    220:       0x8008,              // ...*....
                    221:       0x0110,              // ....*...
                    222:       0x0220,              // .....*..
                    223:       0x0440,              // ......*.
                    224:       0x0880 },            // .......*
                    225: 
                    226:     { 0x0880,              // .......*     HS_BDIAGONAL 3
                    227:       0x0440,              // ......*.
                    228:       0x0220,              // .....*..
                    229:       0x0110,              // ....*...
                    230:       0x8008,              // ...*....
                    231:       0x4004,              // ..*.....
                    232:       0x2002,              // .*......
                    233:       0x1001 },            // *.......
                    234: 
                    235:     { 0x0110,              // ....*...     HS_CROSS 4
                    236:       0x0110,              // ....*...
                    237:       0x0110,              // ....*...
                    238:       0xffff,              // ********
                    239:       0x0110,              // ....*...
                    240:       0x0110,              // ....*...
                    241:       0x0110,              // ....*...
                    242:       0x0110 },            // ....*...
                    243: 
                    244:     { 0x1881,              // *......*     HS_DIAGCROSS 5
                    245:       0x2442,              // .*....*.
                    246:       0x4224,              // ..*..*..
                    247:       0x8118,              // ...**...
                    248:       0x8118,              // ...**...
                    249:       0x4224,              // ..*..*..
                    250:       0x2442,              // .*....*.
                    251:       0x1881 },            // *......*
                    252: 
                    253:     { 0x1881,              // *......*     HS_FDIAGONAL1 6
                    254:       0x6006,              // .**.....
                    255:       0x8118,              // ...**...
                    256:       0x0660,              // .....**.
                    257:       0x1881,              // *......*
                    258:       0x6006,              // .**.....
                    259:       0x8118,              // ...**...
                    260:       0x0660 },            // .....**.
                    261: 
                    262:     { 0x1881,              // *......*     HS_BDIAGONAL1 7
                    263:       0x0660,              // .....**.
                    264:       0x8118,              // ...**...
                    265:       0x6006,              // .**.....
                    266:       0x1881,              // *......*
                    267:       0x0660,              // .....**.
                    268:       0x8118,              // ...**...
                    269:       0x6006 },            // .**.....
                    270: 
                    271:     { 0xffff,              // ********     HS_SOLID 8
                    272:       0xffff,              // ********
                    273:       0xffff,              // ********
                    274:       0xffff,              // ********
                    275:       0xffff,              // ********
                    276:       0xffff,              // ********
                    277:       0xffff,              // ********
                    278:       0xffff },            // ********
                    279: 
                    280:     { 0xc11c,              // ..***...     HS_DENSE1 9
                    281:       0xe33e,              // .*****..
                    282:       0xe33e,              // .*****..
                    283:       0xc11c,              // ..***...
                    284:       0x1cc1,              // *.....**
                    285:       0x3ee3,              // **...***
                    286:       0x3ee3,              // **...***
                    287:       0x1cc1 },            // *.....**
                    288: 
                    289:     { 0xc11c,              // ..***...     HS_DENSE2 10
                    290:       0x6336,              // .**.**..
                    291:       0xa22a,              // .*.*.*..
                    292:       0xc11c,              // ..***...
                    293:       0x1cc1,              // *.....**
                    294:       0x3663,              // **...**.
                    295:       0x2aa2,              // .*...*.*
                    296:       0x1cc1 },            // *.....**
                    297: 
                    298:     { 0x8118,              // ...**...     HS_DENSE3 11
                    299:       0xc33c,              // ..****..
                    300:       0xc22c,              // ..**.*..
                    301:       0x8118,              // ...**...
                    302:       0x1881,              // *......*
                    303:       0x3cc3,              // **....**
                    304:       0x2cc2,              // .*....**
                    305:       0x1881 },            // *......*
                    306: 
                    307:     { 0x8118,              // ...**...     HS_DENSE4 12
                    308:       0x4334,              // ..*.**..
                    309:       0x4224,              // ..*..*..
                    310:       0x8118,              // ...**...
                    311:       0x1881,              // *......*
                    312:       0x3883,              // **....*.
                    313:       0x2442,              // .*....*.
                    314:       0x1881 },            // *......*
                    315: 
                    316:     { 0x8008,              // ...*....     HS_DENSE5 13
                    317:       0xc11c,              // ..***...
                    318:       0x4114,              // ..*.*...
                    319:       0x8008,              // ...*....
                    320:       0x0880,              // .......*
                    321:       0x1cc1,              // *.....**
                    322:       0x1441,              // *.....*.
                    323:       0x0880 },            // .......*
                    324: 
                    325:     { 0x0000,              // ........     HS_DENSE6 14
                    326:       0x8008,              // ...*....
                    327:       0xc11c,              // ..***...
                    328:       0x8008,              // ...*....
                    329:       0x0000,              // ........
                    330:       0x0880,              // .......*
                    331:       0x1cc1,              // *.....**
                    332:       0x0880 },            // .......*
                    333: 
                    334:     { 0x0000,              // ........     HS_DENSE7 15
                    335:       0x8008,              // ...*....
                    336:       0xc00c,              // ..**....
                    337:       0x0000,              // ........
                    338:       0x0000,              // ........
                    339:       0x0880,              // .......*
                    340:       0x0cc0,              // ......**
                    341:       0x0000 },            // ........
                    342: 
                    343:     { 0x0000,              // ........     HS_DENSE8 16
                    344:       0x0000,              // ........
                    345:       0x4004,              // ..*.....
                    346:       0x0000,              // ........
                    347:       0x0000,              // ........
                    348:       0x0000,              // ........
                    349:       0x0440,              // ......*.
                    350:       0x0000 },            // ........
                    351: 
                    352:     { 0x0000,              // ........     HS_NOSHADE 17
                    353:       0x0000,              // ........
                    354:       0x0000,              // ........
                    355:       0x0000,              // ........
                    356:       0x0000,              // ........
                    357:       0x0000,              // ........
                    358:       0x0000,              // ........
                    359:       0x0000 },            // ........
                    360: 
                    361:     { 0x5555,              // *.*.*.*.     HS_HALFTONE 18
                    362:       0xaaaa,              // .*.*.*.*
                    363:       0x5555,              // *.*.*.*.
                    364:       0xaaaa,              // .*.*.*.*
                    365:       0x5555,              // *.*.*.*.
                    366:       0xaaaa,              // .*.*.*.*
                    367:       0x5555,              // *.*.*.*.
                    368:       0xaaaa }             // .*.*.*.*
                    369: };
                    370: 
                    371: 
                    372: /******************************Public*Routine******************************\
                    373: * bInitPatterns
                    374: *
                    375: * This routine initializes the default patterns.
                    376: *
                    377: \**************************************************************************/
                    378: 
                    379: BOOL bInitPatterns(IN PPDEV ppdev, INT cPatterns)
                    380: {
                    381:     SIZEL           sizl;
                    382:     INT             iLoop;
                    383: 
                    384:     sizl.cx = 8;
                    385:     sizl.cy = 8;
                    386: 
                    387:     for (iLoop = 0; iLoop < cPatterns; iLoop++)
                    388:     {
                    389:         ppdev->ahbmPat[iLoop] = EngCreateBitmap(sizl,
                    390:                                                 4,          // DWORD aligned
                    391:                                                 BMF_1BPP,
                    392:                                                 BMF_TOPDOWN,
                    393:                                                 (PULONG) &gaaulPat[iLoop][0]);
                    394: 
                    395:         if (ppdev->ahbmPat[iLoop] == (HBITMAP) 0)
                    396:         {
                    397:         // Set the count created so vDisablePatterns will clean up.
                    398: 
                    399:             ppdev->cPatterns = iLoop;
                    400:             return(FALSE);
                    401:         }
                    402:     }
                    403: 
                    404:     ppdev->cPatterns = cPatterns;
                    405:     return(TRUE);
                    406: }
                    407: 
                    408: /******************************Public*Routine******************************\
                    409: * vDisablePatterns
                    410: *
                    411: * Delete the standard patterns allocated.
                    412: *
                    413: \**************************************************************************/
                    414: 
                    415: VOID vDisablePatterns(IN PPDEV ppdev)
                    416: {
                    417:     ULONG ulIndex;
                    418: 
                    419: // Erase all patterns.
                    420: 
                    421:     for (ulIndex = 0; ulIndex < ppdev->cPatterns; ulIndex++)
                    422:     {
                    423:         EngDeleteSurface((HSURF) ppdev->ahbmPat[ulIndex]);
                    424:     }
                    425: }

unix.superglobalmegacorp.com

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