Module: wine Branch: master Commit: 0b3185665f590a2facb2ee06cd1442fa88a69090 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0b3185665f590a2facb2ee06cd...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Nov 2 22:46:53 2011 +0100
wined3d: Use wined3d_surface_blt() in wined3d_swapchain_get_front_buffer_data().
---
dlls/wined3d/swapchain.c | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c index 7141165..e31b622 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c @@ -154,16 +154,23 @@ HRESULT CDECL wined3d_swapchain_present(struct wined3d_swapchain *swapchain, HRESULT CDECL wined3d_swapchain_get_front_buffer_data(const struct wined3d_swapchain *swapchain, struct wined3d_surface *dst_surface) { - POINT offset = {0, 0}; + struct wined3d_surface *src_surface; + RECT src_rect, dst_rect;
TRACE("swapchain %p, dst_surface %p.\n", swapchain, dst_surface);
- if (swapchain->presentParms.Windowed) - MapWindowPoints(swapchain->win_handle, NULL, &offset, 1); + src_surface = swapchain->front_buffer; + SetRect(&src_rect, 0, 0, src_surface->resource.width, src_surface->resource.height); + dst_rect = src_rect;
- surface_bltfast(dst_surface, offset.x, offset.y, swapchain->front_buffer, NULL, 0); + if (swapchain->presentParms.Windowed) + { + MapWindowPoints(swapchain->win_handle, NULL, (POINT *)&dst_rect, 2); + FIXME("Using destination rect %s in windowed mode, this is likely wrong.\n", + wine_dbgstr_rect(&dst_rect)); + }
- return WINED3D_OK; + return wined3d_surface_blt(dst_surface, &dst_rect, src_surface, &src_rect, 0, NULL, WINED3DTEXF_POINT); }
HRESULT CDECL wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain *swapchain,