Henri Verbeet : wined3d: Share common code between wined3d_adapter_init() and wined3d_adapter_no3d_init().
Alexandre Julliard
julliard at winehq.org
Thu Aug 16 13:42:48 CDT 2018
Module: wine
Branch: master
Commit: b96a6771a8805fab21c68258c19f16a5eecce04a
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b96a6771a8805fab21c68258c19f16a5eecce04a
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Thu Aug 16 12:27:21 2018 +0430
wined3d: Share common code between wined3d_adapter_init() and wined3d_adapter_no3d_init().
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/wined3d/directx.c | 48 +++++++++++++++++++++---------------------------
1 file changed, 21 insertions(+), 27 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 8f9449f..be03a1d 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -6601,7 +6601,7 @@ static DWORD get_max_gl_version(const struct wined3d_gl_info *gl_info, DWORD fla
return wined3d_settings.max_gl_version;
}
-static BOOL wined3d_adapter_init(struct wined3d_adapter *adapter, UINT ordinal, DWORD wined3d_creation_flags)
+static BOOL wined3d_adapter_opengl_init(struct wined3d_adapter *adapter, DWORD wined3d_creation_flags)
{
static const DWORD supported_gl_versions[] =
{
@@ -6611,13 +6611,10 @@ static BOOL wined3d_adapter_init(struct wined3d_adapter *adapter, UINT ordinal,
};
struct wined3d_gl_info *gl_info = &adapter->gl_info;
struct wined3d_caps_gl_ctx caps_gl_ctx = {0};
- unsigned int i;
- DISPLAY_DEVICEW display_device;
DWORD max_gl_version;
+ unsigned int i;
- TRACE("adapter %p, ordinal %u.\n", adapter, ordinal);
-
- adapter->ordinal = ordinal;
+ TRACE("adapter %p, wined3d_creation_flags %#x.\n", adapter, wined3d_creation_flags);
/* Dynamically load all GL core functions */
#ifdef USE_WIN32_OPENGL
@@ -6716,11 +6713,6 @@ static BOOL wined3d_adapter_init(struct wined3d_adapter *adapter, UINT ordinal,
adapter->vram_bytes_used = 0;
TRACE("Emulating 0x%s bytes of video ram.\n", wine_dbgstr_longlong(adapter->vram_bytes));
- display_device.cb = sizeof(display_device);
- EnumDisplayDevicesW(NULL, ordinal, &display_device, 0);
- TRACE("DeviceName: %s\n", debugstr_w(display_device.DeviceName));
- strcpyW(adapter->DeviceName, display_device.DeviceName);
-
wined3d_caps_gl_ctx_destroy(&caps_gl_ctx);
wined3d_adapter_init_ffp_attrib_ops(adapter);
@@ -6728,12 +6720,9 @@ static BOOL wined3d_adapter_init(struct wined3d_adapter *adapter, UINT ordinal,
return TRUE;
}
-static BOOL wined3d_adapter_no3d_init(struct wined3d_adapter *adapter, UINT ordinal)
+static BOOL wined3d_adapter_no3d_init(struct wined3d_adapter *adapter)
{
- DISPLAY_DEVICEW display_device;
-
- memset(adapter, 0, sizeof(*adapter));
- adapter->ordinal = ordinal;
+ TRACE("adapter %p.\n", adapter);
adapter->driver_info.name = "Display";
adapter->driver_info.description = "WineD3D DirectDraw Emulation";
@@ -6749,12 +6738,23 @@ static BOOL wined3d_adapter_no3d_init(struct wined3d_adapter *adapter, UINT ordi
adapter->fragment_pipe = &none_fragment_pipe;
adapter->shader_backend = &none_shader_backend;
+ return TRUE;
+}
+
+static BOOL wined3d_adapter_init(struct wined3d_adapter *adapter, unsigned int ordinal, DWORD wined3d_creation_flags)
+{
+ DISPLAY_DEVICEW display_device;
+
+ adapter->ordinal = ordinal;
+
display_device.cb = sizeof(display_device);
EnumDisplayDevicesW(NULL, ordinal, &display_device, 0);
- TRACE("DeviceName: %s\n", debugstr_w(display_device.DeviceName));
+ TRACE("Display device: %s\n", debugstr_w(display_device.DeviceName));
strcpyW(adapter->DeviceName, display_device.DeviceName);
- return TRUE;
+ if (wined3d_creation_flags & WINED3D_NO3D)
+ return wined3d_adapter_no3d_init(adapter);
+ return wined3d_adapter_opengl_init(adapter, wined3d_creation_flags);
}
static void STDMETHODCALLTYPE wined3d_null_wined3d_object_destroyed(void *parent) {}
@@ -6766,20 +6766,14 @@ const struct wined3d_parent_ops wined3d_null_parent_ops =
HRESULT wined3d_init(struct wined3d *wined3d, DWORD flags)
{
- BOOL ret;
-
wined3d->ref = 1;
wined3d->flags = flags;
- TRACE("Initializing adapters.\n");
+ TRACE("Initialising adapters.\n");
- if (flags & WINED3D_NO3D)
- ret = wined3d_adapter_no3d_init(&wined3d->adapters[0], 0);
- else
- ret = wined3d_adapter_init(&wined3d->adapters[0], 0, flags);
- if (!ret)
+ if (!wined3d_adapter_init(&wined3d->adapters[0], 0, flags))
{
- WARN("Failed to initialize adapter.\n");
+ WARN("Failed to initialise adapter.\n");
return E_FAIL;
}
wined3d->adapter_count = 1;
More information about the wine-cvs
mailing list