[PATCH] wined3d : Set texture target of WINED3DFMT_NULL to 0
Max Qian
public at maxqia.com
Thu Jun 2 00:39:44 CDT 2016
This fixes https://bugs.winehq.org/show_bug.cgi?id=40624
Signed-off-by: Max Qian <public at maxqia.com>
---
dlls/wined3d/context.c | 4 ++--
dlls/wined3d/wined3d_private.h | 5 +++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index f07b3ab..fa95144 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -397,14 +397,14 @@ static inline void
context_set_fbo_key_for_surface(const struct wined3d_context
{
case WINED3D_LOCATION_TEXTURE_RGB:
key->objects[idx].object =
surface_get_texture_name(surface, context, FALSE);
- key->objects[idx].target = surface->texture_target;
+ key->objects[idx].target =
surface_get_texture_target(surface);
key->objects[idx].level = surface->texture_level;
key->objects[idx].layer = surface->texture_layer;
break;
case WINED3D_LOCATION_TEXTURE_SRGB:
key->objects[idx].object =
surface_get_texture_name(surface, context, TRUE);
- key->objects[idx].target = surface->texture_target;
+ key->objects[idx].target =
surface_get_texture_target(surface);
key->objects[idx].level = surface->texture_level;
key->objects[idx].layer = surface->texture_layer;
break;
diff --git a/dlls/wined3d/wined3d_private.h
b/dlls/wined3d/wined3d_private.h
index 814ac49..4240c6e 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -3591,6 +3591,11 @@ static inline struct wined3d_surface
*context_get_rt_surface(const struct wined3
return
texture->sub_resources[context->current_rt.sub_resource_idx].u.surface;
}
+static inline GLuint surface_get_texture_target(const struct
wined3d_surface *surface)
+{
+ return surface->container->resource.format->id == WINED3DFMT_NULL ?
0 : surface->texture_target;
+}
+
/* The WNDCLASS-Name for the fake window which we use to retrieve the
GL capabilities */
#define WINED3D_OPENGL_WINDOW_CLASS_NAME "WineD3D_OpenGL"
--
2.8.3
More information about the wine-patches
mailing list