[5/9] wined3d: Make d3d_level_from_gl_info return an enum instead of a plain int
Andrei Slăvoiu
andrei.slavoiu at gmail.com
Thu Jul 3 17:40:28 CDT 2014
---
dlls/wined3d/directx.c | 60 ++++++++++++++++++++++++++++++--------------------
1 file changed, 36 insertions(+), 24 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index b5f0f6a..45afa6a 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -74,6 +74,18 @@ enum wined3d_gl_vendor
GL_VENDOR_NVIDIA,
};
+enum wined3d_d3d_level
+{
+ D3D5,
+ D3D6,
+ D3D7,
+ D3D8,
+ D3D9_SM2,
+ D3D9_SM3,
+ D3D10,
+ D3D11,
+};
+
/* The d3d device ID */
static const GUID IID_D3DDEVICE_D3DUID = { 0xaeb2cdd4, 0x6e41, 0x43ea, { 0x94,0x1c,0x83,0x61,0xcc,0x76,0x07,0x81 } };
@@ -1651,25 +1663,25 @@ static enum wined3d_pci_vendor wined3d_guess_card_vendor(const char *gl_vendor_s
return HW_VENDOR_NVIDIA;
}
-static UINT d3d_level_from_gl_info(const struct wined3d_gl_info *gl_info)
+static enum wined3d_d3d_level d3d_level_from_gl_info(const struct wined3d_gl_info *gl_info)
{
- UINT level = 0;
+ enum wined3d_d3d_level level = D3D5;
if (gl_info->supported[ARB_MULTITEXTURE])
- level = 6;
+ level = D3D6;
if (gl_info->supported[ARB_TEXTURE_COMPRESSION]
&& gl_info->supported[ARB_TEXTURE_CUBE_MAP]
&& gl_info->supported[ARB_TEXTURE_ENV_DOT3])
- level = 7;
- if (level == 7 && gl_info->supported[ARB_MULTISAMPLE]
+ level = D3D7;
+ if (level == D3D7 && gl_info->supported[ARB_MULTISAMPLE]
&& gl_info->supported[ARB_TEXTURE_BORDER_CLAMP])
- level = 8;
- if (level == 8 && gl_info->supported[ARB_FRAGMENT_PROGRAM]
+ level = D3D8;
+ if (level == D3D8 && gl_info->supported[ARB_FRAGMENT_PROGRAM]
&& gl_info->supported[ARB_VERTEX_SHADER])
- level = 9;
- if (level == 9 && (gl_info->supported[EXT_GPU_SHADER4]
+ level = D3D9_SM2;
+ if (level == D3D9_SM2 && (gl_info->supported[EXT_GPU_SHADER4]
|| gl_info->glsl_version >= MAKEDWORD_VERSION(1, 30)))
- level = 10;
+ level = D3D10;
return level;
}
@@ -2143,40 +2155,40 @@ intel_gl_vendor_table[] =
static enum wined3d_pci_device select_card_fallback_nvidia(const struct wined3d_gl_info *gl_info)
{
- UINT d3d_level = d3d_level_from_gl_info(gl_info);
- if (d3d_level >= 10)
+ enum wined3d_d3d_level d3d_level = d3d_level_from_gl_info(gl_info);
+ if (d3d_level >= D3D10)
return CARD_NVIDIA_GEFORCE_8800GTX;
- if (d3d_level >= 9 && gl_info->supported[NV_VERTEX_PROGRAM3])
+ if (d3d_level >= D3D9_SM3)
return CARD_NVIDIA_GEFORCE_6800;
- if (d3d_level >= 9)
+ if (d3d_level >= D3D9_SM2)
return CARD_NVIDIA_GEFORCEFX_5800;
- if (d3d_level >= 8)
+ if (d3d_level >= D3D8)
return CARD_NVIDIA_GEFORCE3;
- if (d3d_level >= 7)
+ if (d3d_level >= D3D7)
return CARD_NVIDIA_GEFORCE;
- if (d3d_level >= 6)
+ if (d3d_level >= D3D6)
return CARD_NVIDIA_RIVA_TNT;
return CARD_NVIDIA_RIVA_128;
}
static enum wined3d_pci_device select_card_fallback_amd(const struct wined3d_gl_info *gl_info)
{
- UINT d3d_level = d3d_level_from_gl_info(gl_info);
- if (d3d_level >= 10)
+ enum wined3d_d3d_level d3d_level = d3d_level_from_gl_info(gl_info);
+ if (d3d_level >= D3D10)
return CARD_AMD_RADEON_HD2900;
- if (d3d_level >= 9)
+ if (d3d_level >= D3D9_SM2)
return CARD_AMD_RADEON_9500;
- if (d3d_level >= 8)
+ if (d3d_level >= D3D8)
return CARD_AMD_RADEON_8500;
- if (d3d_level >= 7)
+ if (d3d_level >= D3D7)
return CARD_AMD_RADEON_7200;
return CARD_AMD_RAGE_128PRO;
}
static enum wined3d_pci_device select_card_fallback_intel(const struct wined3d_gl_info *gl_info)
{
- UINT d3d_level = d3d_level_from_gl_info(gl_info);
- if (d3d_level >= 10)
+ enum wined3d_d3d_level d3d_level = d3d_level_from_gl_info(gl_info);
+ if (d3d_level >= D3D10)
return CARD_INTEL_G45;
return CARD_INTEL_915G;
}
--
2.0.0
More information about the wine-patches
mailing list