From d94f3c4155d8248bb08cbbf7fcd96d8d3d44516d Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 28 Jan 2013 15:18:54 -0600 Subject: Stop using std::pair and std::map. Switch over to u64 and std::unordered_map. Provides a very small speed boost. --- Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp') diff --git a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp index 974d839900..e1763038ec 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp @@ -37,7 +37,11 @@ GLenum ProgramFormat; GLuint ProgramShaderCache::PCacheEntry::prog_format = 0; -std::pair ProgramShaderCache::CurrentShaderProgram; +u64 ProgramShaderCache::CurrentShaderProgram; +u64 Create_Pair(u32 key1, u32 key2) +{ + return (((u64)key1) << 32) | key2; +} const char *UniformNames[NUM_UNIFORMS] = { // PIXEL SHADER UNIFORMS @@ -142,7 +146,7 @@ void ProgramShaderCache::SetBothShaders(GLuint PS, GLuint VS) return; } - std::pair ShaderPair = std::make_pair(PS, VS); + u64 ShaderPair = Create_Pair(PS, VS); // program is already bound if(ShaderPair == CurrentShaderProgram) return; @@ -264,7 +268,7 @@ void ProgramShaderCache::Init(void) } CurrentProgram = 0; - CurrentShaderProgram = std::pair(0,0); + CurrentShaderProgram = 0; } void ProgramShaderCache::Shutdown(void) -- cgit v1.2.3