From 71d1eb3c313535b5003884bb862635d4d2f8aae9 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Tue, 3 Nov 2015 03:47:05 +0100 Subject: VideoCommon: return code/uid from shader gens rather than passing in non-const references --- Source/Core/VideoCommon/PixelShaderGen.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderGen.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index e3d2ea87e9..a1cfcc4611 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -166,8 +166,9 @@ template static inline void WriteAlphaTest(T& out, pixel_shader_uid_dat template static inline void WriteFog(T& out, pixel_shader_uid_data* uid_data); template -static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType) +static inline T GeneratePixelShader(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType) { + T out; const u32 components = VertexLoaderManager::g_current_components; // Non-uid template parameters will write to the dummy data (=> gets optimized out) pixel_shader_uid_data dummy_data; @@ -667,6 +668,8 @@ static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_T if (text[sizeof(text) - 1] != 0x7C) PanicAlert("PixelShader generator - buffer too small, canary has been eaten!"); } + + return out; } @@ -1170,17 +1173,12 @@ static inline void WriteFog(T& out, pixel_shader_uid_data* uid_data) out.Write("\tprev.rgb = (prev.rgb * (256 - ifog) + " I_FOGCOLOR".rgb * ifog) >> 8;\n"); } -void GetPixelShaderUid(PixelShaderUid& object, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType) -{ - GeneratePixelShader(object, dstAlphaMode, ApiType); -} - -void GeneratePixelShaderCode(ShaderCode& object, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType) +PixelShaderUid GetPixelShaderUid(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType) { - GeneratePixelShader(object, dstAlphaMode, ApiType); + return GeneratePixelShader(dstAlphaMode, ApiType); } -void GetPixelShaderConstantProfile(PixelShaderConstantProfile& object, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType) +ShaderCode GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType) { - GeneratePixelShader(object, dstAlphaMode, ApiType); + return GeneratePixelShader(dstAlphaMode, ApiType); } -- cgit v1.2.3