vcl/inc/win/saldata.hxx | 4 ++-- vcl/inc/win/winlayout.hxx | 37 +++++++++++++++++++------------------ vcl/win/gdi/winlayout.cxx | 16 ++++++++-------- 3 files changed, 29 insertions(+), 28 deletions(-)
New commits: commit 7d8a756164dda3b5b08eef68a2925fa4704c33ab Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Fri Oct 5 09:41:32 2018 +0000 Commit: Jan-Marek Glogowski <glo...@fbihome.de> CommitDate: Sat Oct 6 10:06:44 2018 +0200 WIN rename GlyphCache to OpenGLGlyphCache The Windows-backend based GlyphCache is OpenGL specific, so reflect that by renaming it. Change-Id: I1034bfde14792f0b6a807f8e938742556a31fcfb Reviewed-on: https://gerrit.libreoffice.org/61452 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> diff --git a/vcl/inc/win/saldata.hxx b/vcl/inc/win/saldata.hxx index ae43b12af4ab..d036ffb30a23 100644 --- a/vcl/inc/win/saldata.hxx +++ b/vcl/inc/win/saldata.hxx @@ -38,7 +38,7 @@ class WinSalFrame; class WinSalVirtualDevice; class WinSalPrinter; namespace vcl { class Font; } -struct GlobalGlyphCache; +struct GlobalOpenGLGlyphCache; struct HDCCache; struct TempFontItem; class TextOutRenderer; @@ -121,7 +121,7 @@ public: std::unique_ptr<TextOutRenderer> m_pD2DWriteTextOutRenderer; // tdf#107205 need 2 instances because D2DWrite can't rotate text std::unique_ptr<TextOutRenderer> m_pExTextOutRenderer; - std::unique_ptr<GlobalGlyphCache> m_pGlobalGlyphCache; + std::unique_ptr<GlobalOpenGLGlyphCache> m_pGlobalOpenGLGlyphCache; std::unique_ptr<TheTextureCache> m_pTextureCache; }; diff --git a/vcl/inc/win/winlayout.hxx b/vcl/inc/win/winlayout.hxx index b08a5d0ab78f..036c1d3bcbbd 100644 --- a/vcl/inc/win/winlayout.hxx +++ b/vcl/inc/win/winlayout.hxx @@ -58,48 +58,48 @@ struct OpenGLGlyphDrawElement } }; -class GlyphCache; +class OpenGLGlyphCache; -struct GlobalGlyphCache +struct GlobalOpenGLGlyphCache { - GlobalGlyphCache() + GlobalOpenGLGlyphCache() : maPackedTextureAtlas(2048, 2048) {} PackedTextureAtlasManager maPackedTextureAtlas; - std::unordered_set<GlyphCache*> maGlyphCaches; + std::unordered_set<OpenGLGlyphCache*> maOpenGLGlyphCaches; - static GlobalGlyphCache * get(); + static GlobalOpenGLGlyphCache * get(); }; -class GlyphCache +class OpenGLGlyphCache { private: std::unordered_map<int, OpenGLGlyphDrawElement> maOpenGLTextureCache; public: - GlyphCache() + OpenGLGlyphCache() { - GlobalGlyphCache::get()->maGlyphCaches.insert(this); + GlobalOpenGLGlyphCache::get()->maOpenGLGlyphCaches.insert(this); } - ~GlyphCache() + ~OpenGLGlyphCache() { - GlobalGlyphCache::get()->maGlyphCaches.erase(this); + GlobalOpenGLGlyphCache::get()->maOpenGLGlyphCaches.erase(this); } static bool ReserveTextureSpace(OpenGLGlyphDrawElement& rElement, int nWidth, int nHeight) { - GlobalGlyphCache* pGlobalGlyphCache = GlobalGlyphCache::get(); - rElement.maTexture = pGlobalGlyphCache->maPackedTextureAtlas.Reserve(nWidth, nHeight); + GlobalOpenGLGlyphCache* pGlobalOpenGLGlyphCache = GlobalOpenGLGlyphCache::get(); + rElement.maTexture = pGlobalOpenGLGlyphCache->maPackedTextureAtlas.Reserve(nWidth, nHeight); if (!rElement.maTexture) return false; - std::vector<GLuint> aTextureIDs = pGlobalGlyphCache->maPackedTextureAtlas.ReduceTextureNumber(8); + std::vector<GLuint> aTextureIDs = pGlobalOpenGLGlyphCache->maPackedTextureAtlas.ReduceTextureNumber(8); if (!aTextureIDs.empty()) { - for (auto& pGlyphCache: pGlobalGlyphCache->maGlyphCaches) + for (auto& pOpenGLGlyphCache: pGlobalOpenGLGlyphCache->maOpenGLGlyphCaches) { - pGlyphCache->RemoveTextures(aTextureIDs); + pOpenGLGlyphCache->RemoveTextures(aTextureIDs); } } return true; @@ -150,8 +150,6 @@ class WinFontInstance : public LogicalFontInstance public: virtual ~WinFontInstance() override; - bool CacheGlyphToAtlas(HDC hDC, HFONT hFont, int nGlyphIndex, SalGraphics& rGraphics); - GlyphCache& GetGlyphCache() { return maGlyphCache; } bool hasHScale() const; void SetGraphics(WinSalGraphics*); @@ -166,6 +164,9 @@ public: const WinFontFace * GetFontFace() const { return static_cast<const WinFontFace *>(LogicalFontInstance::GetFontFace()); } + bool CacheGlyphToAtlas(HDC hDC, HFONT hFont, int nGlyphIndex, SalGraphics& rGraphics); + OpenGLGlyphCache& GetOpenGLGlyphCache() { return maOpenGLGlyphCache; } + private: explicit WinFontInstance(const WinFontFace&, const FontSelectPattern&); @@ -174,7 +175,7 @@ private: WinSalGraphics *m_pGraphics; HFONT m_hFont; float m_fScale; - GlyphCache maGlyphCache; + OpenGLGlyphCache maOpenGLGlyphCache; }; class TextOutRenderer diff --git a/vcl/win/gdi/winlayout.cxx b/vcl/win/gdi/winlayout.cxx index 84cc3600de3b..35303fc5c8a5 100644 --- a/vcl/win/gdi/winlayout.cxx +++ b/vcl/win/gdi/winlayout.cxx @@ -48,12 +48,12 @@ #include <shlwapi.h> #include <winver.h> -GlobalGlyphCache * GlobalGlyphCache::get() { +GlobalOpenGLGlyphCache * GlobalOpenGLGlyphCache::get() { SalData * data = GetSalData(); - if (!data->m_pGlobalGlyphCache) { - data->m_pGlobalGlyphCache.reset(new GlobalGlyphCache); + if (!data->m_pGlobalOpenGLGlyphCache) { + data->m_pGlobalOpenGLGlyphCache.reset(new GlobalOpenGLGlyphCache); } - return data->m_pGlobalGlyphCache.get(); + return data->m_pGlobalOpenGLGlyphCache.get(); } bool WinFontInstance::CacheGlyphToAtlas(HDC hDC, HFONT hFont, int nGlyphIndex, SalGraphics& rGraphics) @@ -200,12 +200,12 @@ bool WinFontInstance::CacheGlyphToAtlas(HDC hDC, HFONT hFont, int nGlyphIndex, S pTxt->ReleaseFont(); - if (!GlyphCache::ReserveTextureSpace(aElement, nBitmapWidth, nBitmapHeight)) + if (!OpenGLGlyphCache::ReserveTextureSpace(aElement, nBitmapWidth, nBitmapHeight)) return false; if (!aDC.copyToTexture(aElement.maTexture)) return false; - maGlyphCache.PutDrawElementInCache(aElement, nGlyphIndex); + maOpenGLGlyphCache.PutDrawElementInCache(aElement, nGlyphIndex); SelectFont(aDC.getCompatibleHDC(), hOrigFont); @@ -418,7 +418,7 @@ bool WinSalGraphics::CacheGlyphs(const GenericSalLayout& rLayout) const GlyphItem* pGlyph; while (rLayout.GetNextGlyph(&pGlyph, aPos, nStart)) { - if (!rFont.GetGlyphCache().IsGlyphCached(pGlyph->maGlyphId)) + if (!rFont.GetOpenGLGlyphCache().IsGlyphCached(pGlyph->maGlyphId)) { if (!rFont.CacheGlyphToAtlas(hDC, hFONT, pGlyph->maGlyphId, *this)) return false; @@ -449,7 +449,7 @@ bool WinSalGraphics::DrawCachedGlyphs(const GenericSalLayout& rLayout) const GlyphItem* pGlyph; while (rLayout.GetNextGlyph(&pGlyph, aPos, nStart)) { - OpenGLGlyphDrawElement& rElement(rFont.GetGlyphCache().GetDrawElement(pGlyph->maGlyphId)); + OpenGLGlyphDrawElement& rElement(rFont.GetOpenGLGlyphCache().GetDrawElement(pGlyph->maGlyphId)); OpenGLTexture& rTexture = rElement.maTexture; if (!rTexture) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits