From 3bc00eca4acf9dfc3b2834077cee552f32c8f107 Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Fri, 24 Jul 2015 14:19:35 +0900 Subject: Use LRU map for caching of native widgets Change-Id: Ia0423dac5309aabc5e81357cf4f67b5ee14bab31 --- vcl/opengl/x11/gdiimpl.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/vcl/opengl/x11/gdiimpl.cxx b/vcl/opengl/x11/gdiimpl.cxx index 3890b6443de3..211441931c00 100644 --- a/vcl/opengl/x11/gdiimpl.cxx +++ b/vcl/opengl/x11/gdiimpl.cxx @@ -25,6 +25,8 @@ #include #include +#include + X11OpenGLSalGraphicsImpl::X11OpenGLSalGraphicsImpl( X11SalGraphics& rParent ): OpenGLSalGraphicsImpl(rParent,rParent.GetGeometryProvider()), mrParent(rParent) @@ -117,9 +119,10 @@ struct TextureCombo std::unique_ptr mpMask; }; -typedef std::unordered_map, ControlCacheHashFunction> ControlCacheType; +typedef typename std::pair> ControlCachePair; +typedef o3tl::lru_map, ControlCacheHashFunction> ControlCacheType; -ControlCacheType gTextureCache; +ControlCacheType gTextureCache(200); bool X11OpenGLSalGraphicsImpl::RenderPixmap(X11Pixmap* pPixmap, X11Pixmap* pMask, int nX, int nY, TextureCombo& rCombo) { @@ -235,7 +238,8 @@ bool X11OpenGLSalGraphicsImpl::RenderAndCacheNativeControl(X11Pixmap* pPixmap, X { std::unique_ptr pCombo(new TextureCombo); bool bResult = RenderPixmap(pPixmap, pMask, nX, nY, *pCombo); - gTextureCache[aControlCacheKey] = std::move(pCombo); + ControlCachePair pair(aControlCacheKey, std::move(pCombo)); + gTextureCache.insert(std::move(pair)); return bResult; } -- cgit