Annotation of ntddk/src/video/displays/vga256/pattern.c, revision 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.