| 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 |