[PATCH 2/7] wined3d: Allow creating shader resource views with NULL description.

Józef Kucia jkucia at codeweavers.com
Fri Mar 24 11:14:43 CDT 2017


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---

For ddraw, d3d8 and d3d9.

---
 dlls/wined3d/view.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index ac558a4..f6fbdc3 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -596,10 +596,30 @@ static HRESULT wined3d_shader_resource_view_init(struct wined3d_shader_resource_
         const struct wined3d_view_desc *desc, struct wined3d_resource *resource,
         void *parent, const struct wined3d_parent_ops *parent_ops)
 {
+    struct wined3d_view_desc default_desc;
+
     view->refcount = 1;
     view->parent = parent;
     view->parent_ops = parent_ops;
 
+    if (!desc)
+    {
+        struct wined3d_texture *texture;
+
+        if (resource->type == WINED3D_RTYPE_BUFFER)
+            return E_INVALIDARG;
+
+        texture = texture_from_resource(resource);
+
+        default_desc.format_id = resource->format->id;
+        default_desc.flags = 0;
+        default_desc.u.texture.level_idx = 0;
+        default_desc.u.texture.level_count = texture->level_count;
+        default_desc.u.texture.layer_idx = 0;
+        default_desc.u.texture.layer_count = texture->layer_count;
+        desc = &default_desc;
+    }
+
     if (!(view->format = validate_shader_resource_view(desc, resource, FALSE)))
         return E_INVALIDARG;
     view->desc = *desc;
-- 
2.10.2




More information about the wine-patches mailing list