This is significantly more convenient, and scriptable, than modifying the registry.
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/wined3d/wined3d_main.c | 41 +++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 18 deletions(-)
diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c index 5bddc2587f4..67066dcab42 100644 --- a/dlls/wined3d/wined3d_main.c +++ b/dlls/wined3d/wined3d_main.c @@ -206,6 +206,7 @@ static BOOL wined3d_dll_init(HINSTANCE hInstDLL) HKEY appkey = 0; DWORD tmpvalue; WNDCLASSA wc; + char *string;
wined3d_context_tls_idx = TlsAlloc(); if (wined3d_context_tls_idx == TLS_OUT_OF_INDEXES) @@ -373,24 +374,7 @@ static BOOL wined3d_dll_init(HINSTANCE hInstDLL) TRACE("Limiting PS shader model to %u.\n", wined3d_settings.max_sm_ps); if (!get_config_key_dword(hkey, appkey, "MaxShaderModelCS", &wined3d_settings.max_sm_cs)) TRACE("Limiting CS shader model to %u.\n", wined3d_settings.max_sm_cs); - if (!get_config_key(hkey, appkey, "renderer", buffer, size)) - { - if (!strcmp(buffer, "vulkan")) - { - ERR_(winediag)("Using the Vulkan renderer.\n"); - wined3d_settings.renderer = WINED3D_RENDERER_VULKAN; - } - else if (!strcmp(buffer, "gl")) - { - ERR_(winediag)("Using the OpenGL renderer.\n"); - wined3d_settings.renderer = WINED3D_RENDERER_OPENGL; - } - else if (!strcmp(buffer, "gdi") || !strcmp(buffer, "no3d")) - { - ERR_(winediag)("Disabling 3D support.\n"); - wined3d_settings.renderer = WINED3D_RENDERER_NO3D; - } - } + if (!get_config_key_dword(hkey, appkey, "cb_access_map_w", &tmpvalue) && tmpvalue) { TRACE("Forcing all constant buffers to be write-mappable.\n"); @@ -398,6 +382,27 @@ static BOOL wined3d_dll_init(HINSTANCE hInstDLL) } }
+ if (!(string = getenv("WINE_D3D_RENDERER")) && !get_config_key(hkey, appkey, "renderer", buffer, size)) + string = buffer; + if (string) + { + if (!strcmp(string, "vulkan")) + { + ERR_(winediag)("Using the Vulkan renderer.\n"); + wined3d_settings.renderer = WINED3D_RENDERER_VULKAN; + } + else if (!strcmp(string, "gl")) + { + ERR_(winediag)("Using the OpenGL renderer.\n"); + wined3d_settings.renderer = WINED3D_RENDERER_OPENGL; + } + else if (!strcmp(string, "gdi") || !strcmp(string, "no3d")) + { + ERR_(winediag)("Disabling 3D support.\n"); + wined3d_settings.renderer = WINED3D_RENDERER_NO3D; + } + } + if (appkey) RegCloseKey( appkey ); if (hkey) RegCloseKey( hkey );