[PATCH 1/3] wined3d: Add some missing state updates for buffer textures.

Guillaume Charifi guillaume.charifi at sfr.fr
Sat Jan 28 20:32:53 CST 2017


Signed-off-by: Guillaume Charifi <guillaume.charifi at sfr.fr>

---
dlls/wined3d/context.c | 12 ++++++++++++
dlls/wined3d/state.c   |  5 +++++
dlls/wined3d/view.c    |  6 ------
3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index cd0057e..ca73bcc 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1544,6 +1544,8 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru

         if (gl_info->supported[EXT_TEXTURE_ARRAY])
             gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D_ARRAY, device->dummy_textures.tex_2d_array);
+        if (gl_info->supported[ARB_TEXTURE_BUFFER_OBJECT])
+            gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_BUFFER, device->dummy_textures.tex_buffer);

         if (gl_info->supported[ARB_TEXTURE_BUFFER_OBJECT])
             gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_BUFFER, device->dummy_textures.tex_buffer);
@@ -2184,6 +2186,11 @@ static void SetupForBlit(const struct wined3d_device *device, struct wined3d_con
         }
         gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_2D);
         checkGLcall("glDisable GL_TEXTURE_2D");
+        if (gl_info->supported[ARB_TEXTURE_BUFFER_OBJECT])
+        {
+            gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_BUFFER);
+            checkGLcall("glDisable GL_TEXTURE_BUFFER");
+        }

         gl_info->gl_ops.gl.p_glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
         checkGLcall("glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);");
@@ -2215,6 +2222,11 @@ static void SetupForBlit(const struct wined3d_device *device, struct wined3d_con
     }
     gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_2D);
     checkGLcall("glDisable GL_TEXTURE_2D");
+    if (gl_info->supported[ARB_TEXTURE_BUFFER_OBJECT])
+    {
+        gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_BUFFER);
+        checkGLcall("glDisable GL_TEXTURE_BUFFER");
+    }

     gl_info->gl_ops.gl.p_glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 901a97c..96da4ad 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -3087,6 +3087,11 @@ static void tex_colorop(struct wined3d_context *context, const struct wined3d_st
                 gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_RECTANGLE_ARB);
                 checkGLcall("glDisable(GL_TEXTURE_RECTANGLE_ARB)");
             }
+            if (gl_info->supported[ARB_TEXTURE_BUFFER_OBJECT])
+            {
+                gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_BUFFER);
+                checkGLcall("glDisable(GL_TEXTURE_BUFFER)");
+            }
         }
         /* All done */
         return;
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index c63d913..706d80c 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -544,12 +544,6 @@ void wined3d_shader_resource_view_bind(struct wined3d_shader_resource_view *view
         return;
     }

-    if (view->resource->type == WINED3D_RTYPE_BUFFER)
-    {
-        FIXME("Buffer shader resources not supported.\n");
-        return;
-    }
-
     texture = wined3d_texture_from_resource(view->resource);
     wined3d_texture_bind(texture, context, FALSE);
}
-- 
2.9.3
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20170129/e4bee75b/attachment.html>


More information about the wine-patches mailing list