[PATCH 1/9] wined3d: Use the texture dimension helpers in context_find_fbo_entry().

Henri Verbeet hverbeet at codeweavers.com
Sun Apr 17 12:07:49 CDT 2016


Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 dlls/wined3d/context.c | 52 +++++++++++++++++++++++++++-----------------------
 1 file changed, 28 insertions(+), 24 deletions(-)

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 3cd7c8c..e33d37e 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -474,30 +474,30 @@ static struct fbo_entry *context_find_fbo_entry(struct wined3d_context *context,
         DWORD color_location, DWORD ds_location)
 {
     const struct wined3d_gl_info *gl_info = context->gl_info;
+    unsigned int object_count = gl_info->limits.buffers + 1;
+    struct wined3d_texture *rt_texture, *ds_texture;
     struct fbo_entry *entry;
-    UINT object_count = gl_info->limits.buffers + 1;
     unsigned int i;
 
     if (depth_stencil && render_targets[0])
     {
-        if (wined3d_texture_get_level_width(depth_stencil->container, depth_stencil->texture_level)
-                < wined3d_texture_get_level_width(render_targets[0]->container, render_targets[0]->texture_level)
-                || wined3d_texture_get_level_height(depth_stencil->container, depth_stencil->texture_level)
-                < wined3d_texture_get_level_height(render_targets[0]->container, render_targets[0]->texture_level))
+        rt_texture = render_targets[0]->container;
+        ds_texture = depth_stencil->container;
+
+        if (wined3d_texture_get_level_width(ds_texture, depth_stencil->texture_level)
+                < wined3d_texture_get_level_width(rt_texture, render_targets[0]->texture_level)
+                || wined3d_texture_get_level_height(ds_texture, depth_stencil->texture_level)
+                < wined3d_texture_get_level_height(rt_texture, render_targets[0]->texture_level))
         {
-            WARN("Depth stencil is smaller than the primary color buffer, disabling\n");
+            WARN("Depth stencil is smaller than the primary color buffer, disabling.\n");
             depth_stencil = NULL;
         }
-        else if (depth_stencil->container->resource.multisample_type
-                != render_targets[0]->container->resource.multisample_type
-                || depth_stencil->container->resource.multisample_quality
-                != render_targets[0]->container->resource.multisample_quality)
+        else if (ds_texture->resource.multisample_type != rt_texture->resource.multisample_type
+                || ds_texture->resource.multisample_quality != rt_texture->resource.multisample_quality)
         {
             WARN("Color multisample type %u and quality %u, depth stencil has %u and %u, disabling ds buffer.\n",
-                    render_targets[0]->container->resource.multisample_type,
-                    render_targets[0]->container->resource.multisample_quality,
-                    depth_stencil->container->resource.multisample_type,
-                    depth_stencil->container->resource.multisample_quality);
+                    rt_texture->resource.multisample_type, rt_texture->resource.multisample_quality,
+                    ds_texture->resource.multisample_type, ds_texture->resource.multisample_quality);
             depth_stencil = NULL;
         }
         else
@@ -514,22 +514,26 @@ static struct fbo_entry *context_find_fbo_entry(struct wined3d_context *context,
         {
             if (render_targets[i])
             {
-                TRACE("    Color attachment %u: (%p) %s gl obj %u(%s) %ux%u %u samples.\n",
-                        i, render_targets[i], debug_d3dformat(render_targets[i]->container->resource.format->id),
+                rt_texture = render_targets[i]->container;
+                TRACE("    Color attachment %u: %p format %s, %s %u, %ux%u, %u samples.\n",
+                        i, render_targets[i], debug_d3dformat(rt_texture->resource.format->id),
+                        context->fbo_key->rb_namespace & (1 << (i + 1)) ? "renderbuffer" : "texure",
                         context->fbo_key->objects[i + 1].object,
-                        context->fbo_key->rb_namespace & (1 << (i + 1)) ? "rb" : "texure",
-                        render_targets[i]->pow2Width, render_targets[i]->pow2Height,
-                        render_targets[i]->container->resource.multisample_type);
+                        wined3d_texture_get_level_pow2_width(rt_texture, render_targets[i]->texture_level),
+                        wined3d_texture_get_level_pow2_height(rt_texture, render_targets[i]->texture_level),
+                        rt_texture->resource.multisample_type);
             }
         }
         if (depth_stencil)
         {
-            TRACE("    Depth attachment: (%p) %s gl obj %u(%s) %ux%u %u samples.\n",
-                    depth_stencil, debug_d3dformat(depth_stencil->container->resource.format->id),
+            ds_texture = depth_stencil->container;
+            TRACE("    Depth attachment: %p format %s, %s %u, %ux%u, %u samples.\n",
+                    depth_stencil, debug_d3dformat(ds_texture->resource.format->id),
+                    context->fbo_key->rb_namespace & (1 << 0) ? "renderbuffer" : "texure",
                     context->fbo_key->objects[0].object,
-                    context->fbo_key->rb_namespace & (1 << 0) ? "rb" : "texure",
-                    depth_stencil->pow2Width, depth_stencil->pow2Height,
-                    depth_stencil->container->resource.multisample_type);
+                    wined3d_texture_get_level_pow2_width(ds_texture, depth_stencil->texture_level),
+                    wined3d_texture_get_level_pow2_height(ds_texture, depth_stencil->texture_level),
+                    ds_texture->resource.multisample_type);
         }
     }
 
-- 
2.1.4




More information about the wine-patches mailing list