From e64775ba7af2c811d917296a20f716af5ff831dd Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 7 Jun 2014 07:45:02 +0200 Subject: [PATCH] (D3D) Create macro for D3DDevice_Present --- gfx/context/d3d_ctx.cpp | 10 +--------- gfx/d3d9/d3d.cpp | 12 ++---------- gfx/d3d9/d3d9.hpp | 6 ++++++ xdk/xdk_d3d.cpp | 12 ++---------- xdk/xdk_defines.h | 5 ++--- 5 files changed, 13 insertions(+), 32 deletions(-) diff --git a/gfx/context/d3d_ctx.cpp b/gfx/context/d3d_ctx.cpp index 696ee8841f..444d028c1e 100644 --- a/gfx/context/d3d_ctx.cpp +++ b/gfx/context/d3d_ctx.cpp @@ -109,15 +109,7 @@ static void gfx_ctx_d3d_swap_buffers(void *data) d3d_video_t *d3d = (d3d_video_t*)data; LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)d3d->dev; -#ifdef _XBOX - RD3DDevice_Present(d3dr); -#else - if (d3dr->Present(NULL, NULL, NULL, NULL) != D3D_OK) - { - d3d->needs_restore = true; - RARCH_ERR("[D3D]: Present() failed.\n"); - } -#endif + D3DDevice_Presents(d3d, d3dr); } static void gfx_ctx_d3d_update_title(void *data) diff --git a/gfx/d3d9/d3d.cpp b/gfx/d3d9/d3d.cpp index d8c4e404c7..5614061124 100644 --- a/gfx/d3d9/d3d.cpp +++ b/gfx/d3d9/d3d.cpp @@ -740,18 +740,10 @@ static bool d3d_frame(void *data, const void *frame, // Insert black frame first, so we can screenshot, etc. if (g_settings.video.black_frame_insertion) { -#ifdef _XBOX - d3dr->Present(NULL, NULL, NULL, NULL); - d3dr->Clear(0, 0, D3DCLEAR_TARGET, 0, 1, 0); -#else - if (d3dr->Present(NULL, NULL, NULL, NULL) != D3D_OK) - { - RARCH_ERR("[D3D]: Present() failed.\n"); - d3d->needs_restore = true; + D3DDevice_Presents(d3d, d3dr); + if (d3d->needs_restore) return true; - } d3dr->Clear(0, 0, D3DCLEAR_TARGET, 0, 1, 0); -#endif } if (!renderchain_render(d3d->chain, frame, width, height, pitch, d3d->dev_rotation)) diff --git a/gfx/d3d9/d3d9.hpp b/gfx/d3d9/d3d9.hpp index dad58881d1..c47fffc202 100644 --- a/gfx/d3d9/d3d9.hpp +++ b/gfx/d3d9/d3d9.hpp @@ -70,6 +70,12 @@ class RenderChain; memset(lockedrect.pBits, level, pass.info.tex_h * lockedrect.Pitch); \ tex->UnlockRect(0); \ } +#define D3DDevice_Presents(d3d, dev) \ + if (dev->Present(NULL, NULL, NULL, NULL) != D3D_OK) \ + { \ + RARCH_ERR("[D3D]: Present() failed.\n"); \ + d3d->needs_restore = true; \ + } #endif diff --git a/xdk/xdk_d3d.cpp b/xdk/xdk_d3d.cpp index 961ec970e8..ef21f3406a 100644 --- a/xdk/xdk_d3d.cpp +++ b/xdk/xdk_d3d.cpp @@ -899,18 +899,10 @@ static bool d3d_frame(void *data, const void *frame, // Insert black frame first, so we can screenshot, etc. if (g_settings.video.black_frame_insertion) { -#ifdef _XBOX - d3dr->Present(NULL, NULL, NULL, NULL); - d3dr->Clear(0, 0, D3DCLEAR_TARGET, 0, 1, 0); -#else - if (d3dr->Present(NULL, NULL, NULL, NULL) != D3D_OK) - { - RARCH_ERR("[D3D]: Present() failed.\n"); - d3d->needs_restore = true; + D3DDevice_Presents(d3d, d3dr); + if (d3d->needs_restore) return true; - } d3dr->Clear(0, 0, D3DCLEAR_TARGET, 0, 1, 0); -#endif } #ifdef _XBOX diff --git a/xdk/xdk_defines.h b/xdk/xdk_defines.h index f9b2d48864..2b1f4c88c9 100644 --- a/xdk/xdk_defines.h +++ b/xdk/xdk_defines.h @@ -48,7 +48,7 @@ #define RD3DDevice_DrawPrimitive(device, PrimitiveType, StartVertex, PrimitiveCount) D3DDevice_DrawVertices(PrimitiveType, StartVertex, D3DVERTEXCOUNT(PrimitiveType, PrimitiveCount)) #define RD3DDevice_Clear(device, Count, pRects, Flags, Color, Z, Stencil) D3DDevice_Clear(Count, pRects, Flags, Color, Z, Stencil) #define RD3DDevice_SetViewport(device, viewport) D3DDevice_SetViewport(viewport) -#define RD3DDevice_Present(device) D3DDevice_Swap(0) +#define D3DDevice_Presents(device, returnval) D3DDevice_Swap(0) #define D3DDevice_SetSamplerState_MinFilter(device, sampler, value) SetSamplerState_function(device, sampler, D3DTSS_MINFILTER, value) #define D3DDevice_SetSamplerState_MagFilter(device, sampler, value) SetSamplerState_function(device, sampler, D3DTSS_MAGFILTER, value) #define D3DDevice_SetSamplerState_AddressU(device, sampler, value) SetSamplerState_function(device, sampler, D3DTSS_ADDRESSU, value) @@ -90,12 +90,11 @@ #define RD3DDevice_DrawPrimitive(device, PrimitiveType, StartVertex, PrimitiveCount) D3DDevice_DrawVertices(device, PrimitiveType, StartVertex, D3DVERTEXCOUNT(PrimitiveType, PrimitiveCount)) #define RD3DDevice_Clear(device, Count, pRects, Flags, Color, Z, Stencil) D3DDevice_Clear(device, Count, pRects, Flags, Color, Z, Stencil, false) #define RD3DDevice_SetViewport(device, viewport) D3DDevice_SetViewport(device, viewport) -#define RD3DDevice_Present(device) D3DDevice_Present(device) #define D3DDevice_SetSamplerState_MinFilter(device, sampler, value) D3DDevice_SetSamplerState_MinFilter(device, sampler, value) #define D3DDevice_SetSamplerState_MagFilter(device, sampler, value) D3DDevice_SetSamplerState_MagFilter(device, sampler, value) #define D3DDevice_SetSamplerState_AddressU(device, sampler, value) D3DDevice_SetSamplerState_AddressU_Inline(device, sampler, value) #define D3DDevice_SetSamplerState_AddressV(device, sampler, value) D3DDevice_SetSamplerState_AddressV_Inline(device, sampler, value) - +#define D3DDevice_Presents(dev, returnval) D3DDevice_Present(dev) #endif #define D3DTexture_LockRectClear(pass, tex, level, lockedrect, rect, flags) \