Henri Verbeet : wined3d: Return data as struct wined3d_bo_address in buffer_get_memory().

Alexandre Julliard julliard at winehq.org
Mon Jul 11 13:17:48 CDT 2011


Module: wine
Branch: master
Commit: 89bf30a25e5c9342de52b1c6d742009a9b03f8ce
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=89bf30a25e5c9342de52b1c6d742009a9b03f8ce

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Mon Jul 11 01:06:45 2011 +0200

wined3d: Return data as struct wined3d_bo_address in buffer_get_memory().

---

 dlls/wined3d/buffer.c          |   15 ++++++++-------
 dlls/wined3d/device.c          |    2 +-
 dlls/wined3d/wined3d_private.h |    4 ++--
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index fa14f3a..305b5e9 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -467,10 +467,10 @@ static inline void fixup_transformed_pos(float *p)
 }
 
 /* Context activation is done by the caller. */
-const BYTE *buffer_get_memory(struct wined3d_buffer *buffer,
-        const struct wined3d_gl_info *gl_info, GLuint *buffer_object)
+void buffer_get_memory(struct wined3d_buffer *buffer, const struct wined3d_gl_info *gl_info,
+        struct wined3d_bo_address *data)
 {
-    *buffer_object = buffer->buffer_object;
+    data->buffer_object = buffer->buffer_object;
     if (!buffer->buffer_object)
     {
         if (buffer->flags & WINED3D_BUFFER_CREATEBO)
@@ -479,15 +479,16 @@ const BYTE *buffer_get_memory(struct wined3d_buffer *buffer,
             buffer->flags &= ~WINED3D_BUFFER_CREATEBO;
             if (buffer->buffer_object)
             {
-                *buffer_object = buffer->buffer_object;
-                return NULL;
+                data->buffer_object = buffer->buffer_object;
+                data->addr = NULL;
+                return;
             }
         }
-        return buffer->resource.allocatedMemory;
+        data->addr = buffer->resource.allocatedMemory;
     }
     else
     {
-        return NULL;
+        data->addr = NULL;
     }
 }
 
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 7c03df3..5cc1c84 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -213,7 +213,7 @@ void device_stream_info_from_declaration(struct wined3d_device *device,
         else
         {
             TRACE("Stream %u isn't UP, %p\n", element->input_slot, buffer);
-            data.addr = buffer_get_memory(buffer, &device->adapter->gl_info, &data.buffer_object);
+            buffer_get_memory(buffer, &device->adapter->gl_info, &data);
 
             /* Can't use vbo's if the base vertex index is negative. OpenGL doesn't accept negative offsets
              * (or rather offsets bigger than the vbo, because the pointer is unsigned), so use system memory
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index ca852ee..6119a06 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2405,8 +2405,8 @@ static inline struct wined3d_buffer *buffer_from_resource(struct wined3d_resourc
     return CONTAINING_RECORD(resource, struct wined3d_buffer, resource);
 }
 
-const BYTE *buffer_get_memory(struct wined3d_buffer *buffer, const struct wined3d_gl_info *gl_info,
-        GLuint *buffer_object) DECLSPEC_HIDDEN;
+void buffer_get_memory(struct wined3d_buffer *buffer, const struct wined3d_gl_info *gl_info,
+        struct wined3d_bo_address *data) DECLSPEC_HIDDEN;
 BYTE *buffer_get_sysmem(struct wined3d_buffer *This, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN;
 
 struct wined3d_rendertarget_view




More information about the wine-cvs mailing list