From 374b6115e1ec2d81f5dfb15a93f592a59a184961 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 5 Sep 2017 03:21:58 +0200 Subject: [PATCH] Update HLSL backend --- gfx/drivers/d3d.cpp | 2 +- gfx/drivers/d3d.h | 4 ++-- gfx/drivers_renderchain/d3d9_hlsl_renderchain.cpp | 10 +++++----- gfx/drivers_shader/{shader_hlsl.c => shader_hlsl.cpp} | 11 +++++++++-- gfx/drivers_shader/shader_hlsl.h | 2 -- griffin/griffin.c | 4 ---- griffin/griffin_cpp.cpp | 4 ++++ 7 files changed, 21 insertions(+), 16 deletions(-) rename gfx/drivers_shader/{shader_hlsl.c => shader_hlsl.cpp} (98%) diff --git a/gfx/drivers/d3d.cpp b/gfx/drivers/d3d.cpp index 39f6c99f63..f65242ef53 100644 --- a/gfx/drivers/d3d.cpp +++ b/gfx/drivers/d3d.cpp @@ -1497,7 +1497,7 @@ static bool d3d_set_shader(void *data, if (path) shader = path; #ifdef HAVE_HLSL - d3d->shader = &hlsl_backend; + shader = &hlsl_backend; #endif break; default: diff --git a/gfx/drivers/d3d.h b/gfx/drivers/d3d.h index d30410733b..2ba3dcbfac 100644 --- a/gfx/drivers/d3d.h +++ b/gfx/drivers/d3d.h @@ -55,11 +55,11 @@ typedef struct void *vert_buf; } overlay_t; -#if defined(_XBOX) || defined(HAVE_D3D8) +#if defined(HAVE_D3D9) || defined(HAVE_D3D8) typedef struct Vertex { float x, y; -#if defined(_XBOX1) || defined(HAVE_D3D8) +#if defined(HAVE_D3D8) float z; float rhw; #endif diff --git a/gfx/drivers_renderchain/d3d9_hlsl_renderchain.cpp b/gfx/drivers_renderchain/d3d9_hlsl_renderchain.cpp index 6e09c92254..0971d5b3b7 100644 --- a/gfx/drivers_renderchain/d3d9_hlsl_renderchain.cpp +++ b/gfx/drivers_renderchain/d3d9_hlsl_renderchain.cpp @@ -16,6 +16,7 @@ #include #include +#include #include "../drivers/d3d.h" #include "../common/d3d_common.h" @@ -103,7 +104,11 @@ static bool renderchain_create_first_pass(void *data, chain->tex = d3d_texture_new(d3dr, NULL, chain->tex_w, chain->tex_h, 1, 0, +#ifdef _XBOX info->rgb32 ? D3DFMT_LIN_X8R8G8B8 : D3DFMT_LIN_R5G6B5, +#else + info->rgb32 ? D3DFMT_X8R8G8B8 : D3DFMT_R5G6B5, +#endif 0, 0, 0, 0, NULL, NULL); if (!chain->tex) @@ -278,11 +283,6 @@ static void hlsl_d3d9_renderchain_free(void *data) hlsl_d3d9_renderchain_deinit_shader(chain); hlsl_d3d9_renderchain_deinit(chain->renderchain_data); hlsl_d3d9_renderchain_clear(chain->renderchain_data); - -#ifndef _XBOX - if (chain->tracker) - state_tracker_free(chain->tracker); -#endif } diff --git a/gfx/drivers_shader/shader_hlsl.c b/gfx/drivers_shader/shader_hlsl.cpp similarity index 98% rename from gfx/drivers_shader/shader_hlsl.c rename to gfx/drivers_shader/shader_hlsl.cpp index 8fb74fc3a1..81f8ecb2a5 100644 --- a/gfx/drivers_shader/shader_hlsl.c +++ b/gfx/drivers_shader/shader_hlsl.cpp @@ -14,19 +14,26 @@ * If not, see . */ +#include +#include #include +#include + +#include + +#include "../../defines/d3d_defines.h" #ifdef HAVE_CONFIG_H #include "../../config.h" #endif -#include "shader_hlsl.h" - #include "../video_shader_parse.h" #include "../drivers/d3d.h" #include "../../managers/state_manager.h" +#include "../../verbosity.h" #include "../drivers/d3d_shaders/opaque.hlsl.d3d9.h" +#include "shader_hlsl.h" struct shader_program_hlsl_data { diff --git a/gfx/drivers_shader/shader_hlsl.h b/gfx/drivers_shader/shader_hlsl.h index 2fe39ee7c2..77bbe3c599 100644 --- a/gfx/drivers_shader/shader_hlsl.h +++ b/gfx/drivers_shader/shader_hlsl.h @@ -21,8 +21,6 @@ #include "../video_driver.h" -void hlsl_set_proj_matrix(void *data, XMMATRIX rotation_value); - #define RARCH_HLSL_MAX_SHADERS 16 #endif diff --git a/griffin/griffin.c b/griffin/griffin.c index 528cefc8a6..967ee00162 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -275,10 +275,6 @@ VIDEO SHADERS #endif #endif -#ifdef HAVE_HLSL -#include "../gfx/drivers_shader/shader_hlsl.c" -#endif - #ifdef HAVE_GLSL #include "../gfx/drivers_shader/shader_glsl.c" #endif diff --git a/griffin/griffin_cpp.cpp b/griffin/griffin_cpp.cpp index dec2906b81..eb2c7358f6 100644 --- a/griffin/griffin_cpp.cpp +++ b/griffin/griffin_cpp.cpp @@ -114,6 +114,10 @@ VIDEO CONTEXT #if defined(HAVE_D3D) #include "../gfx/drivers_context/d3d_ctx.cpp" + +#ifdef HAVE_HLSL +#include "../gfx/drivers_shader/shader_hlsl.cpp" +#endif #endif /*============================================================