From fce097b8929143d675adaab68a07b35663e54234 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 7 Jan 2018 12:00:09 +0100 Subject: [PATCH] (360) Buildfixes --- gfx/common/d3d_common.c | 13 ++++++++++--- gfx/drivers_font/xdk360_fonts.cpp | 12 +++++++----- gfx/drivers_shader/shader_hlsl.c | 8 ++++---- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/gfx/common/d3d_common.c b/gfx/common/d3d_common.c index bbb84065ed..73c2e8e558 100644 --- a/gfx/common/d3d_common.c +++ b/gfx/common/d3d_common.c @@ -1116,15 +1116,22 @@ bool d3d_create_pixel_shader(LPDIRECT3DDEVICE dev, const DWORD *a, void **b) bool d3d_set_pixel_shader(LPDIRECT3DDEVICE dev, void *data) { #ifdef HAVE_D3D9 - if (!dev) + D3DPixelShader *d3dps = (D3DPixelShader*)data; + if (!dev || !d3dps) return false; #if defined(__cplusplus) - if (dev->SetPixelShader(data) != D3D_OK) + if (dev->SetPixelShader(d3dps) == D3D_OK) return true; #else - if (IDirect3DDevice9_SetPixelShader(dev, data) != D3D_OK) +#ifdef _XBOX + /* Returns void on Xbox */ + IDirect3DDevice9_SetPixelShader(dev, d3dps); + return true; +#else + if (IDirect3DDevice9_SetPixelShader(dev, d3dps) == D3D_OK) return true; #endif +#endif #endif return false; } diff --git a/gfx/drivers_font/xdk360_fonts.cpp b/gfx/drivers_font/xdk360_fonts.cpp index 3ca6d8d988..0c7e17cc24 100644 --- a/gfx/drivers_font/xdk360_fonts.cpp +++ b/gfx/drivers_font/xdk360_fonts.cpp @@ -484,7 +484,8 @@ static HRESULT xdk360_video_font_create_shaders(xdk360_video_font_t * font) if (hr >= 0) { - bool ret = d3d_create_vertex_shader(d3dr, (const DWORD*)pShaderCode->GetBufferPointer(), &font->s_FontLocals.m_pFontVertexShader ); + bool ret = d3d_create_vertex_shader(d3dr, (const DWORD*)pShaderCode->GetBufferPointer(), + (void**)&font->s_FontLocals.m_pFontVertexShader ); d3dxbuffer_release(pShaderCode); if (!ret) @@ -494,7 +495,8 @@ static HRESULT xdk360_video_font_create_shaders(xdk360_video_font_t * font) if (hr >= 0) { - ret = d3d_create_pixel_shader(d3dr, (DWORD*)pShaderCode->GetBufferPointer(), &font->s_FontLocals.m_pFontPixelShader); + ret = d3d_create_pixel_shader(d3dr, (DWORD*)pShaderCode->GetBufferPointer(), + (void**)&font->s_FontLocals.m_pFontPixelShader); d3dxbuffer_release(pShaderCode); if (!ret) @@ -504,7 +506,7 @@ static HRESULT xdk360_video_font_create_shaders(xdk360_video_font_t * font) } } - d3d_free_vertex_shader(font->s_FontLocals.m_pFontVertexShader); + d3d_free_vertex_shader(font->d3d->dev, font->s_FontLocals.m_pFontVertexShader); } font->s_FontLocals.m_pFontVertexShader = NULL; @@ -607,9 +609,9 @@ static void xdk360_free_font(void *data, bool is_threaded) font->m_TranslatorTable = NULL; if (font->s_FontLocals.m_pFontPixelShader) - d3d_free_pixel_shader(font->s_FontLocals.m_pFontPixelShader); + d3d_free_pixel_shader(font->d3d->dev, font->s_FontLocals.m_pFontPixelShader); if (font->s_FontLocals.m_pFontVertexShader) - d3d_free_vertex_shader(font->s_FontLocals.m_pFontVertexShader); + d3d_free_vertex_shader(font->d3d->dev, font->s_FontLocals.m_pFontVertexShader); if (font->s_FontLocals.m_pFontVertexDecl) d3d_vertex_declaration_free(font->s_FontLocals.m_pFontVertexDecl); diff --git a/gfx/drivers_shader/shader_hlsl.c b/gfx/drivers_shader/shader_hlsl.c index 9d052cdc15..c8271665be 100644 --- a/gfx/drivers_shader/shader_hlsl.c +++ b/gfx/drivers_shader/shader_hlsl.c @@ -389,18 +389,18 @@ static void hlsl_deinit_progs(hlsl_shader_data_t *hlsl) for (i = 1; i < RARCH_HLSL_MAX_SHADERS; i++) { if (hlsl->prg[i].fprg && hlsl->prg[i].fprg != hlsl->prg[0].fprg) - d3d_free_pixel_shader(hlsl->prg[i].fprg); + d3d_free_pixel_shader(hlsl->d3d->dev, hlsl->prg[i].fprg); if (hlsl->prg[i].vprg && hlsl->prg[i].vprg != hlsl->prg[0].vprg) - d3d_free_vertex_shader(hlsl->prg[i].vprg); + d3d_free_vertex_shader(hlsl->d3d->dev, hlsl->prg[i].vprg); hlsl->prg[i].fprg = NULL; hlsl->prg[i].vprg = NULL; } if (hlsl->prg[0].fprg) - d3d_free_pixel_shader(hlsl->prg[0].fprg); + d3d_free_pixel_shader(hlsl->d3d->dev, hlsl->prg[0].fprg); if (hlsl->prg[0].vprg) - d3d_free_vertex_shader(hlsl->prg[0].vprg); + d3d_free_vertex_shader(hlsl->d3d->dev, hlsl->prg[0].vprg); hlsl->prg[0].fprg = NULL; hlsl->prg[0].vprg = NULL;