Commit 119c17e1 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Get resource info from the texture in surface_prepare_rb().

parent 576a74d1
...@@ -2146,6 +2146,9 @@ void surface_load_fb_texture(struct wined3d_surface *surface, BOOL srgb, struct ...@@ -2146,6 +2146,9 @@ void surface_load_fb_texture(struct wined3d_surface *surface, BOOL srgb, struct
static void surface_prepare_rb(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info, BOOL multisample) static void surface_prepare_rb(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info, BOOL multisample)
{ {
struct wined3d_texture *texture = surface->container;
const struct wined3d_format *format = texture->resource.format;
if (multisample) if (multisample)
{ {
DWORD samples; DWORD samples;
...@@ -2162,16 +2165,15 @@ static void surface_prepare_rb(struct wined3d_surface *surface, const struct win ...@@ -2162,16 +2165,15 @@ static void surface_prepare_rb(struct wined3d_surface *surface, const struct win
/* We advertise as many WINED3D_MULTISAMPLE_NON_MASKABLE quality levels /* We advertise as many WINED3D_MULTISAMPLE_NON_MASKABLE quality levels
* as the count of advertised multisample types for the surface format. */ * as the count of advertised multisample types for the surface format. */
if (surface->resource.multisample_type == WINED3D_MULTISAMPLE_NON_MASKABLE) if (texture->resource.multisample_type == WINED3D_MULTISAMPLE_NON_MASKABLE)
{ {
const struct wined3d_format *format = surface->resource.format;
unsigned int i, count = 0; unsigned int i, count = 0;
for (i = 0; i < sizeof(format->multisample_types) * 8; ++i) for (i = 0; i < sizeof(format->multisample_types) * 8; ++i)
{ {
if (format->multisample_types & 1u << i) if (format->multisample_types & 1u << i)
{ {
if (surface->resource.multisample_quality == count++) if (texture->resource.multisample_quality == count++)
break; break;
} }
} }
...@@ -2179,13 +2181,13 @@ static void surface_prepare_rb(struct wined3d_surface *surface, const struct win ...@@ -2179,13 +2181,13 @@ static void surface_prepare_rb(struct wined3d_surface *surface, const struct win
} }
else else
{ {
samples = surface->resource.multisample_type; samples = texture->resource.multisample_type;
} }
gl_info->fbo_ops.glGenRenderbuffers(1, &surface->rb_multisample); gl_info->fbo_ops.glGenRenderbuffers(1, &surface->rb_multisample);
gl_info->fbo_ops.glBindRenderbuffer(GL_RENDERBUFFER, surface->rb_multisample); gl_info->fbo_ops.glBindRenderbuffer(GL_RENDERBUFFER, surface->rb_multisample);
gl_info->fbo_ops.glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples, gl_info->fbo_ops.glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples,
surface->resource.format->glInternal, surface->pow2Width, surface->pow2Height); format->glInternal, surface->pow2Width, surface->pow2Height);
checkGLcall("glRenderbufferStorageMultisample()"); checkGLcall("glRenderbufferStorageMultisample()");
TRACE("Created multisample rb %u.\n", surface->rb_multisample); TRACE("Created multisample rb %u.\n", surface->rb_multisample);
} }
...@@ -2196,7 +2198,7 @@ static void surface_prepare_rb(struct wined3d_surface *surface, const struct win ...@@ -2196,7 +2198,7 @@ static void surface_prepare_rb(struct wined3d_surface *surface, const struct win
gl_info->fbo_ops.glGenRenderbuffers(1, &surface->rb_resolved); gl_info->fbo_ops.glGenRenderbuffers(1, &surface->rb_resolved);
gl_info->fbo_ops.glBindRenderbuffer(GL_RENDERBUFFER, surface->rb_resolved); gl_info->fbo_ops.glBindRenderbuffer(GL_RENDERBUFFER, surface->rb_resolved);
gl_info->fbo_ops.glRenderbufferStorage(GL_RENDERBUFFER, surface->resource.format->glInternal, gl_info->fbo_ops.glRenderbufferStorage(GL_RENDERBUFFER, format->glInternal,
surface->pow2Width, surface->pow2Height); surface->pow2Width, surface->pow2Height);
checkGLcall("glRenderbufferStorage()"); checkGLcall("glRenderbufferStorage()");
TRACE("Created resolved rb %u.\n", surface->rb_resolved); TRACE("Created resolved rb %u.\n", surface->rb_resolved);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment