Annotation of ntddk/src/video/displays/vga/gdiinfo.c, revision 1.1

1.1     ! root        1: /******************************Module*Header*******************************\
        !             2: * Module Name: gdiinfo.c
        !             3: *
        !             4: * This contains the static data structures in the VGA driver.
        !             5: *
        !             6: * Copyright (c) 1992 Microsoft Corporation
        !             7: \**************************************************************************/
        !             8: 
        !             9: 
        !            10: #include "driver.h"
        !            11: 
        !            12: 
        !            13: /******************************Public*Data*Struct*************************\
        !            14: * This contains the GDIINFO structure that contains the device capabilities
        !            15: * which are passed to the NT GDI engine during dhpdevEnablePDEV.
        !            16: *
        !            17: \**************************************************************************/
        !            18: 
        !            19: GDIINFO gaulCap = {
        !            20: 
        !            21:      0x1000,                // ulVersion (our driver is version 1.000)
        !            22:      DT_RASDISPLAY,         // ulTechnology
        !            23:      240,                   // ulHorzSize
        !            24:      180,                   // ulVertSize
        !            25:      0,                     // ulHorzRes (filled in at initialization)
        !            26:      0,                     // ulVertRes (filled in at initialization)
        !            27:      4,                     // cBitsPixel
        !            28:      1,                     // cPlanes
        !            29:      16,                    // ulNumColors
        !            30:      0,                     // flRaster (DDI reserved field)
        !            31: 
        !            32:      0,                     // ulLogPixelsX (filled in at initialization)
        !            33:      0,                     // ulLogPixelsY (filled in at initialization)
        !            34: 
        !            35:      TC_RA_ABLE | TC_SCROLLBLT,  // flTextCaps
        !            36: 
        !            37:      6,                     // ulDACRed
        !            38:      6,                     // ulDACGree
        !            39:      6,                     // ulDACBlue
        !            40: 
        !            41:      0x0024,                // ulAspectX  (one-to-one aspect ratio)
        !            42:      0x0024,                // ulAspectY
        !            43:      0x0033,                // ulAspectXY
        !            44: 
        !            45:      1,                     // xStyleStep
        !            46:      1,                     // yStyleSte;
        !            47:      3,                     // denStyleStep
        !            48: 
        !            49:      { 0, 0 },              // ptlPhysOffset
        !            50:      { 0, 0 },              // szlPhysSize
        !            51: 
        !            52:      0,                     // ulNumPalReg (win3.1 16 color drivers say 0 too)
        !            53: 
        !            54: // These fields are for halftone initialization.
        !            55: 
        !            56:      {                                          // ciDevice, ColorInfo
        !            57:         { 6700, 3300, 0 },                      // Red
        !            58:         { 2100, 7100, 0 },                      // Green
        !            59:         { 1400,  800, 0 },                      // Blue
        !            60:         { 1750, 3950, 0 },                      // Cyan
        !            61:         { 4050, 2050, 0 },                      // Magenta
        !            62:         { 4400, 5200, 0 },                      // Yellow
        !            63:         { 3127, 3290, 0 },                      // AlignmentWhite
        !            64:         20000,                                  // RedGamma
        !            65:         20000,                                  // GreenGamma
        !            66:         20000,                                  // BlueGamma
        !            67:         0, 0, 0, 0, 0, 0
        !            68:      },
        !            69: 
        !            70:      0,                      // ulDevicePelsDPI  (filled in at initialization)
        !            71:      PRIMARY_ORDER_CBA,                         // ulPrimaryOrder
        !            72:      HT_PATSIZE_4x4_M,                          // ulHTPatternSize
        !            73:      HT_FORMAT_4BPP_IRGB,                       // ulHTOutputFormat
        !            74:      HT_FLAG_ADDITIVE_PRIMS                     // flHTFlags
        !            75: 
        !            76: };
        !            77: 
        !            78: /******************************Public*Data*Struct*************************\
        !            79: * LOGPALETTE
        !            80: *
        !            81: * This is the palette for the VGA.
        !            82: *
        !            83: \**************************************************************************/
        !            84: 
        !            85: // Little bit of hacking to get this to compile happily.
        !            86: 
        !            87: typedef struct _VGALOGPALETTE
        !            88: {
        !            89:     USHORT ident;
        !            90:     USHORT NumEntries;
        !            91:     PALETTEENTRY palPalEntry[16];
        !            92: } VGALOGPALETTE;
        !            93: 
        !            94: const VGALOGPALETTE logPalVGA =
        !            95: {
        !            96: 
        !            97: 0x400,  // driver version
        !            98: 16,     // num entries
        !            99: {
        !           100:     { 0,   0,   0,   0 },       // 0
        !           101:     { 0x80,0,   0,   0 },       // 1
        !           102:     { 0,   0x80,0,   0 },       // 2
        !           103:     { 0x80,0x80,0,   0 },       // 3
        !           104:     { 0,   0,   0x80,0 },       // 4
        !           105:     { 0x80,0,   0x80,0 },       // 5
        !           106:     { 0,   0x80,0x80,0 },       // 6
        !           107:     { 0x80,0x80,0x80,0 },       // 7
        !           108: 
        !           109:     { 0xC0,0xC0,0xC0,0 },       // 8
        !           110:     { 0xFF,0,   0,   0 },       // 9
        !           111:     { 0,   0xFF,0,   0 },       // 10
        !           112:     { 0xFF,0xFF,0,   0 },       // 11
        !           113:     { 0,   0,   0xFF,0 },       // 12
        !           114:     { 0xFF,0,   0xFF,0 },       // 13
        !           115:     { 0,   0xFF,0xFF,0 },       // 14
        !           116:     { 0xFF,0xFF,0xFF,0 }        // 15
        !           117: }
        !           118: };
        !           119: 
        !           120: 
        !           121: /******************************Public*Routine******************************\
        !           122: * DEVINFO
        !           123: *
        !           124: * This is the devinfo structure passed back to the engine in DrvEnablePDEV
        !           125: *
        !           126: \**************************************************************************/
        !           127: 
        !           128: #define SYSTM_LOGFONT {16,7,0,0,700,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,VARIABLE_PITCH | FF_DONTCARE,L"System"}
        !           129: #define HELVE_LOGFONT {12,9,0,0,400,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_STROKE_PRECIS,PROOF_QUALITY,VARIABLE_PITCH | FF_DONTCARE,  L"MS Sans Serif"}
        !           130: #define COURI_LOGFONT {12,9,0,0,400,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_STROKE_PRECIS,PROOF_QUALITY,FIXED_PITCH | FF_DONTCARE,    L"Courier"}
        !           131: 
        !           132: DEVINFO devinfoVGA =
        !           133: {
        !           134:     (GCAPS_OPAQUERECT | GCAPS_HORIZSTRIKE | GCAPS_ALTERNATEFILL | GCAPS_MONO_DITHER | GCAPS_COLOR_DITHER |
        !           135:      GCAPS_WINDINGFILL | GCAPS_TRAPPAINT),       // Graphics capabilities
        !           136:     SYSTM_LOGFONT,  // Default font description
        !           137:     HELVE_LOGFONT,  // ANSI variable font description
        !           138:     COURI_LOGFONT,  // ANSI fixed font description
        !           139:     0,              // Count of device fonts
        !           140:     BMF_4BPP,       // preferred DIB format
        !           141:     8,              // Width of color dither
        !           142:     8,              // Height of color dither
        !           143:     0               // Default palette to use for this device
        !           144: };
        !           145: 
        !           146: /******************************Public*Data*Struct*************************\
        !           147: * gaajPat
        !           148: *
        !           149: * These are the standard patterns defined Windows, they are used to produce
        !           150: * hatch brushes, grey brushes etc.
        !           151: *
        !           152: \**************************************************************************/
        !           153: 
        !           154: BYTE gaajPat[HS_DDI_MAX][32] = {
        !           155: 
        !           156:     { 0x00,0x00,0x00,0x00,                 // ........     HS_HORIZONTAL 0
        !           157:       0x00,0x00,0x00,0x00,                 // ........
        !           158:       0x00,0x00,0x00,0x00,                 // ........
        !           159:       0xff,0x00,0x00,0x00,                 // ********
        !           160:       0x00,0x00,0x00,0x00,                 // ........
        !           161:       0x00,0x00,0x00,0x00,                 // ........
        !           162:       0x00,0x00,0x00,0x00,                 // ........
        !           163:       0x00,0x00,0x00,0x00 },               // ........
        !           164: 
        !           165:     { 0x08,0x00,0x00,0x00,                 // ....*...     HS_VERTICAL 1
        !           166:       0x08,0x00,0x00,0x00,                 // ....*...
        !           167:       0x08,0x00,0x00,0x00,                 // ....*...
        !           168:       0x08,0x00,0x00,0x00,                 // ....*...
        !           169:       0x08,0x00,0x00,0x00,                 // ....*...
        !           170:       0x08,0x00,0x00,0x00,                 // ....*...
        !           171:       0x08,0x00,0x00,0x00,                 // ....*...
        !           172:       0x08,0x00,0x00,0x00 },               // ....*...
        !           173: 
        !           174:     { 0x80,0x00,0x00,0x00,                 // *.......     HS_FDIAGONAL 2
        !           175:       0x40,0x00,0x00,0x00,                 // .*......
        !           176:       0x20,0x00,0x00,0x00,                 // ..*.....
        !           177:       0x10,0x00,0x00,0x00,                 // ...*....
        !           178:       0x08,0x00,0x00,0x00,                 // ....*...
        !           179:       0x04,0x00,0x00,0x00,                 // .....*..
        !           180:       0x02,0x00,0x00,0x00,                 // ......*.
        !           181:       0x01,0x00,0x00,0x00 },               // .......*
        !           182: 
        !           183:     { 0x01,0x00,0x00,0x00,                 // .......*     HS_BDIAGONAL 3
        !           184:       0x02,0x00,0x00,0x00,                 // ......*.
        !           185:       0x04,0x00,0x00,0x00,                 // .....*..
        !           186:       0x08,0x00,0x00,0x00,                 // ....*...
        !           187:       0x10,0x00,0x00,0x00,                 // ...*....
        !           188:       0x20,0x00,0x00,0x00,                 // ..*.....
        !           189:       0x40,0x00,0x00,0x00,                 // .*......
        !           190:       0x80,0x00,0x00,0x00 },               // *.......
        !           191: 
        !           192:     { 0x08,0x00,0x00,0x00,                 // ....*...     HS_CROSS 4
        !           193:       0x08,0x00,0x00,0x00,                 // ....*...
        !           194:       0x08,0x00,0x00,0x00,                 // ....*...
        !           195:       0xff,0x00,0x00,0x00,                 // ********
        !           196:       0x08,0x00,0x00,0x00,                 // ....*...
        !           197:       0x08,0x00,0x00,0x00,                 // ....*...
        !           198:       0x08,0x00,0x00,0x00,                 // ....*...
        !           199:       0x08,0x00,0x00,0x00 },               // ....*...
        !           200: 
        !           201:     { 0x81,0x00,0x00,0x00,                 // *......*     HS_DIAGCROSS 5
        !           202:       0x42,0x00,0x00,0x00,                 // .*....*.
        !           203:       0x24,0x00,0x00,0x00,                 // ..*..*..
        !           204:       0x18,0x00,0x00,0x00,                 // ...**...
        !           205:       0x18,0x00,0x00,0x00,                 // ...**...
        !           206:       0x24,0x00,0x00,0x00,                 // ..*..*..
        !           207:       0x42,0x00,0x00,0x00,                 // .*....*.
        !           208:       0x81,0x00,0x00,0x00 },               // *......*
        !           209: 
        !           210:     { 0x81,0x00,0x00,0x00,                 // *......*     HS_FDIAGONAL1 6
        !           211:       0x60,0x00,0x00,0x00,                 // .**.....
        !           212:       0x18,0x00,0x00,0x00,                 // ...**...
        !           213:       0x06,0x00,0x00,0x00,                 // .....**.
        !           214:       0x81,0x00,0x00,0x00,                 // *......*
        !           215:       0x60,0x00,0x00,0x00,                 // .**.....
        !           216:       0x18,0x00,0x00,0x00,                 // ...**...
        !           217:       0x06,0x00,0x00,0x00 },               // .....**.
        !           218: 
        !           219:     { 0x81,0x00,0x00,0x00,                 // *......*     HS_BDIAGONAL1 7
        !           220:       0x06,0x00,0x00,0x00,                 // .....**.
        !           221:       0x18,0x00,0x00,0x00,                 // ...**...
        !           222:       0x60,0x00,0x00,0x00,                 // .**.....
        !           223:       0x81,0x00,0x00,0x00,                 // *......*
        !           224:       0x06,0x00,0x00,0x00,                 // .....**.
        !           225:       0x18,0x00,0x00,0x00,                 // ...**...
        !           226:       0x60,0x00,0x00,0x00 },               // .**.....
        !           227: 
        !           228:     { 0xFF,0x00,0x00,0x00,                 // ********     HS_SOLID 8
        !           229:       0xFF,0x00,0x00,0x00,                 // ********
        !           230:       0xFF,0x00,0x00,0x00,                 // ********
        !           231:       0xFF,0x00,0x00,0x00,                 // ********
        !           232:       0xFF,0x00,0x00,0x00,                 // ********
        !           233:       0xFF,0x00,0x00,0x00,                 // ********
        !           234:       0xFF,0x00,0x00,0x00,                 // ********
        !           235:       0xFF,0x00,0x00,0x00 },               // ********
        !           236: 
        !           237:     { 0x38,0x00,0x00,0x00,                 // ..***...     HS_DENSE1 9
        !           238:       0x7c,0x00,0x00,0x00,                 // .*****..
        !           239:       0x7c,0x00,0x00,0x00,                 // .*****..
        !           240:       0x38,0x00,0x00,0x00,                 // ..***...
        !           241:       0x83,0x00,0x00,0x00,                 // *.....**
        !           242:       0xc7,0x00,0x00,0x00,                 // **...***
        !           243:       0xc7,0x00,0x00,0x00,                 // **...***
        !           244:       0x83,0x00,0x00,0x00 },               // *.....**
        !           245: 
        !           246:     { 0x38,0x00,0x00,0x00,                 // ..***...     HS_DENSE2 10
        !           247:       0x6c,0x00,0x00,0x00,                 // .**.**..
        !           248:       0x54,0x00,0x00,0x00,                 // .*.*.*..
        !           249:       0x38,0x00,0x00,0x00,                 // ..***...
        !           250:       0x83,0x00,0x00,0x00,                 // *.....**
        !           251:       0xc6,0x00,0x00,0x00,                 // **...**.
        !           252:       0x45,0x00,0x00,0x00,                 // .*...*.*
        !           253:       0x83,0x00,0x00,0x00 },               // *.....**
        !           254: 
        !           255:     { 0x18,0x00,0x00,0x00,                 // ...**...     HS_DENSE3 11
        !           256:       0x3c,0x00,0x00,0x00,                 // ..****..
        !           257:       0x34,0x00,0x00,0x00,                 // ..**.*..
        !           258:       0x18,0x00,0x00,0x00,                 // ...**...
        !           259:       0x81,0x00,0x00,0x00,                 // *......*
        !           260:       0xc3,0x00,0x00,0x00,                 // **....**
        !           261:       0x43,0x00,0x00,0x00,                 // .*....**
        !           262:       0x81,0x00,0x00,0x00 },               // *......*
        !           263: 
        !           264:     { 0x18,0x00,0x00,0x00,                 // ...**...     HS_DENSE4 12
        !           265:       0x2c,0x00,0x00,0x00,                 // ..*.**..
        !           266:       0x24,0x00,0x00,0x00,                 // ..*..*..
        !           267:       0x18,0x00,0x00,0x00,                 // ...**...
        !           268:       0x81,0x00,0x00,0x00,                 // *......*
        !           269:       0xc1,0x00,0x00,0x00,                 // **....*.
        !           270:       0x42,0x00,0x00,0x00,                 // .*....*.
        !           271:       0x81,0x00,0x00,0x00 },               // *......*
        !           272: 
        !           273:     { 0x10,0x00,0x00,0x00,                 // ...*....     HS_DENSE5 13
        !           274:       0x38,0x00,0x00,0x00,                 // ..***...
        !           275:       0x28,0x00,0x00,0x00,                 // ..*.*...
        !           276:       0x10,0x00,0x00,0x00,                 // ...*....
        !           277:       0x01,0x00,0x00,0x00,                 // .......*
        !           278:       0x83,0x00,0x00,0x00,                 // *.....**
        !           279:       0x82,0x00,0x00,0x00,                 // *.....*.
        !           280:       0x01,0x00,0x00,0x00 },               // .......*
        !           281: 
        !           282:     { 0x00,0x00,0x00,0x00,                 // ........     HS_DENSE6 14
        !           283:       0x10,0x00,0x00,0x00,                 // ...*....
        !           284:       0x38,0x00,0x00,0x00,                 // ..***...
        !           285:       0x10,0x00,0x00,0x00,                 // ...*....
        !           286:       0x00,0x00,0x00,0x00,                 // ........
        !           287:       0x01,0x00,0x00,0x00,                 // .......*
        !           288:       0x83,0x00,0x00,0x00,                 // *.....**
        !           289:       0x01,0x00,0x00,0x00 },               // .......*
        !           290: 
        !           291:     { 0x00,0x00,0x00,0x00,                 // ........     HS_DENSE7 15
        !           292:       0x10,0x00,0x00,0x00,                 // ...*....
        !           293:       0x30,0x00,0x00,0x00,                 // ..**....
        !           294:       0x00,0x00,0x00,0x00,                 // ........
        !           295:       0x00,0x00,0x00,0x00,                 // ........
        !           296:       0x01,0x00,0x00,0x00,                 // .......*
        !           297:       0x03,0x00,0x00,0x00,                 // ......**
        !           298:       0x00,0x00,0x00,0x00 },               // ........
        !           299: 
        !           300:     { 0x00,0x00,0x00,0x00,                 // ........     HS_DENSE8 16
        !           301:       0x00,0x00,0x00,0x00,                 // ........
        !           302:       0x20,0x00,0x00,0x00,                 // ..*.....
        !           303:       0x00,0x00,0x00,0x00,                 // ........
        !           304:       0x00,0x00,0x00,0x00,                 // ........
        !           305:       0x00,0x00,0x00,0x00,                 // ........
        !           306:       0x02,0x00,0x00,0x00,                 // ......*.
        !           307:       0x00,0x00,0x00,0x00 },               // ........
        !           308: 
        !           309:     { 0x00,0x00,0x00,0x00,                 // ........     HS_NOSHADE 17
        !           310:       0x00,0x00,0x00,0x00,                 // ........
        !           311:       0x00,0x00,0x00,0x00,                 // ........
        !           312:       0x00,0x00,0x00,0x00,                 // ........
        !           313:       0x00,0x00,0x00,0x00,                 // ........
        !           314:       0x00,0x00,0x00,0x00,                 // ........
        !           315:       0x00,0x00,0x00,0x00,                 // ........
        !           316:       0x00,0x00,0x00,0x00 },               // ........
        !           317: 
        !           318:     { 0xAA,0x00,0x00,0x00,                 // *.*.*.*.     HS_HALFTONE 18
        !           319:       0x55,0x00,0x00,0x00,                 // .*.*.*.*
        !           320:       0xAA,0x00,0x00,0x00,                 // *.*.*.*.
        !           321:       0x55,0x00,0x00,0x00,                 // .*.*.*.*
        !           322:       0xAA,0x00,0x00,0x00,                 // *.*.*.*.
        !           323:       0x55,0x00,0x00,0x00,                 // .*.*.*.*
        !           324:       0xAA,0x00,0x00,0x00,                 // *.*.*.*.
        !           325:       0x55,0x00,0x00,0x00 }                // .*.*.*.*
        !           326: };
        !           327: 
        !           328: // We pre-realize all of our hatch brushes here.
        !           329: 
        !           330: BYTE gaajRealizedPat[HS_DDI_MAX][32] = {
        !           331: 
        !           332:     { 0x00,0x00,                 // ........     HS_HORIZONTAL 0
        !           333:       0x00,0x00,                 // ........
        !           334:       0x00,0x00,                 // ........
        !           335:       0xff,0xff,                 // ********
        !           336:       0x00,0x00,                 // ........
        !           337:       0x00,0x00,                 // ........
        !           338:       0x00,0x00,                 // ........
        !           339:       0x00,0x00},                // ........
        !           340: 
        !           341:     { 0x08,0x08,                 // ....*...     HS_VERTICAL 1
        !           342:       0x08,0x08,                 // ....*...
        !           343:       0x08,0x08,                 // ....*...
        !           344:       0x08,0x08,                 // ....*...
        !           345:       0x08,0x08,                 // ....*...
        !           346:       0x08,0x08,                 // ....*...
        !           347:       0x08,0x08,                 // ....*...
        !           348:       0x08,0x08},                // ....*...
        !           349: 
        !           350:     { 0x80,0x80,                 // *.......     HS_FDIAGONAL 2
        !           351:       0x40,0x40,                 // .*......
        !           352:       0x20,0x20,                 // ..*.....
        !           353:       0x10,0x10,                 // ...*....
        !           354:       0x08,0x08,                 // ....*...
        !           355:       0x04,0x04,                 // .....*..
        !           356:       0x02,0x02,                 // ......*.
        !           357:       0x01,0x01},                // .......*
        !           358: 
        !           359:     { 0x01,0x01,                 // .......*     HS_BDIAGONAL 3
        !           360:       0x02,0x02,                 // ......*.
        !           361:       0x04,0x04,                 // .....*..
        !           362:       0x08,0x08,                 // ....*...
        !           363:       0x10,0x10,                 // ...*....
        !           364:       0x20,0x20,                 // ..*.....
        !           365:       0x40,0x40,                 // .*......
        !           366:       0x80,0x80},                // *.......
        !           367: 
        !           368:     { 0x08,0x08,                 // ....*...     HS_CROSS 4
        !           369:       0x08,0x08,                 // ....*...
        !           370:       0x08,0x08,                 // ....*...
        !           371:       0xff,0xff,                 // ********
        !           372:       0x08,0x08,                 // ....*...
        !           373:       0x08,0x08,                 // ....*...
        !           374:       0x08,0x08,                 // ....*...
        !           375:       0x08,0x08},                // ....*...
        !           376: 
        !           377:     { 0x81,0x81,                 // *......*     HS_DIAGCROSS 5
        !           378:       0x42,0x42,                 // .*....*.
        !           379:       0x24,0x24,                 // ..*..*..
        !           380:       0x18,0x18,                 // ...**...
        !           381:       0x18,0x18,                 // ...**...
        !           382:       0x24,0x24,                 // ..*..*..
        !           383:       0x42,0x42,                 // .*....*.
        !           384:       0x81,0x81},                // *......*
        !           385: 
        !           386:     { 0x81,0x81,                 // *......*     HS_FDIAGONAL1 6
        !           387:       0x60,0x60,                 // .**.....
        !           388:       0x18,0x18,                 // ...**...
        !           389:       0x06,0x06,                 // .....**.
        !           390:       0x81,0x81,                 // *......*
        !           391:       0x60,0x60,                 // .**.....
        !           392:       0x18,0x18,                 // ...**...
        !           393:       0x06,0x06},                // .....**.
        !           394: 
        !           395:     { 0x81,0x81,                 // *......*     HS_BDIAGONAL1 7
        !           396:       0x06,0x06,                 // .....**.
        !           397:       0x18,0x18,                 // ...**...
        !           398:       0x60,0x60,                 // .**.....
        !           399:       0x81,0x81,                 // *......*
        !           400:       0x06,0x06,                 // .....**.
        !           401:       0x18,0x18,                 // ...**...
        !           402:       0x60,0x60},                // .**.....
        !           403: 
        !           404:     { 0xFF,0xFF,                 // ********     HS_SOLID 8
        !           405:       0xFF,0xFF,                 // ********
        !           406:       0xFF,0xFF,                 // ********
        !           407:       0xFF,0xFF,                 // ********
        !           408:       0xFF,0xFF,                 // ********
        !           409:       0xFF,0xFF,                 // ********
        !           410:       0xFF,0xFF,                 // ********
        !           411:       0xFF,0xFF},                // ********
        !           412: 
        !           413:     { 0x38,0x38,                 // ..***...     HS_DENSE1 9
        !           414:       0x7c,0x7c,                 // .*****..
        !           415:       0x7c,0x7c,                 // .*****..
        !           416:       0x38,0x38,                 // ..***...
        !           417:       0x83,0x83,                 // *.....**
        !           418:       0xc7,0xc7,                 // **...***
        !           419:       0xc7,0xc7,                 // **...***
        !           420:       0x83,0x83},                // *.....**
        !           421: 
        !           422:     { 0x38,0x38,                 // ..***...     HS_DENSE2 10
        !           423:       0x6c,0x6c,                 // .**.**..
        !           424:       0x54,0x54,                 // .*.*.*..
        !           425:       0x38,0x38,                 // ..***...
        !           426:       0x83,0x83,                 // *.....**
        !           427:       0xc6,0xc6,                 // **...**.
        !           428:       0x45,0x45,                 // .*...*.*
        !           429:       0x83,0x83},                // *.....**
        !           430: 
        !           431:     { 0x18,0x18,                 // ...**...     HS_DENSE3 11
        !           432:       0x3c,0x3c,                 // ..****..
        !           433:       0x34,0x34,                 // ..**.*..
        !           434:       0x18,0x18,                 // ...**...
        !           435:       0x81,0x81,                 // *......*
        !           436:       0xc3,0xc3,                 // **....**
        !           437:       0x43,0x43,                 // .*....**
        !           438:       0x81,0x81},                // *......*
        !           439: 
        !           440:     { 0x18,0x18,                 // ...**...     HS_DENSE4 12
        !           441:       0x2c,0x2c,                 // ..*.**..
        !           442:       0x24,0x24,                 // ..*..*..
        !           443:       0x18,0x18,                 // ...**...
        !           444:       0x81,0x81,                 // *......*
        !           445:       0xc1,0xc1,                 // **....*.
        !           446:       0x42,0x42,                 // .*....*.
        !           447:       0x81,0x81},                // *......*
        !           448: 
        !           449:     { 0x10,0x10,                 // ...*....     HS_DENSE5 13
        !           450:       0x38,0x38,                 // ..***...
        !           451:       0x28,0x28,                 // ..*.*...
        !           452:       0x10,0x10,                 // ...*....
        !           453:       0x01,0x01,                 // .......*
        !           454:       0x83,0x83,                 // *.....**
        !           455:       0x82,0x82,                 // *.....*.
        !           456:       0x01,0x01},                // .......*
        !           457: 
        !           458:     { 0x00,0x00,                 // ........     HS_DENSE6 14
        !           459:       0x10,0x10,                 // ...*....
        !           460:       0x38,0x38,                 // ..***...
        !           461:       0x10,0x10,                 // ...*....
        !           462:       0x00,0x00,                 // ........
        !           463:       0x01,0x01,                 // .......*
        !           464:       0x83,0x83,                 // *.....**
        !           465:       0x01,0x01},                // .......*
        !           466: 
        !           467:     { 0x00,0x00,                 // ........     HS_DENSE7 15
        !           468:       0x10,0x10,                 // ...*....
        !           469:       0x30,0x30,                 // ..**....
        !           470:       0x00,0x00,                 // ........
        !           471:       0x00,0x00,                 // ........
        !           472:       0x01,0x01,                 // .......*
        !           473:       0x03,0x03,                 // ......**
        !           474:       0x00,0x00},                // ........
        !           475: 
        !           476:     { 0x00,0x00,                 // ........     HS_DENSE8 16
        !           477:       0x00,0x00,                 // ........
        !           478:       0x20,0x20,                 // ..*.....
        !           479:       0x00,0x00,                 // ........
        !           480:       0x00,0x00,                 // ........
        !           481:       0x00,0x00,                 // ........
        !           482:       0x02,0x02,                 // ......*.
        !           483:       0x00,0x00},                // ........
        !           484: 
        !           485:     { 0x00,0x00,                 // ........     HS_NOSHADE 17
        !           486:       0x00,0x00,                 // ........
        !           487:       0x00,0x00,                 // ........
        !           488:       0x00,0x00,                 // ........
        !           489:       0x00,0x00,                 // ........
        !           490:       0x00,0x00,                 // ........
        !           491:       0x00,0x00,                 // ........
        !           492:       0x00,0x00},                // ........
        !           493: 
        !           494:     { 0xAA,0xAA,                 // *.*.*.*.     HS_HALFTONE 18
        !           495:       0x55,0x55,                 // .*.*.*.*
        !           496:       0xAA,0xAA,                 // *.*.*.*.
        !           497:       0x55,0x55,                 // .*.*.*.*
        !           498:       0xAA,0xAA,                 // *.*.*.*.
        !           499:       0x55,0x55,                 // .*.*.*.*
        !           500:       0xAA,0xAA,                 // *.*.*.*.
        !           501:       0x55,0x55}                 // .*.*.*.*
        !           502: };
        !           503: 
        !           504: // DrvRealizeBrush uses this table to get to the pre-realized version of
        !           505: // The hatched brush. The first number is the "real" width. The second
        !           506: // number is the number of bits one must shift right to divide a y coord
        !           507: // by the height of this brush (power of 2 divisor). This allows us to quickly
        !           508: // figure out how many passes are in our venetian blind.  For example, the
        !           509: // HS_VERTICAL brush is really one scan line (0x8) repeated 8 times. We
        !           510: // view this as a 1 high pattern. This will result in a one pass blt. The
        !           511: // HS_HALFTONE brush is really a repeating 2 high pattern. So we can do this
        !           512: // in two passes. Most of the other hatches are 8 high so we will have to
        !           513: // venetian blind our pattern to the screen with 8 passes.
        !           514: 
        !           515: ULONG gRealizedBrushHeight[] = {
        !           516:     8, 3,//HS_HORIZONTAL 0
        !           517:     1, 0,//HS_VERTICAL 1
        !           518:     8, 3,//HS_FDIAGONAL 2
        !           519:     8, 3,//HS_BDIAGONAL 3
        !           520:     8, 3,//HS_CROSS 4
        !           521:     8, 3,//HS_DIAGCROSS 5
        !           522:     8, 3,//HS_FDIAGONAL1 6
        !           523:     8, 3,//HS_BDIAGONAL1 7
        !           524:     1, 0,//HS_SOLID 8
        !           525:     8, 3,//HS_DENSE1 9
        !           526:     8, 3,//HS_DENSE2 10
        !           527:     8, 3,//HS_DENSE3 11
        !           528:     8, 3,//HS_DENSE4 12
        !           529:     8, 3,//HS_DENSE5 13
        !           530:     8, 3,//HS_DENSE6 14
        !           531:     8, 3,//HS_DENSE7 15
        !           532:     8, 3,//HS_DENSE8 16
        !           533:     1, 0,//HS_NOSHADE 17
        !           534:     2, 1,//HS_HALFTONE 18
        !           535: };

unix.superglobalmegacorp.com

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