Henri Verbeet : wined3d: Implement wined3d_buffer_create_vb() on top of wined3d_buffer_create().

Alexandre Julliard julliard at winehq.org
Mon Feb 5 16:48:25 CST 2018


Module: wine
Branch: master
Commit: 1377e7a6088b269bb7a90717a70e02d0a8d204d8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1377e7a6088b269bb7a90717a70e02d0a8d204d8

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Sun Feb  4 17:38:54 2018 +0330

wined3d: Implement wined3d_buffer_create_vb() on top of wined3d_buffer_create().

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/buffer.c | 28 ++++++++--------------------
 1 file changed, 8 insertions(+), 20 deletions(-)

diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index 53462a6..12e4396 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -1464,8 +1464,7 @@ static DWORD resource_access_from_pool(enum wined3d_pool pool)
 HRESULT CDECL wined3d_buffer_create_vb(struct wined3d_device *device, UINT size, DWORD usage, enum wined3d_pool pool,
         void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
 {
-    struct wined3d_buffer *object;
-    HRESULT hr;
+    struct wined3d_buffer_desc desc;
 
     TRACE("device %p, size %u, usage %#x, pool %#x, parent %p, parent_ops %p, buffer %p.\n",
             device, size, usage, pool, parent, parent_ops, buffer);
@@ -1479,25 +1478,14 @@ HRESULT CDECL wined3d_buffer_create_vb(struct wined3d_device *device, UINT size,
         return WINED3DERR_INVALIDCALL;
     }
 
-    object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
-    if (!object)
-    {
-        *buffer = NULL;
-        return WINED3DERR_OUTOFVIDEOMEMORY;
-    }
-
-    if (FAILED(hr = buffer_init(object, device, size, usage, WINED3DFMT_UNKNOWN,
-            resource_access_from_pool(pool), WINED3D_BIND_VERTEX_BUFFER, NULL, parent, parent_ops)))
-    {
-        WARN("Failed to initialize buffer, hr %#x.\n", hr);
-        HeapFree(GetProcessHeap(), 0, object);
-        return hr;
-    }
+    desc.byte_width = size;
+    desc.usage = usage;
+    desc.bind_flags = WINED3D_BIND_VERTEX_BUFFER;
+    desc.access = resource_access_from_pool(pool);
+    desc.misc_flags = 0;
+    desc.structure_byte_stride = 0;
 
-    TRACE("Created buffer %p.\n", object);
-    *buffer = object;
-
-    return WINED3D_OK;
+    return wined3d_buffer_create(device, &desc, NULL, parent, parent_ops, buffer);
 }
 
 HRESULT CDECL wined3d_buffer_create_ib(struct wined3d_device *device, UINT size, DWORD usage, enum wined3d_pool pool,




More information about the wine-cvs mailing list