From fadd4a2c740e2abe911d29d00f273d115b2c9b54 Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Tue, 30 Dec 2014 19:16:35 +0100 Subject: prefer ptr_container to manual memory management Signed-off-by: Michael Meeks Conflicts: vcl/source/opengl/OpenGLContext.cxx Change-Id: I11326c2873aad5116fd70bfa31eb94e93fef3f40 --- include/vcl/opengl/OpenGLContext.hxx | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) (limited to 'include') diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx index 1ae9ac6e0545..e2d6b777c9ee 100644 --- a/include/vcl/opengl/OpenGLContext.hxx +++ b/include/vcl/opengl/OpenGLContext.hxx @@ -52,6 +52,7 @@ class NSOpenGLView; #include #include #include +#include #include #include #include @@ -161,30 +162,7 @@ struct GLWindow ~GLWindow(); }; -struct ProgramKey -{ - OUString maVertexShader; - OUString maFragmentShader; - - ProgramKey( const OUString& rVertexShader, const OUString& rFragmentShader ): - maVertexShader(rVertexShader), - maFragmentShader(rFragmentShader) - { - } -}; - -inline bool operator==( ProgramKey const& k1, ProgramKey const& k2 ) -{ - return k1.maVertexShader == k2.maVertexShader && k1.maFragmentShader == k2.maFragmentShader; -} - -inline std::size_t hash_value( ProgramKey const& rKey ) -{ - std::size_t nSeed = 0x9e3779b9; - nSeed = rKey.maVertexShader.hashCode(); - nSeed = rKey.maFragmentShader.hashCode() + 0x9e3779b9 + (nSeed << 6) + (nSeed >> 2); - return nSeed; -} +typedef std::pair ProgramKey; class VCLOPENGL_DLLPUBLIC OpenGLContext { @@ -289,7 +267,7 @@ private: OpenGLFramebuffer* mpFirstFramebuffer; OpenGLFramebuffer* mpLastFramebuffer; - boost::unordered_map maPrograms; + boost::ptr_map maPrograms; OpenGLProgram* mpCurrentProgram; #ifdef DBG_UTIL std::set maParents; -- cgit