From 1b9a5ba68225ebd6ab61219da003ec68a9eb0530 Mon Sep 17 00:00:00 2001 From: "H. Verbeet" Date: Mon, 16 Apr 2007 21:20:25 +0200 Subject: [PATCH] wined3d: Add a function to determine if a surface is the front or the backbuffer for a swapchain, and return the corresponding GLenum. --- dlls/wined3d/surface.c | 17 +++++++++++++++++ dlls/wined3d/wined3d_private.h | 1 + 2 files changed, 18 insertions(+) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 117c4576e7b..049b8279255 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -287,6 +287,23 @@ void surface_set_compatible_renderbuffer(IWineD3DSurface *iface, unsigned int wi checkGLcall("set_compatible_renderbuffer"); } +GLenum surface_get_gl_buffer(IWineD3DSurface *iface, IWineD3DSwapChain *swapchain) { + IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; + IWineD3DSwapChainImpl *swapchain_impl = (IWineD3DSwapChainImpl *)swapchain; + + TRACE("(%p) : swapchain %p\n", This, swapchain); + + if (swapchain_impl->backBuffer && swapchain_impl->backBuffer[0] == iface) { + TRACE("Returning GL_BACK\n"); + return GL_BACK; + } else if (swapchain_impl->frontBuffer == iface) { + TRACE("Returning GL_FRONT\n"); + return GL_FRONT; + } + + FIXME("Higher back buffer, returning GL_BACK\n"); + return GL_BACK; +} /* ******************************************* IWineD3DSurface IUnknown parts follow diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 9fb434330ff..3de938ad7a3 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1412,6 +1412,7 @@ void set_tex_op_nvrc(IWineD3DDevice *iface, BOOL is_alpha, int stage, WINED3DT void set_texture_matrix(const float *smat, DWORD flags, BOOL calculatedCoords); void surface_set_compatible_renderbuffer(IWineD3DSurface *iface, unsigned int width, unsigned int height); +GLenum surface_get_gl_buffer(IWineD3DSurface *iface, IWineD3DSwapChain *swapchain); int D3DFmtMakeGlCfg(WINED3DFORMAT BackBufferFormat, WINED3DFORMAT StencilBufferFormat, int *attribs, int* nAttribs, BOOL alternate);