diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2019-10-31 11:47:18 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2019-11-27 09:55:13 +0100 |
commit | 31b2c10484fc265ff0f05ce405c2ed5b982f8714 (patch) | |
tree | c2417156e30bff34610ca49943a73794d21adea4 /vcl/inc/opengl | |
parent | 840f55c0f6e21d00b51e4a52824c7eb7f938122f (diff) |
implement Skia native controls drawing/caching for Windows
This actually fixes a number of drawing problems (e.g. highlight
in popup menus), it seems the other code path is buggy.
Change-Id: Iea697f577d08d20e338224d5ff5b3bf7b653f8d1
Diffstat (limited to 'vcl/inc/opengl')
-rw-r--r-- | vcl/inc/opengl/win/gdiimpl.hxx | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/vcl/inc/opengl/win/gdiimpl.hxx b/vcl/inc/opengl/win/gdiimpl.hxx index 2130654a3951..98ddabbc7a53 100644 --- a/vcl/inc/opengl/win/gdiimpl.hxx +++ b/vcl/inc/opengl/win/gdiimpl.hxx @@ -79,30 +79,16 @@ public: }; -struct ControlCacheHashFunction -{ - std::size_t operator()(ControlCacheKey const& aCache) const - { - std::size_t seed = 0; - boost::hash_combine(seed, aCache.mnType); - boost::hash_combine(seed, aCache.mnPart); - boost::hash_combine(seed, aCache.mnState); - boost::hash_combine(seed, aCache.maSize.Width()); - boost::hash_combine(seed, aCache.maSize.Height()); - return seed; - } -}; - -typedef std::pair<ControlCacheKey, std::unique_ptr<TextureCombo>> ControlCachePair; -typedef o3tl::lru_map<ControlCacheKey, std::unique_ptr<TextureCombo>, ControlCacheHashFunction> ControlCacheType; +typedef std::pair<ControlCacheKey, std::unique_ptr<TextureCombo>> OpenGLControlCachePair; +typedef o3tl::lru_map<ControlCacheKey, std::unique_ptr<TextureCombo>, ControlCacheHashFunction> OpenGLControlCacheType; -class TheTextureCache { - ControlCacheType cache; +class OpenGLControlsCache { + OpenGLControlCacheType cache; - TheTextureCache(); + OpenGLControlsCache(); public: - static ControlCacheType & get(); + static OpenGLControlCacheType & get(); }; #endif |