Commit 00923cb5 authored by Stefan Dösinger's avatar Stefan Dösinger Committed by Alexandre Julliard

wined3d: Remove surface_ops->map.

parent f1ac04f2
...@@ -810,45 +810,6 @@ static void surface_realize_palette(struct wined3d_surface *surface) ...@@ -810,45 +810,6 @@ static void surface_realize_palette(struct wined3d_surface *surface)
surface_load_location(surface, surface->draw_binding); 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) static void surface_unmap(struct wined3d_surface *surface)
{ {
struct wined3d_device *device = surface->resource.device; struct wined3d_device *device = surface->resource.device;
...@@ -1381,7 +1342,6 @@ static const struct wined3d_surface_ops surface_ops = ...@@ -1381,7 +1342,6 @@ static const struct wined3d_surface_ops surface_ops =
{ {
surface_private_setup, surface_private_setup,
surface_realize_palette, surface_realize_palette,
surface_map,
surface_unmap, surface_unmap,
}; };
...@@ -1458,28 +1418,6 @@ static void gdi_surface_realize_palette(struct wined3d_surface *surface) ...@@ -1458,28 +1418,6 @@ static void gdi_surface_realize_palette(struct wined3d_surface *surface)
x11_copy_to_screen(surface->swapchain, NULL); 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) static void gdi_surface_unmap(struct wined3d_surface *surface)
{ {
TRACE("surface %p.\n", surface); TRACE("surface %p.\n", surface);
...@@ -1495,7 +1433,6 @@ static const struct wined3d_surface_ops gdi_surface_ops = ...@@ -1495,7 +1433,6 @@ static const struct wined3d_surface_ops gdi_surface_ops =
{ {
gdi_surface_private_setup, gdi_surface_private_setup,
gdi_surface_realize_palette, gdi_surface_realize_palette,
gdi_surface_map,
gdi_surface_unmap, gdi_surface_unmap,
}; };
...@@ -3099,6 +3036,9 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, ...@@ -3099,6 +3036,9 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
struct wined3d_map_desc *map_desc, const RECT *rect, DWORD flags) struct wined3d_map_desc *map_desc, const RECT *rect, DWORD flags)
{ {
const struct wined3d_format *format = surface->resource.format; 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; BYTE *base_memory;
TRACE("surface %p, map_desc %p, rect %s, flags %#x.\n", TRACE("surface %p, map_desc %p, rect %s, flags %#x.\n",
...@@ -3156,7 +3096,36 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, ...@@ -3156,7 +3096,36 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
if (!(flags & (WINED3D_MAP_NO_DIRTY_UPDATE | WINED3D_MAP_READONLY))) if (!(flags & (WINED3D_MAP_NO_DIRTY_UPDATE | WINED3D_MAP_READONLY)))
surface_invalidate_location(surface, ~surface->map_binding); 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) if (format->flags & WINED3DFMT_FLAG_BROKEN_PITCH)
map_desc->row_pitch = surface->resource.width * format->byte_count; map_desc->row_pitch = surface->resource.width * format->byte_count;
......
...@@ -2180,7 +2180,6 @@ struct wined3d_surface_ops ...@@ -2180,7 +2180,6 @@ struct wined3d_surface_ops
{ {
HRESULT (*surface_private_setup)(struct wined3d_surface *surface); HRESULT (*surface_private_setup)(struct wined3d_surface *surface);
void (*surface_realize_palette)(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); void (*surface_unmap)(struct wined3d_surface *surface);
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment