[D3D 74] Some texturing enumeration fixes.

Lionel Ulmer lionel.ulmer at free.fr
Thu Jan 2 15:35:40 CST 2003


Changelog:
 Fix order of texture enumeration to fix yet another set of dumb games.

-- 
		 Lionel Ulmer - http://www.bbrox.org/
-------------- next part --------------
--- /home/ulmer/Wine/wine_base//dlls/ddraw/d3ddevice/mesa.c	2003-01-02 18:01:42.000000000 +0100
+++ /home/ulmer/Wine/wine_work//dlls/ddraw/d3ddevice/mesa.c	2003-01-02 18:01:28.000000000 +0100
@@ -403,16 +403,8 @@
     if (cb_1) if (cb_1(&sdesc , context) == 0) return DD_OK;
     if (cb_2) if (cb_2(pformat, context) == 0) return DD_OK;
 
-    TRACE("Enumerating GL_RGBA packed GL_UNSIGNED_SHORT_5_5_5_1 (16)\n");
-    pformat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
-    pformat->u1.dwRGBBitCount = 16;
-    pformat->u2.dwRBitMask =        0x0000F800;
-    pformat->u3.dwGBitMask =        0x000007C0;
-    pformat->u4.dwBBitMask =        0x0000003E;
-    pformat->u5.dwRGBAlphaBitMask = 0x00000001;
-    if (cb_1) if (cb_1(&sdesc , context) == 0) return DD_OK;
-    if (cb_2) if (cb_2(pformat, context) == 0) return DD_OK;
-
+    /* Note : even if this is an 'emulated' texture format, it needs to be first
+              as some dumb applications seem to rely on that. */
     TRACE("Enumerating GL_RGBA packed GL_UNSIGNED_SHORT_1_5_5_5 (ARGB) (16)\n");
     pformat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
     pformat->u1.dwRGBBitCount = 16;
@@ -423,13 +415,13 @@
     if (cb_1) if (cb_1(&sdesc , context) == 0) return DD_OK;
     if (cb_2) if (cb_2(pformat, context) == 0) return DD_OK;
 
-    TRACE("Enumerating GL_RGBA packed GL_UNSIGNED_SHORT_4_4_4_4 (16)\n");
+    TRACE("Enumerating GL_RGBA packed GL_UNSIGNED_SHORT_5_5_5_1 (16)\n");
     pformat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
     pformat->u1.dwRGBBitCount = 16;
-    pformat->u2.dwRBitMask =        0x0000F000;
-    pformat->u3.dwGBitMask =        0x00000F00;
-    pformat->u4.dwBBitMask =        0x000000F0;
-    pformat->u5.dwRGBAlphaBitMask = 0x0000000F;
+    pformat->u2.dwRBitMask =        0x0000F800;
+    pformat->u3.dwGBitMask =        0x000007C0;
+    pformat->u4.dwBBitMask =        0x0000003E;
+    pformat->u5.dwRGBAlphaBitMask = 0x00000001;
     if (cb_1) if (cb_1(&sdesc , context) == 0) return DD_OK;
     if (cb_2) if (cb_2(pformat, context) == 0) return DD_OK;
 
@@ -443,6 +435,16 @@
     if (cb_1) if (cb_1(&sdesc , context) == 0) return DD_OK;
     if (cb_2) if (cb_2(pformat, context) == 0) return DD_OK;
 
+    TRACE("Enumerating GL_RGBA packed GL_UNSIGNED_SHORT_4_4_4_4 (16)\n");
+    pformat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
+    pformat->u1.dwRGBBitCount = 16;
+    pformat->u2.dwRBitMask =        0x0000F000;
+    pformat->u3.dwGBitMask =        0x00000F00;
+    pformat->u4.dwBBitMask =        0x000000F0;
+    pformat->u5.dwRGBAlphaBitMask = 0x0000000F;
+    if (cb_1) if (cb_1(&sdesc , context) == 0) return DD_OK;
+    if (cb_2) if (cb_2(pformat, context) == 0) return DD_OK;
+
     TRACE("Enumerating GL_RGB packed GL_UNSIGNED_BYTE_3_3_2 (8)\n");
     pformat->dwFlags = DDPF_RGB;
     pformat->u1.dwRGBBitCount = 8;


More information about the wine-patches mailing list