From 671725cfdde7be004adb96f371546e686a05b245 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 16 Apr 2013 16:47:20 +0200 Subject: [PATCH] (XDK D3D) Replace more functions with optimal inlined functions --- gfx/context/xdk_ctx.c | 5 +---- xdk/xdk_d3d.cpp | 14 +++++++------- xdk/xdk_defines.h | 6 ++++++ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/gfx/context/xdk_ctx.c b/gfx/context/xdk_ctx.c index 45f385abe4..adc013b0b8 100644 --- a/gfx/context/xdk_ctx.c +++ b/gfx/context/xdk_ctx.c @@ -69,10 +69,7 @@ static void gfx_ctx_xdk_swap_buffers(void) { xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data; LPDIRECT3DDEVICE d3dr = d3d->d3d_render_device; -#ifdef _XBOX1 - d3dr->EndScene(); -#endif - d3dr->Present(NULL, NULL, NULL, NULL); + RD3DDevice_Present(d3dr); } static bool gfx_ctx_xdk_window_has_focus(void) diff --git a/xdk/xdk_d3d.cpp b/xdk/xdk_d3d.cpp index 4654ac0553..0793e71796 100644 --- a/xdk/xdk_d3d.cpp +++ b/xdk/xdk_d3d.cpp @@ -212,7 +212,7 @@ static void xdk_d3d_set_viewport(bool force_full) int m_viewport_x_temp, m_viewport_y_temp, m_viewport_width_temp, m_viewport_height_temp; float m_zNear, m_zFar; - d3dr->Clear(0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0); + RD3DDevice_Clear(d3dr, 0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0); d3d->ctx_driver->get_video_size(&width, &height); m_viewport_x_temp = 0; @@ -260,7 +260,7 @@ static void xdk_d3d_set_viewport(bool force_full) vp.Y = m_viewport_y_temp; vp.MinZ = m_zNear; vp.MaxZ = m_zFar; - d3dr->SetViewport(&vp); + RD3DDevice_SetViewport(d3d->d3d_render_device, &vp); #ifdef HAVE_HLSL if (d3d->shader) @@ -495,7 +495,7 @@ static void xdk_d3d_init_textures(void *data, const video_info_t *video) #if defined(_XBOX1) d3d->d3d_render_device->SetRenderState(D3DRS_LIGHTING, FALSE); #elif defined(_XBOX360) - d3d->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET, + RD3DDevice_Clear(d3d->d3d_render_device, 0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0); #endif vp.Width = d3d->win_width; @@ -506,7 +506,7 @@ static void xdk_d3d_init_textures(void *data, const video_info_t *video) vp.MinZ = 0.0f; vp.MaxZ = 1.0f; - d3d->d3d_render_device->SetViewport(&vp); + RD3DDevice_SetViewport(d3d->d3d_render_device, &vp); if (g_extern.console.screen.viewports.custom_vp.width == 0) g_extern.console.screen.viewports.custom_vp.width = vp.Width; @@ -585,7 +585,7 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu if (ret != S_OK) RARCH_ERR("Failed at CreateDevice.\n"); - d3d->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0); + RD3DDevice_Clear(d3d->d3d_render_device, 0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0); } else { @@ -888,7 +888,7 @@ static bool xdk_d3d_frame(void *data, const void *frame, vp.Y = 0; vp.MinZ = 0.0f; vp.MaxZ = 1.0f; - d3dr->SetViewport(&vp); + RD3DDevice_SetViewport(d3dr, &vp); } else #endif @@ -927,7 +927,7 @@ NULL, NULL, NULL, 0); d3dr->SetVertexShader(D3DFVF_XYZ | D3DFVF_TEX1); d3dr->SetStreamSource(0, d3d->vertex_buf, sizeof(DrawVerticeFormats)); - d3dr->Clear(0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0); + RD3DDevice_Clear(d3dr, 0, NULL, D3DCLEAR_TARGET, 0xff000000, 1.0f, 0); d3dr->SetFlickerFilter(g_extern.console.screen.flicker_filter_index); d3dr->SetSoftDisplayFilter(g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_SOFT_FILTER_ENABLE)); diff --git a/xdk/xdk_defines.h b/xdk/xdk_defines.h index eca6e9216f..5f94972f58 100644 --- a/xdk/xdk_defines.h +++ b/xdk/xdk_defines.h @@ -39,6 +39,9 @@ D3D__DirtyFlags |= (D3DDIRTYFLAG_TEXTURE_STATE_0 << 0); \ D3D__TextureState[0][sampler] = value; +#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 RD3DDevice_SetSamplerState_MinFilter(device, sampler, value) SetSamplerState_function(device, sampler, value) #define RD3DDevice_SetSamplerState_MagFilter(device, sampler, value) SetSamplerState_function(device, sampler, value) #define RD3DDevice_SetSamplerState_AddressU(device, sampler, value) SetSamplerState_function(device, sampler, value) @@ -68,6 +71,9 @@ #define direct3d_create_ctx Direct3DCreate9 #define IDirect3DVertexDeclaration IDirect3DVertexDeclaration9 +#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 RD3DDevice_SetSamplerState_MinFilter(device, sampler, value) D3DDevice_SetSamplerState_MinFilter(device, sampler, value) #define RD3DDevice_SetSamplerState_MagFilter(device, sampler, value) D3DDevice_SetSamplerState_MagFilter(device, sampler, value) #define RD3DDevice_SetSamplerState_AddressU(device, sampler, value) D3DDevice_SetSamplerState_AddressU_Inline(device, sampler, value)