wined3d: Store multisample draw location in struct wined3d_d3d_info.
We may want to introduce a separate structure for backend options if we have more of those. Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
243f289149
commit
05f096e783
|
@ -3738,6 +3738,11 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
|
||||||
|
|
||||||
d3d_info->draw_base_vertex_offset = !!gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX];
|
d3d_info->draw_base_vertex_offset = !!gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX];
|
||||||
|
|
||||||
|
if (gl_info->supported[ARB_TEXTURE_MULTISAMPLE])
|
||||||
|
d3d_info->multisample_draw_location = WINED3D_LOCATION_TEXTURE_RGB;
|
||||||
|
else
|
||||||
|
d3d_info->multisample_draw_location = WINED3D_LOCATION_RB_MULTISAMPLE;
|
||||||
|
|
||||||
TRACE("Max texture stages: %u.\n", d3d_info->limits.ffp_blend_stages);
|
TRACE("Max texture stages: %u.\n", d3d_info->limits.ffp_blend_stages);
|
||||||
|
|
||||||
if (!d3d_info->shader_color_key)
|
if (!d3d_info->shader_color_key)
|
||||||
|
|
|
@ -481,17 +481,15 @@ BOOL wined3d_resource_is_offscreen(struct wined3d_resource *resource)
|
||||||
|
|
||||||
void wined3d_resource_update_draw_binding(struct wined3d_resource *resource)
|
void wined3d_resource_update_draw_binding(struct wined3d_resource *resource)
|
||||||
{
|
{
|
||||||
|
const struct wined3d_d3d_info *d3d_info = &resource->device->adapter->d3d_info;
|
||||||
|
|
||||||
if (!wined3d_resource_is_offscreen(resource) || wined3d_settings.offscreen_rendering_mode != ORM_FBO)
|
if (!wined3d_resource_is_offscreen(resource) || wined3d_settings.offscreen_rendering_mode != ORM_FBO)
|
||||||
{
|
{
|
||||||
resource->draw_binding = WINED3D_LOCATION_DRAWABLE;
|
resource->draw_binding = WINED3D_LOCATION_DRAWABLE;
|
||||||
}
|
}
|
||||||
else if (resource->multisample_type)
|
else if (resource->multisample_type)
|
||||||
{
|
{
|
||||||
const struct wined3d_gl_info *gl_info = &resource->device->adapter->gl_info;
|
resource->draw_binding = d3d_info->multisample_draw_location;
|
||||||
if (gl_info->supported[ARB_TEXTURE_MULTISAMPLE])
|
|
||||||
resource->draw_binding = WINED3D_LOCATION_TEXTURE_RGB;
|
|
||||||
else
|
|
||||||
resource->draw_binding = WINED3D_LOCATION_RB_MULTISAMPLE;
|
|
||||||
}
|
}
|
||||||
else if (resource->gl_type == WINED3D_GL_RES_TYPE_RB)
|
else if (resource->gl_type == WINED3D_GL_RES_TYPE_RB)
|
||||||
{
|
{
|
||||||
|
|
|
@ -207,6 +207,8 @@ struct wined3d_d3d_info
|
||||||
unsigned int texture_npot_conditional : 1;
|
unsigned int texture_npot_conditional : 1;
|
||||||
unsigned int draw_base_vertex_offset : 1;
|
unsigned int draw_base_vertex_offset : 1;
|
||||||
enum wined3d_feature_level feature_level;
|
enum wined3d_feature_level feature_level;
|
||||||
|
|
||||||
|
DWORD multisample_draw_location;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct color_fixup_desc COLOR_FIXUP_IDENTITY =
|
static const struct color_fixup_desc COLOR_FIXUP_IDENTITY =
|
||||||
|
|
Loading…
Reference in New Issue