From: Zebediah Figura zfigura@codeweavers.com
--- dlls/wined3d/adapter_gl.c | 36 +++++++++++++++------------- dlls/wined3d/arb_program_shader.c | 6 ++--- dlls/wined3d/buffer.c | 2 +- dlls/wined3d/context_gl.c | 4 ++-- dlls/wined3d/device.c | 2 +- dlls/wined3d/directx.c | 4 +++- dlls/wined3d/glsl_shader.c | 8 +++---- dlls/wined3d/nvidia_texture_shader.c | 2 +- dlls/wined3d/query.c | 14 +++++------ dlls/wined3d/sampler.c | 2 +- dlls/wined3d/state.c | 4 ++-- dlls/wined3d/texture.c | 2 +- dlls/wined3d/utils.c | 2 +- dlls/wined3d/view.c | 4 ++-- dlls/wined3d/wined3d_private.h | 3 ++- 15 files changed, 50 insertions(+), 45 deletions(-)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index d253a8d70bb..f1216ddd89b 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -304,7 +304,7 @@ static BOOL wined3d_caps_gl_ctx_create_attribs(struct wined3d_caps_gl_ctx *caps_ return TRUE; }
-static BOOL wined3d_caps_gl_ctx_create(struct wined3d_adapter *adapter, struct wined3d_caps_gl_ctx *ctx) +static BOOL wined3d_caps_gl_ctx_create(struct wined3d_adapter_gl *adapter_gl, struct wined3d_caps_gl_ctx *ctx) { PIXELFORMATDESCRIPTOR pfd; int iPixelFormat; @@ -362,7 +362,7 @@ static BOOL wined3d_caps_gl_ctx_create(struct wined3d_adapter *adapter, struct w goto fail; }
- ctx->gl_info = &adapter->gl_info; + ctx->gl_info = &adapter_gl->gl_info; return TRUE;
fail: @@ -3249,7 +3249,7 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info) }
/* Context activation is done by the caller. */ -static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, +static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter_gl *adapter_gl, struct wined3d_caps_gl_ctx *caps_gl_ctx, unsigned int wined3d_creation_flags) { static const struct @@ -3394,7 +3394,8 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, {ARB_TEXTURE_FILTER_ANISOTROPIC, MAKEDWORD_VERSION(4, 6)}, }; const char *gl_vendor_str, *gl_renderer_str, *gl_version_str; - struct wined3d_gl_info *gl_info = &adapter->gl_info; + struct wined3d_gl_info *gl_info = &adapter_gl->gl_info; + struct wined3d_adapter *adapter = &adapter_gl->a; unsigned int gl_version; DWORD gl_ext_emul_mask; const char *WGL_Extensions = NULL; @@ -3403,7 +3404,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, unsigned int i, j; HDC hdc;
- TRACE("adapter %p.\n", adapter); + TRACE("adapter_gl %p.\n", adapter_gl);
gl_renderer_str = (const char *)gl_info->gl_ops.gl.p_glGetString(GL_RENDERER); TRACE("GL_RENDERER: %s.\n", debugstr_a(gl_renderer_str)); @@ -4015,10 +4016,10 @@ static void WINE_GLAPI generic_float16_4(GLuint idx, const void *data) gl_info->gl_ops.ext.p_glVertexAttrib4f(idx, x, y, z, w); }
-static void wined3d_adapter_init_ffp_attrib_ops(struct wined3d_adapter *adapter) +static void wined3d_adapter_init_ffp_attrib_ops(struct wined3d_adapter_gl *adapter_gl) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; - struct wined3d_d3d_info *d3d_info = &adapter->d3d_info; + const struct wined3d_gl_info *gl_info = &adapter_gl->gl_info; + struct wined3d_d3d_info *d3d_info = &adapter_gl->a.d3d_info; struct wined3d_ffp_attrib_ops *ops = &d3d_info->ffp_attrib_ops; unsigned int i;
@@ -4112,7 +4113,7 @@ static void wined3d_adapter_init_ffp_attrib_ops(struct wined3d_adapter *adapter)
static void wined3d_adapter_init_fb_cfgs(struct wined3d_adapter_gl *adapter_gl, HDC dc) { - const struct wined3d_gl_info *gl_info = &adapter_gl->a.gl_info; + const struct wined3d_gl_info *gl_info = &adapter_gl->gl_info; int i;
if (gl_info->supported[WGL_ARB_PIXEL_FORMAT]) @@ -4263,7 +4264,8 @@ static HRESULT adapter_gl_create_device(struct wined3d *wined3d, const struct wi device_gl->current_fence_id = 1;
if (FAILED(hr = wined3d_device_init(&device_gl->d, wined3d, adapter->ordinal, device_type, focus_window, - flags, surface_alignment, levels, level_count, adapter->gl_info.supported, device_parent))) + flags, surface_alignment, levels, level_count, + wined3d_adapter_gl_const(adapter)->gl_info.supported, device_parent))) { WARN("Failed to initialize device, hr %#lx.\n", hr); heap_free(device_gl); @@ -4300,8 +4302,8 @@ static void adapter_gl_release_context(struct wined3d_context *context)
static void adapter_gl_get_wined3d_caps(const struct wined3d_adapter *adapter, struct wined3d_caps *caps) { + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info; const struct wined3d_d3d_info *d3d_info = &adapter->d3d_info; - const struct wined3d_gl_info *gl_info = &adapter->gl_info;
caps->ddraw_caps.dds_caps |= WINEDDSCAPS_BACKBUFFER | WINEDDSCAPS_COMPLEX @@ -4612,7 +4614,7 @@ static void adapter_gl_flush_bo_address(struct wined3d_context *context, static bool adapter_gl_alloc_bo(struct wined3d_device *device, struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_bo_address *addr) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_device_gl *device_gl = wined3d_device_gl(device); struct wined3d_bo_gl *bo_gl; GLenum binding, usage; @@ -5165,7 +5167,7 @@ static const struct wined3d_adapter_ops wined3d_adapter_gl_ops =
static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_gl, uint32_t wined3d_creation_flags) { - const struct wined3d_gl_info *gl_info = &adapter_gl->a.gl_info; + const struct wined3d_gl_info *gl_info = &adapter_gl->gl_info; struct wined3d_d3d_info *d3d_info = &adapter_gl->a.d3d_info; struct wined3d_vertex_caps vertex_caps; struct fragment_caps fragment_caps; @@ -5295,7 +5297,7 @@ static BOOL wined3d_adapter_gl_init(struct wined3d_adapter_gl *adapter_gl, MAKEDWORD_VERSION(1, 0), }; struct wined3d_driver_info *driver_info = &adapter_gl->a.driver_info; - struct wined3d_gl_info *gl_info = &adapter_gl->a.gl_info; + struct wined3d_gl_info *gl_info = &adapter_gl->gl_info; struct wined3d_caps_gl_ctx caps_gl_ctx = {0}; LUID primary_luid, *luid = NULL; unsigned int i; @@ -5322,7 +5324,7 @@ static BOOL wined3d_adapter_gl_init(struct wined3d_adapter_gl *adapter_gl, gl_info->p_glEnableWINE = gl_info->gl_ops.gl.p_glEnable; gl_info->p_glDisableWINE = gl_info->gl_ops.gl.p_glDisable;
- if (!wined3d_caps_gl_ctx_create(&adapter_gl->a, &caps_gl_ctx)) + if (!wined3d_caps_gl_ctx_create(adapter_gl, &caps_gl_ctx)) { ERR("Failed to get a GL context for adapter %p.\n", adapter_gl); return FALSE; @@ -5351,7 +5353,7 @@ static BOOL wined3d_adapter_gl_init(struct wined3d_adapter_gl *adapter_gl, supported_gl_versions[i] >> 16, supported_gl_versions[i] & 0xffff); }
- if (!wined3d_adapter_init_gl_caps(&adapter_gl->a, &caps_gl_ctx, wined3d_creation_flags)) + if (!wined3d_adapter_init_gl_caps(adapter_gl, &caps_gl_ctx, wined3d_creation_flags)) { ERR("Failed to initialize GL caps for adapter %p.\n", adapter_gl); wined3d_caps_gl_ctx_destroy(&caps_gl_ctx); @@ -5404,7 +5406,7 @@ static BOOL wined3d_adapter_gl_init(struct wined3d_adapter_gl *adapter_gl,
wined3d_caps_gl_ctx_destroy(&caps_gl_ctx);
- wined3d_adapter_init_ffp_attrib_ops(&adapter_gl->a); + wined3d_adapter_init_ffp_attrib_ops(adapter_gl);
return TRUE; } diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 592216051c2..221eea3c23f 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -4855,7 +4855,7 @@ static void shader_arb_init_context_state(struct wined3d_context *context) {}
static void shader_arb_get_caps(const struct wined3d_adapter *adapter, struct shader_caps *caps) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info;
if (gl_info->supported[ARB_VERTEX_PROGRAM]) { @@ -5741,7 +5741,7 @@ static void arbfp_free(struct wined3d_device *device, struct wined3d_context *co
static void arbfp_get_caps(const struct wined3d_adapter *adapter, struct fragment_caps *caps) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info;
caps->wined3d_caps = WINED3D_FRAGMENT_CAP_PROJ_CONTROL | WINED3D_FRAGMENT_CAP_SRGB_WRITE @@ -7949,7 +7949,7 @@ static const struct wined3d_blitter_ops arbfp_blitter_ops =
void wined3d_arbfp_blitter_create(struct wined3d_blitter **next, const struct wined3d_device *device) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_arbfp_blitter *blitter;
if (device->shader_backend != &arb_program_shader_backend diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index a3881438976..42ec9013c4d 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -1426,7 +1426,7 @@ HRESULT wined3d_buffer_gl_init(struct wined3d_buffer_gl *buffer_gl, struct wined const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info;
TRACE("buffer_gl %p, device %p, desc %p, data %p, parent %p, parent_ops %p.\n", buffer_gl, device, desc, data, parent, parent_ops); diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c index a8c5160a5b3..df317b07db8 100644 --- a/dlls/wined3d/context_gl.c +++ b/dlls/wined3d/context_gl.c @@ -1940,7 +1940,7 @@ static BOOL wined3d_context_gl_create_wgl_ctx(struct wined3d_context_gl *context
device = context->device; adapter = device->adapter; - gl_info = &adapter->gl_info; + gl_info = &wined3d_adapter_gl(adapter)->gl_info;
target = &context->current_rt.texture->resource; target_bind_flags = target->bind_flags; @@ -2101,7 +2101,7 @@ HRESULT wined3d_context_gl_init(struct wined3d_context_gl *context_gl, struct wi wined3d_context_init(&context_gl->c, &swapchain_gl->s);
device = context->device; - gl_info = &device->adapter->gl_info; + gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; context_gl->gl_info = gl_info; d3d_info = context->d3d_info;
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index deb6d3dc210..a20a5bfafa6 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1114,8 +1114,8 @@ static bool use_buffer_chunk_suballocation(struct wined3d_device_gl *device_gl, bool wined3d_device_gl_create_bo(struct wined3d_device_gl *device_gl, struct wined3d_context_gl *context_gl, GLsizeiptr size, GLenum binding, GLenum usage, bool coherent, GLbitfield flags, struct wined3d_bo_gl *bo) { + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device_gl->d.adapter)->gl_info; unsigned int memory_type_idx = wined3d_device_gl_find_memory_type(flags); - const struct wined3d_gl_info *gl_info = &device_gl->d.adapter->gl_info; struct wined3d_allocator_block *memory = NULL; GLsizeiptr buffer_offset = 0; GLuint id = 0; diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index b77c1f4e133..85c71ed14ba 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -2856,6 +2856,8 @@ static HRESULT adapter_no3d_create_device(struct wined3d *wined3d, const struct const enum wined3d_feature_level *levels, unsigned int level_count, struct wined3d_device_parent *device_parent, struct wined3d_device **device) { + /* No extensions in the state table, only extension 0, which is implicitly supported. */ + static const BOOL supported_extensions[] = {TRUE}; struct wined3d_device_no3d *device_no3d; HRESULT hr;
@@ -2863,7 +2865,7 @@ static HRESULT adapter_no3d_create_device(struct wined3d *wined3d, const struct return E_OUTOFMEMORY;
if (FAILED(hr = wined3d_device_init(&device_no3d->d, wined3d, adapter->ordinal, device_type, focus_window, - flags, surface_alignment, levels, level_count, adapter->gl_info.supported, device_parent))) + flags, surface_alignment, levels, level_count, supported_extensions, device_parent))) { WARN("Failed to initialize device, hr %#lx.\n", hr); heap_free(device_no3d); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 7dc0de1b596..efdf28adcbf 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -11173,7 +11173,7 @@ static unsigned int shader_glsl_get_shader_model(const struct wined3d_gl_info *g
static void shader_glsl_get_caps(const struct wined3d_adapter *adapter, struct shader_caps *caps) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info; unsigned int shader_model = shader_glsl_get_shader_model(gl_info);
TRACE("Shader model %u.\n", shader_model); @@ -11526,7 +11526,7 @@ static void glsl_vertex_pipe_vp_enable(const struct wined3d_context *context, BO
static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_adapter *adapter, struct wined3d_vertex_caps *caps) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info;
caps->xyzrhw = TRUE; caps->emulated_flatshading = !needs_legacy_glsl_syntax(gl_info); @@ -12023,7 +12023,7 @@ static void glsl_fragment_pipe_enable(const struct wined3d_context *context, BOO
static void glsl_fragment_pipe_get_caps(const struct wined3d_adapter *adapter, struct fragment_caps *caps) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info;
caps->wined3d_caps = WINED3D_FRAGMENT_CAP_PROJ_CONTROL | WINED3D_FRAGMENT_CAP_SRGB_WRITE @@ -13287,7 +13287,7 @@ static const struct wined3d_blitter_ops glsl_blitter_ops = struct wined3d_blitter *wined3d_glsl_blitter_create(struct wined3d_blitter **next, const struct wined3d_device *device) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_glsl_blitter *blitter;
if (device->shader_backend != &glsl_shader_backend) diff --git a/dlls/wined3d/nvidia_texture_shader.c b/dlls/wined3d/nvidia_texture_shader.c index d25a314e2cb..e3d9f4fbf30 100644 --- a/dlls/wined3d/nvidia_texture_shader.c +++ b/dlls/wined3d/nvidia_texture_shader.c @@ -694,7 +694,7 @@ static void nvts_enable(const struct wined3d_context *context, BOOL enable)
static void nvrc_fragment_get_caps(const struct wined3d_adapter *adapter, struct fragment_caps *caps) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info;
caps->wined3d_caps = 0; caps->PrimitiveMiscCaps = WINED3DPMISCCAPS_TSSARGTEMP; diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c index 8e5f60cc7fc..6894dc050a9 100644 --- a/dlls/wined3d/query.c +++ b/dlls/wined3d/query.c @@ -388,7 +388,7 @@ static HRESULT wined3d_fence_init(struct wined3d_fence *fence, const struct wine
HRESULT wined3d_fence_create(struct wined3d_device *device, struct wined3d_fence **fence) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_fence *object; HRESULT hr;
@@ -1038,7 +1038,7 @@ static HRESULT wined3d_event_query_create(struct wined3d_device *device, enum wined3d_query_type type, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_event_query *object; HRESULT hr;
@@ -1084,7 +1084,7 @@ static HRESULT wined3d_occlusion_query_create(struct wined3d_device *device, enum wined3d_query_type type, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_occlusion_query *object;
TRACE("device %p, type %#x, parent %p, parent_ops %p, query %p.\n", @@ -1128,7 +1128,7 @@ static HRESULT wined3d_timestamp_query_create(struct wined3d_device *device, enum wined3d_query_type type, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_timestamp_query *object;
TRACE("device %p, type %#x, parent %p, parent_ops %p, query %p.\n", @@ -1168,7 +1168,7 @@ static HRESULT wined3d_timestamp_disjoint_query_create(struct wined3d_device *de enum wined3d_query_type type, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_query *object;
TRACE("device %p, type %#x, parent %p, parent_ops %p, query %p.\n", @@ -1224,7 +1224,7 @@ static HRESULT wined3d_so_statistics_query_create(struct wined3d_device *device, enum wined3d_query_type type, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_so_statistics_query *object; unsigned int stream_idx;
@@ -1281,7 +1281,7 @@ static HRESULT wined3d_pipeline_query_create(struct wined3d_device *device, enum wined3d_query_type type, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; struct wined3d_pipeline_statistics_query *object;
TRACE("device %p, type %#x, parent %p, parent_ops %p, query %p.\n", diff --git a/dlls/wined3d/sampler.c b/dlls/wined3d/sampler.c index e6c226af1af..b4b169a59d4 100644 --- a/dlls/wined3d/sampler.c +++ b/dlls/wined3d/sampler.c @@ -134,7 +134,7 @@ void wined3d_sampler_gl_init(struct wined3d_sampler_gl *sampler_gl, struct wined
wined3d_sampler_init(&sampler_gl->s, device, desc, parent, parent_ops);
- if (device->adapter->gl_info.supported[ARB_SAMPLER_OBJECTS]) + if (wined3d_adapter_gl(device->adapter)->gl_info.supported[ARB_SAMPLER_OBJECTS]) wined3d_cs_init_object(device->cs, wined3d_sampler_gl_cs_init, sampler_gl); }
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 6262df2090d..26cae888345 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -5109,7 +5109,7 @@ static void ffp_free(struct wined3d_device *device, struct wined3d_context *cont
static void vp_ffp_get_caps(const struct wined3d_adapter *adapter, struct wined3d_vertex_caps *caps) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info;
caps->xyzrhw = FALSE; caps->ffp_generic_attributes = FALSE; @@ -5147,7 +5147,7 @@ const struct wined3d_vertex_pipe_ops ffp_vertex_pipe =
static void ffp_fragment_get_caps(const struct wined3d_adapter *adapter, struct fragment_caps *caps) { - const struct wined3d_gl_info *gl_info = &adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info;
caps->wined3d_caps = 0; caps->PrimitiveMiscCaps = 0; diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 78b1f52221c..186110f4d12 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -4303,7 +4303,7 @@ HRESULT wined3d_texture_gl_init(struct wined3d_texture_gl *texture_gl, struct wi const struct wined3d_resource_desc *desc, unsigned int layer_count, unsigned int level_count, uint32_t flags, void *parent, const struct wined3d_parent_ops *parent_ops) { - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; + const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(device->adapter)->gl_info; HRESULT hr;
TRACE("texture_gl %p, device %p, desc %p, layer_count %u, " diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index 3618490b1c7..2734a193e1f 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -4218,7 +4218,7 @@ BOOL wined3d_adapter_no3d_init_format_info(struct wined3d_adapter *adapter) /* Context activation is done by the caller. */ BOOL wined3d_adapter_gl_init_format_info(struct wined3d_adapter *adapter, struct wined3d_caps_gl_ctx *ctx) { - struct wined3d_gl_info *gl_info = &adapter->gl_info; + struct wined3d_gl_info *gl_info = &wined3d_adapter_gl(adapter)->gl_info;
if (!wined3d_adapter_init_format_info(adapter, sizeof(struct wined3d_format_gl))) return FALSE; diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c index d318318d2b3..05d607649bc 100644 --- a/dlls/wined3d/view.c +++ b/dlls/wined3d/view.c @@ -1014,7 +1014,7 @@ static void wined3d_shader_resource_view_gl_cs_init(void *object) TRACE("view_gl %p.\n", view_gl);
view_format = view_gl->v.format; - gl_info = &resource->device->adapter->gl_info; + gl_info = &wined3d_adapter_gl(resource->device->adapter)->gl_info; desc = &view_gl->v.desc;
if (resource->type == WINED3D_RTYPE_BUFFER) @@ -1725,7 +1725,7 @@ static void wined3d_unordered_access_view_gl_cs_init(void *object)
TRACE("view_gl %p.\n", view_gl);
- gl_info = &resource->device->adapter->gl_info; + gl_info = &wined3d_adapter_gl(resource->device->adapter)->gl_info;
if (resource->type == WINED3D_RTYPE_BUFFER) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index d9ac9a52b86..dfd31673ce7 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -3158,7 +3158,6 @@ struct wined3d_adapter { unsigned int ordinal;
- struct wined3d_gl_info gl_info; struct wined3d_d3d_info d3d_info; struct wined3d_driver_info driver_info; struct wined3d_output *outputs; @@ -3193,6 +3192,8 @@ struct wined3d_adapter_gl { struct wined3d_adapter a;
+ struct wined3d_gl_info gl_info; + struct wined3d_pixel_format *pixel_formats; unsigned int pixel_format_count; };