Index: Help |
Property changes on: Help |
___________________________________________________________________ |
Modified: svn:ignore |
## -6,3 +6,5 ## |
1 | 1 | Debug No MSVCRT |
2 | 2 | Debug VS2017 |
3 | 3 | Release VS2017 |
| 4 | +Debug VS2019 |
| 5 | +Release VS2019 |
Index: Installer |
Property changes on: Installer |
___________________________________________________________________ |
Modified: svn:ignore |
## -5,3 +5,5 ## |
4 | 6 | Debug No MSVCRT |
5 | 7 | Debug VS2017 |
6 | 8 | Release VS2017 |
| 9 | +Debug VS2019 |
| 10 | +Release VS2019 |
Index: buildtool |
Property changes on: buildtool |
___________________________________________________________________ |
Modified: svn:ignore |
## -12,3 +12,5 ## |
7 | 11 | Debug No MSVCRT |
8 | 12 | Debug VS2017 |
9 | 13 | Release VS2017 |
| 14 | +Debug VS2019 |
| 15 | +Release VS2019 |
Index: cfgmgr |
Property changes on: cfgmgr |
___________________________________________________________________ |
Modified: svn:ignore |
## -10,3 +10,5 ## |
10 | 16 | Debug No MSVCRT |
11 | 17 | Debug VS2017 |
12 | 18 | Release VS2017 |
| 19 | +Debug VS2019 |
| 20 | +Release VS2019 |
Index: common |
Property changes on: common |
___________________________________________________________________ |
Modified: svn:ignore |
## -10,3 +10,5 ## |
13 | 21 | Debug No MSVCRT |
14 | 22 | Debug VS2017 |
15 | 23 | Release VS2017 |
| 24 | +Debug VS2019 |
| 25 | +Release VS2019 |
Index: dxgl-nsis |
Property changes on: dxgl-nsis |
___________________________________________________________________ |
Modified: svn:ignore |
## -3,3 +3,5 ## |
16 | 26 | Release |
17 | 27 | Release VS2017 |
18 | 28 | dxgl-nsis.vcxproj.user |
| 29 | +Debug VS2019 |
| 30 | +Release VS2019 |
Index: dxglcfg-old |
Property changes on: dxglcfg-old |
___________________________________________________________________ |
Modified: svn:ignore |
## -10,3 +10,5 ## |
19 | 31 | *.user |
20 | 32 | Debug VS2017 |
21 | 33 | Release VS2017 |
| 34 | +Debug VS2019 |
| 35 | +Release VS2019 |
Index: minhook/build/DXGL |
Property changes on: minhook/build/DXGL |
___________________________________________________________________ |
Modified: svn:ignore |
## -4,3 +4,5 ## |
22 | 36 | x64 |
23 | 37 | Debug VS2017 |
24 | 38 | Release VS2017 |
| 39 | +Debug VS2019 |
| 40 | +Release VS2019 |
Index: ddraw/ShaderGen2D.cpp |
— | — | @@ -74,8 +74,11 @@ |
75 | 75 | 0x20: (first entry for specific RGB formats) (future)
|
76 | 76 | 0x80: UYVY / UYNV
|
77 | 77 | 0x81: YUY2 / YUNV
|
78 | | -0x82: RGBG
|
79 | | -0x83: GRGB
|
| 78 | +0x82: YVYU
|
| 79 | +0x83: AYUV
|
| 80 | +0x9E: RGBG
|
| 81 | +0x9F: GRGB
|
| 82 | +0x84: AYUV
|
80 | 83 | 0xC0: (first entry for compressed) (future)
|
81 | 84 | */
|
82 | 85 |
|
— | — | @@ -165,6 +168,11 @@ |
166 | 169 | static const char op_clip[] = "if(texture2D(stenciltex, gl_TexCoord[3].st).r < .5) discard;\n";
|
167 | 170 |
|
168 | 171 | // Functions
|
| 172 | +static const char func_yuvtorgb[] = "";
|
| 173 | +static const char func_readuyvy[] = "";
|
| 174 | +static const char func_readyuy2[] = "";
|
| 175 | +static const char func_readrgbg[] = "";
|
| 176 | +static const char func_readgrgb[] = "";
|
169 | 177 |
|
170 | 178 | // ROP Operations
|
171 | 179 | static const char *op_ROP[256] = {
|
— | — | @@ -752,6 +760,8 @@ |
753 | 761 | unsigned char srctype = (id >> 32) & 0xFF;
|
754 | 762 | unsigned char srctype2;
|
755 | 763 | unsigned char desttype = (id >> 40) & 0xFF;
|
| 764 | + if (srctype == desttype) srctype2 = 0;
|
| 765 | + else srctype2 = srctype;
|
756 | 766 | gen->genshaders2D[index].shader.vsrc.ptr = NULL;
|
757 | 767 | gen->genshaders2D[index].shader.fsrc.ptr = NULL;
|
758 | 768 | char idstring[30];
|
— | — | @@ -856,7 +866,21 @@ |
857 | 867 |
|
858 | 868 | // Uniforms
|
859 | 869 | if (id & DDBLT_COLORFILL) String_Append(fsrc, unif_fillcolor);
|
860 | | - else String_Append(fsrc, unif_srctex);
|
| 870 | + else
|
| 871 | + {
|
| 872 | + switch (srctype)
|
| 873 | + {
|
| 874 | + case 0x80:
|
| 875 | + case 0x81:
|
| 876 | + case 0x82:
|
| 877 | + case 0x83:
|
| 878 | + String_Append(fsrc, unif_srctexrect);
|
| 879 | + break;
|
| 880 | + default:
|
| 881 | + String_Append(fsrc, unif_srctex);
|
| 882 | + break;
|
| 883 | + }
|
| 884 | + }
|
861 | 885 | if (id & DDBLT_KEYDEST) usedest = TRUE;
|
862 | 886 | if (id & DDBLT_ROP)
|
863 | 887 | {
|
— | — | @@ -881,8 +905,6 @@ |
882 | 906 | String_Append(fsrc, unif_ckeydest);
|
883 | 907 | if (id & 0x40000000) String_Append(fsrc, unif_ckeydesthigh);
|
884 | 908 | }
|
885 | | - if (srctype == desttype) srctype2 = 0;
|
886 | | - else srctype2 = srctype;
|
887 | 909 | switch (srctype2)
|
888 | 910 | {
|
889 | 911 | default:
|
— | — | @@ -908,6 +930,21 @@ |
909 | 931 | }
|
910 | 932 | if (usedest) String_Append(fsrc, var_dest);
|
911 | 933 |
|
| 934 | + // Functions
|
| 935 | + switch (srctype2)
|
| 936 | + {
|
| 937 | + case 0x80:
|
| 938 | + break;
|
| 939 | + case 0x81:
|
| 940 | + break;
|
| 941 | + case 0x82:
|
| 942 | + break;
|
| 943 | + case 0x83:
|
| 944 | + break;
|
| 945 | + default:
|
| 946 | + break;
|
| 947 | + }
|
| 948 | +
|
912 | 949 | // Main
|
913 | 950 | String_Append(fsrc, mainstart);
|
914 | 951 | if (id & 0x10000000) String_Append(fsrc, op_clip);
|
— | — | @@ -930,6 +967,14 @@ |
931 | 968 | case 0x19:
|
932 | 969 | String_Append(fsrc, op_pixelmul256);
|
933 | 970 | break;
|
| 971 | + case 0x80:
|
| 972 | + break;
|
| 973 | + case 0x81:
|
| 974 | + break;
|
| 975 | + case 0x82:
|
| 976 | + break;
|
| 977 | + case 0x83:
|
| 978 | + break;
|
934 | 979 | }
|
935 | 980 | }
|
936 | 981 | if (id & DDBLT_KEYSRC) String_Append(fsrc, op_src);
|
Index: ddraw/glTexture.cpp |
— | — | @@ -94,12 +94,20 @@ |
95 | 95 | {sizeof(DDPIXELFORMAT), DDPF_ZBUFFER, 0, 32, 0, 0xFFFFFFFF, 0, 0}, // 32 bit Z buffer
|
96 | 96 | {sizeof(DDPIXELFORMAT), DDPF_ZBUFFER, 0, 32, 8, 0xFFFFFF00, 0xFF, 0}, // 32 bit Z buffer with stencil
|
97 | 97 | {sizeof(DDPIXELFORMAT), DDPF_ZBUFFER, 0, 32, 8, 0xFF, 0xFFFFFF00, 0}, // 32 bit Z buffer with stencil, reversed
|
98 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('U','Y','V','Y'), 0, 0, 0, 0, 0}, // UYVY YUV surface
|
99 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('U','Y','N','V'), 0, 0, 0, 0, 0}, // UYVY YUV surface (NVIDIA alias)
|
100 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','Y','2'), 0, 0, 0, 0, 0}, // YUY2 YUV surface
|
101 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','N','V'), 0, 0, 0, 0, 0}, // YUY2 YUV surface (NVIDIA alias)
|
102 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('R','G','B','G'), 0, 0, 0, 0, 0}, // RGBG 16-bit pixelformat
|
103 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('G','R','G','B'), 0, 0, 0, 0, 0}, // GRGB 16-bit pixelformat
|
| 98 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','8',' ',' '), 8, 0, 0, 0, 0}, // 8-bit grayscale
|
| 99 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','8','0','0'), 8, 0, 0, 0, 0}, // 8-bit grayscale
|
| 100 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('G','R','E','Y'), 8, 0, 0, 0, 0}, // 8-bit grayscale
|
| 101 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','1','6',' '), 16, 0, 0, 0, 0}, // 16-bit grayscale
|
| 102 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('U','Y','V','Y'), 16, 0, 0, 0, 0}, // UYVY packed YUV surface
|
| 103 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('U','Y','N','V'), 16, 0, 0, 0, 0}, // UYVY packed YUV surface (NVIDIA alias)
|
| 104 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','4','2','2'), 16, 0, 0, 0, 0}, // UYVY packed YUV surface (ADS Tech. alias)
|
| 105 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','Y','2'), 16, 0, 0, 0, 0}, // YUY2 packed YUV surface
|
| 106 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','Y','V'), 16, 0, 0, 0, 0}, // YUY2 packed YUV surface (dup. of YUY2)
|
| 107 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','N','V'), 16, 0, 0, 0, 0}, // YUY2 packed YUV surface (NVIDIA alias)
|
| 108 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','V','Y','U'), 16, 0, 0, 0, 0}, // YUY2 packed YUV surface
|
| 109 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('R','G','B','G'), 16, 0, 0, 0, 0}, // RGBG packed 16-bit pixelformat
|
| 110 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('G','R','G','B'), 16, 0, 0, 0, 0}, // GRGB packed 16-bit pixelformat
|
| 111 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('A','Y','U','V'), 32, 0, 0, 0, 0}, // AYUV packed YUV surface
|
104 | 112 | };
|
105 | 113 | static const int END_TEXFORMATS = __LINE__ - 4;
|
106 | 114 | int numtexformats;
|
— | — | @@ -131,12 +139,20 @@ |
132 | 140 | #define DXGLPIXELFORMAT_Z32 22
|
133 | 141 | #define DXGLPIXELFORMAT_S8_Z32 23
|
134 | 142 | #define DXGLPIXELFORMAT_S8_Z32_REV 24
|
135 | | -#define DXGLPIXELFORMAT_FOURCC_UYVY 25
|
136 | | -#define DXGLPIXELFORMAT_FOURCC_UYNV 26
|
137 | | -#define DXGLPIXELFORMAT_FOURCC_YUY2 27
|
138 | | -#define DXGLPIXELFORMAT_FOURCC_YUNV 28
|
139 | | -#define DXGLPIXELFORMAT_FOURCC_RGBG 29
|
140 | | -#define DXGLPIXELFORMAT_FOURCC_GRGB 30
|
| 143 | +#define DXGLPIXELFORMAT_FOURCC_Y8 25
|
| 144 | +#define DXGLPIXELFORMAT_FOURCC_Y800 26
|
| 145 | +#define DXGLPIXELFORMAT_FOURCC_GREY 27
|
| 146 | +#define DXGLPIXELFORMAT_FOURCC_Y16 28
|
| 147 | +#define DXGLPIXELFORMAT_FOURCC_UYVY 29
|
| 148 | +#define DXGLPIXELFORMAT_FOURCC_UYNV 30
|
| 149 | +#define DXGLPIXELFORMAT_FOURCC_Y422 31
|
| 150 | +#define DXGLPIXELFORMAT_FOURCC_YUY2 32
|
| 151 | +#define DXGLPIXELFORMAT_FOURCC_YUYV 33
|
| 152 | +#define DXGLPIXELFORMAT_FOURCC_YUNV 34
|
| 153 | +#define DXGLPIXELFORMAT_FOURCC_YVYU 35
|
| 154 | +#define DXGLPIXELFORMAT_FOURCC_RGBG 36
|
| 155 | +#define DXGLPIXELFORMAT_FOURCC_GRGB 37
|
| 156 | +#define DXGLPIXELFORMAT_FOURCC_AYUV 38
|
141 | 157 |
|
142 | 158 | void ClearError()
|
143 | 159 | {
|
— | — | @@ -270,14 +286,24 @@ |
271 | 287 | {
|
272 | 288 | switch (ddsd->ddpfPixelFormat.dwFourCC)
|
273 | 289 | {
|
| 290 | + case MAKEFOURCC('Y', '8', ' ', ' '):
|
| 291 | + case MAKEFOURCC('Y', '8', '0', '0'):
|
| 292 | + case MAKEFOURCC('G', 'R', 'E', 'Y'):
|
| 293 | + newtexture->levels[0].ddsd.lPitch = NextMultipleOf4(newtexture->levels[0].ddsd.dwWidth);
|
| 294 | + break;
|
| 295 | + case MAKEFOURCC('Y', '1', '6', ' '):
|
274 | 296 | case MAKEFOURCC('U', 'Y', 'V', 'Y'):
|
275 | 297 | case MAKEFOURCC('U', 'Y', 'N', 'V'):
|
| 298 | + case MAKEFOURCC('Y', '4', '2', '2'):
|
276 | 299 | case MAKEFOURCC('Y', 'U', 'Y', '2'):
|
| 300 | + case MAKEFOURCC('Y', 'U', 'Y', 'V'):
|
277 | 301 | case MAKEFOURCC('Y', 'U', 'N', 'V'):
|
| 302 | + case MAKEFOURCC('Y', 'V', 'Y', 'U'):
|
278 | 303 | case MAKEFOURCC('R', 'G', 'B', 'G'):
|
279 | 304 | case MAKEFOURCC('G', 'R', 'G', 'B'):
|
280 | 305 | newtexture->levels[0].ddsd.lPitch = NextMultipleOf4(newtexture->levels[0].ddsd.dwWidth * 2);
|
281 | 306 | break;
|
| 307 | + case MAKEFOURCC('A', 'Y', 'U', 'V'):
|
282 | 308 | default:
|
283 | 309 | newtexture->levels[0].ddsd.lPitch = NextMultipleOf4(newtexture->levels[0].ddsd.dwWidth * 4);
|
284 | 310 | break;
|
— | — | @@ -1171,6 +1197,9 @@ |
1172 | 1198 | This->packsize = 1;
|
1173 | 1199 | break;
|
1174 | 1200 | case DXGLPIXELFORMAT_LUM8: // 8-bit Luminance
|
| 1201 | + case DXGLPIXELFORMAT_FOURCC_Y8:
|
| 1202 | + case DXGLPIXELFORMAT_FOURCC_Y800:
|
| 1203 | + case DXGLPIXELFORMAT_FOURCC_GREY:
|
1175 | 1204 | This->internalformats[0] = GL_LUMINANCE8;
|
1176 | 1205 | This->internalformats[1] = GL_RGB8;
|
1177 | 1206 | This->internalformats[2] = GL_RGBA8;
|
— | — | @@ -1340,8 +1369,25 @@ |
1341 | 1370 | This->colorbits[3] = 8;
|
1342 | 1371 | This->packsize = 1;
|
1343 | 1372 | break;
|
| 1373 | + case DXGLPIXELFORMAT_FOURCC_Y16:
|
| 1374 | + This->internalformats[0] = GL_LUMINANCE16;
|
| 1375 | + This->format = GL_LUMINANCE;
|
| 1376 | + This->type = GL_UNSIGNED_SHORT;
|
| 1377 | + if (!This->target) This->target = GL_TEXTURE_2D;
|
| 1378 | + This->colororder = 4;
|
| 1379 | + This->colorsizes[0] = 65535;
|
| 1380 | + This->colorsizes[1] = 65535;
|
| 1381 | + This->colorsizes[2] = 65535;
|
| 1382 | + This->colorsizes[3] = 65535;
|
| 1383 | + This->colorbits[0] = 16;
|
| 1384 | + This->colorbits[1] = 0;
|
| 1385 | + This->colorbits[2] = 0;
|
| 1386 | + This->colorbits[3] = 0;
|
| 1387 | + This->packsize = 1;
|
| 1388 | + break;
|
1344 | 1389 | case DXGLPIXELFORMAT_FOURCC_UYVY:
|
1345 | 1390 | case DXGLPIXELFORMAT_FOURCC_UYNV:
|
| 1391 | + case DXGLPIXELFORMAT_FOURCC_Y422:
|
1346 | 1392 | This->blttype = 0x80;
|
1347 | 1393 | This->internalformats[0] = GL_RGBA8;
|
1348 | 1394 | This->format = GL_BGRA;
|
— | — | @@ -1359,6 +1405,7 @@ |
1360 | 1406 | This->packsize = 2;
|
1361 | 1407 | break;
|
1362 | 1408 | case DXGLPIXELFORMAT_FOURCC_YUY2:
|
| 1409 | + case DXGLPIXELFORMAT_FOURCC_YUYV:
|
1363 | 1410 | case DXGLPIXELFORMAT_FOURCC_YUNV:
|
1364 | 1411 | This->blttype = 0x81;
|
1365 | 1412 | This->internalformats[0] = GL_RGBA8;
|
— | — | @@ -1376,7 +1423,7 @@ |
1377 | 1424 | This->colorbits[0] = 8;
|
1378 | 1425 | This->packsize = 2;
|
1379 | 1426 | break;
|
1380 | | - case DXGLPIXELFORMAT_FOURCC_RGBG:
|
| 1427 | + case DXGLPIXELFORMAT_FOURCC_YVYU:
|
1381 | 1428 | This->blttype = 0x82;
|
1382 | 1429 | This->internalformats[0] = GL_RGBA8;
|
1383 | 1430 | This->format = GL_BGRA;
|
— | — | @@ -1393,8 +1440,25 @@ |
1394 | 1441 | This->colorbits[0] = 8;
|
1395 | 1442 | This->packsize = 2;
|
1396 | 1443 | break;
|
| 1444 | + case DXGLPIXELFORMAT_FOURCC_RGBG:
|
| 1445 | + This->blttype = 0x9E;
|
| 1446 | + This->internalformats[0] = GL_RGBA8;
|
| 1447 | + This->format = GL_BGRA;
|
| 1448 | + This->type = GL_UNSIGNED_INT_8_8_8_8_REV;
|
| 1449 | + if (!This->target) This->target = GL_TEXTURE_RECTANGLE;
|
| 1450 | + This->colororder = 1;
|
| 1451 | + This->colorsizes[0] = 255;
|
| 1452 | + This->colorsizes[1] = 255;
|
| 1453 | + This->colorsizes[2] = 255;
|
| 1454 | + This->colorsizes[3] = 255;
|
| 1455 | + This->colorbits[0] = 8;
|
| 1456 | + This->colorbits[0] = 8;
|
| 1457 | + This->colorbits[0] = 8;
|
| 1458 | + This->colorbits[0] = 8;
|
| 1459 | + This->packsize = 2;
|
| 1460 | + break;
|
1397 | 1461 | case DXGLPIXELFORMAT_FOURCC_GRGB:
|
1398 | | - This->blttype = 0x83;
|
| 1462 | + This->blttype = 0x9F;
|
1399 | 1463 | This->internalformats[0] = GL_RGBA8;
|
1400 | 1464 | This->format = GL_BGRA;
|
1401 | 1465 | This->type = GL_UNSIGNED_INT_8_8_8_8_REV;
|
— | — | @@ -1410,6 +1474,23 @@ |
1411 | 1475 | This->colorbits[0] = 8;
|
1412 | 1476 | This->packsize = 2;
|
1413 | 1477 | break;
|
| 1478 | + case DXGLPIXELFORMAT_FOURCC_AYUV: // 32-bit AYUV
|
| 1479 | + This->blttype = 0x83;
|
| 1480 | + This->internalformats[0] = GL_RGBA8;
|
| 1481 | + This->format = GL_BGRA;
|
| 1482 | + This->type = GL_UNSIGNED_INT_8_8_8_8_REV;
|
| 1483 | + if (!This->target) This->target = GL_TEXTURE_2D;
|
| 1484 | + This->colororder = 1;
|
| 1485 | + This->colorsizes[0] = 255;
|
| 1486 | + This->colorsizes[1] = 255;
|
| 1487 | + This->colorsizes[2] = 255;
|
| 1488 | + This->colorsizes[3] = 255;
|
| 1489 | + This->colorbits[0] = 8;
|
| 1490 | + This->colorbits[1] = 8;
|
| 1491 | + This->colorbits[2] = 8;
|
| 1492 | + This->colorbits[3] = 8;
|
| 1493 | + This->packsize = 1;
|
| 1494 | + break;
|
1414 | 1495 | }
|
1415 | 1496 | glGenTextures(1, &This->id);
|
1416 | 1497 | glUtil_SetTexture(This->renderer->util, 0, This);
|
— | — | @@ -1471,14 +1552,23 @@ |
1472 | 1553 | {
|
1473 | 1554 | switch (This->levels[i].ddsd.ddpfPixelFormat.dwFourCC)
|
1474 | 1555 | {
|
| 1556 | + case MAKEFOURCC('Y', '8', ' ', ' '):
|
| 1557 | + case MAKEFOURCC('Y', '8', '0', '0'):
|
| 1558 | + case MAKEFOURCC('G', 'R', 'E', 'Y'):
|
| 1559 | + bytes = NextMultipleOf4(This->levels[i].ddsd.dwWidth);
|
| 1560 | + case MAKEFOURCC('Y', '1', '6', ' '):
|
1475 | 1561 | case MAKEFOURCC('U', 'Y', 'V', 'Y'):
|
1476 | 1562 | case MAKEFOURCC('U', 'Y', 'N', 'V'):
|
| 1563 | + case MAKEFOURCC('Y', '4', '2', '2'):
|
1477 | 1564 | case MAKEFOURCC('Y', 'U', 'Y', '2'):
|
| 1565 | + case MAKEFOURCC('Y', 'U', 'Y', 'V'):
|
1478 | 1566 | case MAKEFOURCC('Y', 'U', 'N', 'V'):
|
| 1567 | + case MAKEFOURCC('Y', 'V', 'Y', 'U'):
|
1479 | 1568 | case MAKEFOURCC('R', 'G', 'B', 'G'):
|
1480 | 1569 | case MAKEFOURCC('G', 'R', 'G', 'B'):
|
1481 | | - bytes = 2 * This->levels[i].ddsd.dwWidth;
|
| 1570 | + bytes = NextMultipleOf4(2 * This->levels[i].ddsd.dwWidth);
|
1482 | 1571 | break;
|
| 1572 | + case MAKEFOURCC('A', 'Y', 'U', 'V'):
|
1483 | 1573 | default:
|
1484 | 1574 | bytes = 4 * This->levels[i].ddsd.dwWidth;
|
1485 | 1575 | break;
|
Index: ddraw |
Property changes on: ddraw |
___________________________________________________________________ |
Modified: svn:ignore |
## -9,3 +9,5 ## |
1486 | 1576 | Debug Trace |
1487 | 1577 | Debug VS2017 |
1488 | 1578 | Release VS2017 |
| 1579 | +Debug VS2019 |
| 1580 | +Release VS2019 |
Index: dxglcfg/surfacegen.cpp |
— | — | @@ -267,8 +267,8 @@ |
268 | 268 | }
|
269 | 269 | }
|
270 | 270 | }
|
271 | | - else if((ddsd.ddpfPixelFormat.dwRBitMask | ddsd.ddpfPixelFormat.dwGBitMask |
|
272 | | - ddsd.ddpfPixelFormat.dwBBitMask) == 0xFFFF)
|
| 271 | + else if(((ddsd.ddpfPixelFormat.dwRBitMask | ddsd.ddpfPixelFormat.dwGBitMask |
|
| 272 | + ddsd.ddpfPixelFormat.dwBBitMask) == 0xFFFF) || (ddsd.ddpfPixelFormat.dwFlags & DDPF_FOURCC))
|
273 | 273 | {
|
274 | 274 | for(y = 0; y < ddsd.dwHeight; y++)
|
275 | 275 | {
|
— | — | @@ -1754,12 +1754,20 @@ |
1755 | 1755 | _T("32-bit Zbuffer"),
|
1756 | 1756 | _T("32-bit Z/stencil"),
|
1757 | 1757 | _T("32-bit Z/st.rev"),
|
| 1758 | + _T("8-bit Y8 "),
|
| 1759 | + _T("8-bit Y800"),
|
| 1760 | + _T("8-bit GREY"),
|
| 1761 | + _T("16-bit Y16 "),
|
1758 | 1762 | _T("16-bit UYVY"),
|
1759 | 1763 | _T("16-bit UYNV"),
|
| 1764 | + _T("16-bit Y422"),
|
1760 | 1765 | _T("16-bit YUY2"),
|
| 1766 | + _T("16-bit YUYV"),
|
1761 | 1767 | _T("16-bit YUNV"),
|
| 1768 | + _T("16-bit YVYU"),
|
1762 | 1769 | _T("16-bit RGBG"),
|
1763 | 1770 | _T("16-bit GRGB"),
|
| 1771 | + _T("32-bit AYUV"),
|
1764 | 1772 | };
|
1765 | 1773 | static const int END_SURFACEFORMATS = __LINE__ - 4;
|
1766 | 1774 | const int numsurfaceformats = END_SURFACEFORMATS - START_SURFACEFORMATS;
|
— | — | @@ -1792,12 +1800,20 @@ |
1793 | 1801 | {sizeof(DDPIXELFORMAT), DDPF_ZBUFFER, 0, 32, 0, 0xFFFFFFFF, 0, 0}, // 32 bit Z buffer
|
1794 | 1802 | {sizeof(DDPIXELFORMAT), DDPF_ZBUFFER, 0, 32, 8, 0xFFFFFF00, 0xFF, 0}, // 32 bit Z buffer with stencil
|
1795 | 1803 | {sizeof(DDPIXELFORMAT), DDPF_ZBUFFER, 0, 32, 8, 0xFF, 0xFFFFFF00, 0}, // 32 bit Z buffer with stencil, reversed
|
1796 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('U','Y','V','Y'), 0, 0, 0, 0, 0}, // UYVY YUV surface
|
1797 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('U','Y','N','V'), 0, 0, 0, 0, 0}, // UYVY YUV surface (NVIDIA alias)
|
1798 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','Y','2'), 0, 0, 0, 0, 0}, // YUY2 YUV surface
|
1799 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','N','V'), 0, 0, 0, 0, 0}, // YUY2 YUV surface (NVIDIA alias)
|
1800 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('R','G','B','G'), 0, 0, 0, 0, 0}, // RGBG 16-bit pixelformat
|
1801 | | - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('G','R','G','B'), 0, 0, 0, 0, 0}, // GRGB 16-bit pixelformat
|
| 1804 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','8',' ',' '), 8, 0, 0, 0, 0}, // 8-bit grayscale
|
| 1805 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','8','0','0'), 8, 0, 0, 0, 0}, // 8-bit grayscale
|
| 1806 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('G','R','E','Y'), 8, 0, 0, 0, 0}, // 8-bit grayscale
|
| 1807 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','1','6',' '), 16, 0, 0, 0, 0}, // 16-bit grayscale
|
| 1808 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('U','Y','V','Y'), 16, 0, 0, 0, 0}, // UYVY packed YUV surface
|
| 1809 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('U','Y','N','V'), 16, 0, 0, 0, 0}, // UYVY packed YUV surface (NVIDIA alias)
|
| 1810 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','4','2','2'), 16, 0, 0, 0, 0}, // UYVY packed YUV surface (ADS Tech. alias)
|
| 1811 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','Y','2'), 16, 0, 0, 0, 0}, // YUY2 packed YUV surface
|
| 1812 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','Y','V'), 16, 0, 0, 0, 0}, // YUY2 packed YUV surface (dup. of YUY2)
|
| 1813 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','U','N','V'), 16, 0, 0, 0, 0}, // YUY2 packed YUV surface (NVIDIA alias)
|
| 1814 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('Y','V','Y','U'), 16, 0, 0, 0, 0}, // YUY2 packed YUV surface
|
| 1815 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('R','G','B','G'), 16, 0, 0, 0, 0}, // RGBG packed 16-bit pixelformat
|
| 1816 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('G','R','G','B'), 16, 0, 0, 0, 0}, // GRGB packed 16-bit pixelformat
|
| 1817 | + {sizeof(DDPIXELFORMAT), DDPF_FOURCC, MAKEFOURCC('A','Y','U','V'), 32, 0, 0, 0, 0}, // AYUV packed YUV surface
|
1802 | 1818 | };
|
1803 | 1819 |
|
1804 | 1820 | static const LPTSTR strErrorMessages[] =
|
Index: dxglcfg |
Property changes on: dxglcfg |
___________________________________________________________________ |
Modified: svn:ignore |
## -6,3 +6,5 ## |
1805 | 1821 | *.user |
1806 | 1822 | Debug VS2017 |
1807 | 1823 | Release VS2017 |
| 1824 | +Debug VS2019 |
| 1825 | +Release VS2019 |
Index: . |
Property changes on: . |
___________________________________________________________________ |
Modified: svn:ignore |
## -18,3 +18,5 ## |
1808 | 1826 | dxgl.VC.opendb |
1809 | 1827 | Debug VS2017 |
1810 | 1828 | Release VS2017 |
| 1829 | +Debug VS2019 |
| 1830 | +Release VS2019 |