[PATCH 3/5] wined3d: Initialize the last two components of R16G16_SINT attributes.

Matteo Bruni mbruni at codeweavers.com
Wed Jan 21 11:32:34 CST 2015


---
 dlls/wined3d/drawprim.c | 5 ++++-
 dlls/wined3d/state.c    | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index 12b03f6..247378c 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -377,8 +377,11 @@ static inline void send_attribute(const struct wined3d_gl_info *gl_info,
             break;
 
         case WINED3DFMT_R16G16_SINT:
-            GL_EXTCALL(glVertexAttrib4svARB(index, ptr));
+        {
+            GLshort s[4] = {((const GLshort *)ptr)[0], ((const GLshort *)ptr)[1], 0, 1};
+            GL_EXTCALL(glVertexAttrib4svARB(index, s));
             break;
+        }
         case WINED3DFMT_R16G16B16A16_SINT:
             GL_EXTCALL(glVertexAttrib4svARB(index, ptr));
             break;
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 3c204ca..0570627 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -4297,8 +4297,11 @@ static void load_numbered_arrays(struct wined3d_context *context,
                     break;
 
                 case WINED3DFMT_R16G16_SINT:
-                    GL_EXTCALL(glVertexAttrib4svARB(i, (const GLshort *)ptr));
+                {
+                    const GLshort s[4] = {((const GLshort *)ptr)[0], ((const GLshort *)ptr)[1], 0, 1};
+                    GL_EXTCALL(glVertexAttrib4svARB(i, s));
                     break;
+                }
                 case WINED3DFMT_R16G16B16A16_SINT:
                     GL_EXTCALL(glVertexAttrib4svARB(i, (const GLshort *)ptr));
                     break;
-- 
2.0.5




More information about the wine-patches mailing list