[PATCH 1/7] d3d8: use wined3d_rendertarget_view_create instead of wined3d_rendertarget_view_create_from_surface in d3d8_surface_get_rendertarget_view
Riccardo Bortolato
rikyz619 at gmail.com
Mon Oct 12 10:23:31 CDT 2015
Signed-off-by: Riccardo Bortolato <rikyz619 at gmail.com>
---
dlls/d3d8/surface.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
index 165e048..58d0202 100644
--- a/dlls/d3d8/surface.c
+++ b/dlls/d3d8/surface.c
@@ -348,12 +348,29 @@ static const struct wined3d_parent_ops d3d8_view_wined3d_parent_ops =
struct wined3d_rendertarget_view *d3d8_surface_get_rendertarget_view(struct d3d8_surface *surface)
{
+ struct wined3d_resource *resource;
+ struct wined3d_resource_desc resource_desc;
+ struct wined3d_rendertarget_view_desc desc;
HRESULT hr;
if (surface->wined3d_rtv)
return surface->wined3d_rtv;
- if (FAILED(hr = wined3d_rendertarget_view_create_from_surface(surface->wined3d_surface,
+ resource = wined3d_texture_get_resource(surface->wined3d_texture);
+ if (!resource)
+ {
+ ERR("No resource found.\n");
+ return NULL;
+ }
+
+ wined3d_resource_get_desc(resource, &resource_desc);
+
+ desc.format_id = resource_desc.format;
+ desc.u.texture.level_idx = surface->sub_resource_idx;
+ desc.u.texture.layer_idx = 0;
+ desc.u.texture.layer_count = 1;
+
+ if (FAILED(hr = wined3d_rendertarget_view_create(&desc, resource,
surface, &d3d8_view_wined3d_parent_ops, &surface->wined3d_rtv)))
{
ERR("Failed to create rendertarget view, hr %#x.\n", hr);
--
1.9.1
More information about the wine-patches
mailing list