[PATCH 1/5] wined3d: Use renderbuffers if the resource type is RB.
Stefan Dösinger
stefan at codeweavers.com
Tue Jun 9 02:28:06 CDT 2015
Surface_private_setup sets surface->locations = WINED3D_LOCATION_DISCARDED
for depth stencil surfaces, so right now we don't have to worry about
initializing the renderbuffer. Adding a new WINED3D_LOCATION_CLEAR
location or similar that clears the surface in load_location may be an
idea in the long run.
---
dlls/wined3d/resource.c | 2 ++
dlls/wined3d/surface.c | 3 +++
2 files changed, 5 insertions(+)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index e9e586f..7818deb 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -402,6 +402,8 @@ void wined3d_resource_update_draw_binding(struct wined3d_resource *resource)
resource->draw_binding = WINED3D_LOCATION_DRAWABLE;
else if (resource->multisample_type)
resource->draw_binding = WINED3D_LOCATION_RB_MULTISAMPLE;
+ else if (resource->gl_type == WINED3D_GL_RES_TYPE_RB)
+ resource->draw_binding = WINED3D_LOCATION_RB_RESOLVED;
else
resource->draw_binding = WINED3D_LOCATION_TEXTURE_RGB;
}
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 552a079..4df6ca8 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3716,6 +3716,9 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
case WINED3D_LOCATION_RB_MULTISAMPLE:
surface_prepare_rb(surface, gl_info, TRUE);
break;
+ case WINED3D_LOCATION_RB_RESOLVED:
+ surface_prepare_rb(surface, gl_info, FALSE);
+ break;
case WINED3D_LOCATION_DRAWABLE:
/* Nothing to do */
break;
--
2.3.6
More information about the wine-patches
mailing list