wined3d: Move struct wined3d_gl_info to struct wined3d_adapter_gl.

This commit is contained in:
Zebediah Figura 2023-01-06 13:38:02 -06:00 committed by Alexandre Julliard
parent 3624e1191d
commit 7c814a3e01
15 changed files with 50 additions and 45 deletions

View file

@ -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;
}

View file

@ -4878,7 +4878,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])
{
@ -5764,7 +5764,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
@ -7972,7 +7972,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

View file

@ -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);

View file

@ -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;

View file

@ -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;

View file

@ -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);

View file

@ -11192,7 +11192,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);
@ -11545,7 +11545,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);
@ -12042,7 +12042,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
@ -13306,7 +13306,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)

View file

@ -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;

View file

@ -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",

View file

@ -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);
}

View file

@ -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;

View file

@ -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, "

View file

@ -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;

View file

@ -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)
{

View file

@ -3156,7 +3156,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;
@ -3191,6 +3190,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;
};