Module: wine Branch: master Commit: 00923cb50ce39c5917d0bb15c545ff7fd12d7d46 URL: http://source.winehq.org/git/wine.git/?a=commit;h=00923cb50ce39c5917d0bb15c5...
Author: Stefan Dösinger stefan@codeweavers.com Date: Fri Jan 17 13:27:14 2014 +0100
wined3d: Remove surface_ops->map.
---
dlls/wined3d/surface.c | 97 ++++++++++++++-------------------------- dlls/wined3d/wined3d_private.h | 1 - 2 files changed, 33 insertions(+), 65 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 1b61cb5..2317ce6 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -810,45 +810,6 @@ static void surface_realize_palette(struct wined3d_surface *surface) surface_load_location(surface, surface->draw_binding); }
-static BYTE *surface_map(struct wined3d_surface *surface, const RECT *rect, DWORD flags) -{ - struct wined3d_device *device = surface->resource.device; - BYTE *ret; - const struct wined3d_gl_info *gl_info; - struct wined3d_context *context; - - TRACE("surface %p, rect %s, flags %#x.\n", - surface, wine_dbgstr_rect(rect), flags); - - switch (surface->map_binding) - { - case SFLAG_INUSERMEM: - return surface->user_memory; - - case SFLAG_INDIB: - return surface->dib.bitmap_data; - - case SFLAG_INBUFFER: - context = context_acquire(device, NULL); - gl_info = context->gl_info; - - GL_EXTCALL(glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, surface->pbo)); - ret = GL_EXTCALL(glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, GL_READ_WRITE_ARB)); - GL_EXTCALL(glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0)); - checkGLcall("map PBO"); - - context_release(context); - return ret; - - case SFLAG_INSYSMEM: - return surface->resource.heap_memory; - - default: - ERR("Unexpected map binding %s.\n", debug_surflocation(surface->map_binding)); - return NULL; - } -} - static void surface_unmap(struct wined3d_surface *surface) { struct wined3d_device *device = surface->resource.device; @@ -1381,7 +1342,6 @@ static const struct wined3d_surface_ops surface_ops = { surface_private_setup, surface_realize_palette, - surface_map, surface_unmap, };
@@ -1458,28 +1418,6 @@ static void gdi_surface_realize_palette(struct wined3d_surface *surface) x11_copy_to_screen(surface->swapchain, NULL); }
-static BYTE *gdi_surface_map(struct wined3d_surface *surface, const RECT *rect, DWORD flags) -{ - TRACE("surface %p, rect %s, flags %#x.\n", - surface, wine_dbgstr_rect(rect), flags); - - switch (surface->map_binding) - { - case SFLAG_INUSERMEM: - return surface->user_memory; - - case SFLAG_INDIB: - return surface->dib.bitmap_data; - - case SFLAG_INSYSMEM: - return surface->resource.heap_memory; - - default: - ERR("Unexpected map binding %s.\n", debug_surflocation(surface->map_binding)); - return NULL; - } -} - static void gdi_surface_unmap(struct wined3d_surface *surface) { TRACE("surface %p.\n", surface); @@ -1495,7 +1433,6 @@ static const struct wined3d_surface_ops gdi_surface_ops = { gdi_surface_private_setup, gdi_surface_realize_palette, - gdi_surface_map, gdi_surface_unmap, };
@@ -3099,6 +3036,9 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, struct wined3d_map_desc *map_desc, const RECT *rect, DWORD flags) { const struct wined3d_format *format = surface->resource.format; + struct wined3d_device *device = surface->resource.device; + struct wined3d_context *context; + const struct wined3d_gl_info *gl_info; BYTE *base_memory;
TRACE("surface %p, map_desc %p, rect %s, flags %#x.\n", @@ -3156,7 +3096,36 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, if (!(flags & (WINED3D_MAP_NO_DIRTY_UPDATE | WINED3D_MAP_READONLY))) surface_invalidate_location(surface, ~surface->map_binding);
- base_memory = surface->surface_ops->surface_map(surface, rect, flags); + switch (surface->map_binding) + { + case SFLAG_INUSERMEM: + base_memory = surface->user_memory; + break; + + case SFLAG_INDIB: + base_memory = surface->dib.bitmap_data; + break; + + case SFLAG_INBUFFER: + context = context_acquire(device, NULL); + gl_info = context->gl_info; + + GL_EXTCALL(glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, surface->pbo)); + base_memory = GL_EXTCALL(glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, GL_READ_WRITE_ARB)); + GL_EXTCALL(glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0)); + checkGLcall("map PBO"); + + context_release(context); + break; + + case SFLAG_INSYSMEM: + base_memory = surface->resource.heap_memory; + break; + + default: + ERR("Unexpected map binding %s.\n", debug_surflocation(surface->map_binding)); + base_memory = NULL; + }
if (format->flags & WINED3DFMT_FLAG_BROKEN_PITCH) map_desc->row_pitch = surface->resource.width * format->byte_count; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index e23d284..dc7ba65 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2180,7 +2180,6 @@ struct wined3d_surface_ops { HRESULT (*surface_private_setup)(struct wined3d_surface *surface); void (*surface_realize_palette)(struct wined3d_surface *surface); - BYTE *(*surface_map)(struct wined3d_surface *surface, const RECT *rect, DWORD flags); void (*surface_unmap)(struct wined3d_surface *surface); };