diff options
| author | Jules Blok <jules.blok@gmail.com> | 2014-12-14 19:41:16 +0100 |
|---|---|---|
| committer | Jules Blok <jules.blok@gmail.com> | 2014-12-14 21:23:20 +0100 |
| commit | aa4242fd9c807633f090baac2350f786a67ebe3d (patch) | |
| tree | fe0e27f3c2c95f8541a01660c25cd84e9cd2c7a7 /Source/Core/VideoCommon | |
| parent | b406e4e1f2c696ba5f6bec04ea2e6a8cc03a02d1 (diff) | |
GeometryShaderGen: Pass the primitive type and always run the generator regardless of stereoscopy.
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/GeometryShaderGen.cpp | 13 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/GeometryShaderGen.h | 5 |
2 files changed, 9 insertions, 9 deletions
diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp index 2762dcd73b..3a2282521e 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.cpp +++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp @@ -12,7 +12,7 @@ static char text[16384]; template<class T> -static inline void GenerateGeometryShader(T& out, u32 components, API_TYPE ApiType) +static inline void GenerateGeometryShader(T& out, u32 primitive_type, API_TYPE ApiType) { // Non-uid template parameters will write to the dummy data (=> gets optimized out) geometry_shader_uid_data dummy_data; @@ -26,8 +26,7 @@ static inline void GenerateGeometryShader(T& out, u32 components, API_TYPE ApiTy if (is_writing_shadercode) text[sizeof(text) - 1] = 0x7C; // canary - out.Write("//Geometry Shader for 3D stereoscopy\n"); - + uid_data->primitive_type = primitive_type; uid_data->stereo = g_ActiveConfig.iStereoMode > 0; if (ApiType == API_OPENGL) { @@ -156,12 +155,12 @@ static inline void GenerateGeometryShader(T& out, u32 components, API_TYPE ApiTy } } -void GetGeometryShaderUid(GeometryShaderUid& object, u32 components, API_TYPE ApiType) +void GetGeometryShaderUid(GeometryShaderUid& object, u32 primitive_type, API_TYPE ApiType) { - GenerateGeometryShader<GeometryShaderUid>(object, components, ApiType); + GenerateGeometryShader<GeometryShaderUid>(object, primitive_type, ApiType); } -void GenerateGeometryShaderCode(ShaderCode& object, u32 components, API_TYPE ApiType) +void GenerateGeometryShaderCode(ShaderCode& object, u32 primitive_type, API_TYPE ApiType) { - GenerateGeometryShader<ShaderCode>(object, components, ApiType); + GenerateGeometryShader<ShaderCode>(object, primitive_type, ApiType); } diff --git a/Source/Core/VideoCommon/GeometryShaderGen.h b/Source/Core/VideoCommon/GeometryShaderGen.h index 3f7dc5198b..93e222b25e 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.h +++ b/Source/Core/VideoCommon/GeometryShaderGen.h @@ -16,11 +16,12 @@ struct geometry_shader_uid_data u32 stereo : 1; u32 numTexGens : 4; u32 pixel_lighting : 1; + u32 primitive_type : 2; }; #pragma pack() typedef ShaderUid<geometry_shader_uid_data> GeometryShaderUid; -void GenerateGeometryShaderCode(ShaderCode& object, u32 components, API_TYPE ApiType); -void GetGeometryShaderUid(GeometryShaderUid& object, u32 components, API_TYPE ApiType); +void GenerateGeometryShaderCode(ShaderCode& object, u32 primitive_type, API_TYPE ApiType); +void GetGeometryShaderUid(GeometryShaderUid& object, u32 primitive_type, API_TYPE ApiType); |
