[PATCH 2/5] wined3d: Handle client storage in surface_init_sysmem().
Henri Verbeet
hverbeet at codeweavers.com
Tue Dec 20 14:42:11 CST 2011
---
dlls/wined3d/surface.c | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 998d28e..48d271f 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3956,13 +3956,21 @@ BOOL surface_init_sysmem(struct wined3d_surface *surface)
{
if (!surface->resource.allocatedMemory)
{
- surface->resource.heapMemory = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
- surface->resource.size + RESOURCE_ALIGNMENT);
if (!surface->resource.heapMemory)
{
- ERR("Out of memory\n");
- return FALSE;
+ if (!(surface->resource.heapMemory = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+ surface->resource.size + RESOURCE_ALIGNMENT)))
+ {
+ ERR("Failed to allocate memory.\n");
+ return FALSE;
+ }
+ }
+ else if (!(surface->flags & SFLAG_CLIENT))
+ {
+ ERR("Surface %p has heapMemory %p and flags %#x.\n",
+ surface, surface->resource.heapMemory, surface->flags);
}
+
surface->resource.allocatedMemory =
(BYTE *)(((ULONG_PTR)surface->resource.heapMemory + (RESOURCE_ALIGNMENT - 1)) & ~(RESOURCE_ALIGNMENT - 1));
}
--
1.7.3.4
More information about the wine-patches
mailing list