Stefan Dösinger : wined3d: Unify bpp to format conversion.

Alexandre Julliard julliard at winehq.org
Mon Dec 3 09:17:50 CST 2007


Module: wine
Branch: master
Commit: 8804a972d9acd918a7e384ebcac41776aab0564c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8804a972d9acd918a7e384ebcac41776aab0564c

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Fri Nov 30 16:29:49 2007 +0100

wined3d: Unify bpp to format conversion.

---

 dlls/wined3d/directx.c |   28 +++-------------------------
 dlls/wined3d/utils.c   |    4 ++--
 2 files changed, 5 insertions(+), 27 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 7b4ab8f..efe69eb 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1410,23 +1410,8 @@ static HRESULT WINAPI IWineD3DImpl_EnumAdapterModes(IWineD3D *iface, UINT Adapte
             if (DevModeW.dmFields & DM_DISPLAYFREQUENCY)
                 pMode->RefreshRate = DevModeW.dmDisplayFrequency;
 
-            if (Format == WINED3DFMT_UNKNOWN)
-            {
-                switch (DevModeW.dmBitsPerPel)
-                {
-                    case 8:
-                        pMode->Format = WINED3DFMT_P8;
-                        break;
-                    case 16:
-                        pMode->Format = WINED3DFMT_R5G6B5;
-                        break;
-                    case 32:
-                        pMode->Format = WINED3DFMT_X8R8G8B8;
-                        break;
-                    default:
-                        pMode->Format = WINED3DFMT_UNKNOWN;
-                        ERR("Unhandled bit depth (%u) in mode list!\n", DevModeW.dmBitsPerPel);
-                }
+            if (Format == WINED3DFMT_UNKNOWN) {
+                pMode->Format = pixelformat_for_depth(DevModeW.dmBitsPerPel);
             } else {
                 pMode->Format = Format;
             }
@@ -1479,14 +1464,7 @@ static HRESULT WINAPI IWineD3DImpl_GetAdapterDisplayMode(IWineD3D *iface, UINT A
             pMode->RefreshRate = DevModeW.dmDisplayFrequency;
         }
 
-        switch (bpp) {
-        case  8: pMode->Format       = WINED3DFMT_R3G3B2;   break;
-        case 16: pMode->Format       = WINED3DFMT_R5G6B5;   break;
-        case 24: pMode->Format       = WINED3DFMT_X8R8G8B8; break; /* Robots needs 24bit to be X8R8G8B8 */
-        case 32: pMode->Format       = WINED3DFMT_X8R8G8B8; break; /* EVE online and the Fur demo need 32bit AdapterDisplatMode to return X8R8G8B8 */
-        default: pMode->Format       = WINED3DFMT_UNKNOWN;
-        }
-
+        pMode->Format = pixelformat_for_depth(bpp);
     } else {
         FIXME_(d3d_caps)("Adapter not primary display\n");
     }
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 15b37ea..2b7aa40 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -2697,8 +2697,8 @@ WINED3DFORMAT pixelformat_for_depth(DWORD depth) {
         case 8:  return WINED3DFMT_P8;
         case 15: return WINED3DFMT_X1R5G5B5;
         case 16: return WINED3DFMT_R5G6B5;
-        case 24: return WINED3DFMT_R8G8B8;
-        case 32: return WINED3DFMT_X8R8G8B8;
+        case 24: return WINED3DFMT_X8R8G8B8; /* Robots needs 24bit to be X8R8G8B8 */
+        case 32: return WINED3DFMT_X8R8G8B8; /* EVE online and the Fur demo need 32bit AdapterDisplatMode to return X8R8G8B8 */
         default: return WINED3DFMT_UNKNOWN;
     }
 }




More information about the wine-cvs mailing list