summaryrefslogtreecommitdiff
path: root/vcl/inc/win/salgdi.h
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2016-01-07 15:05:58 +0200
committerTor Lillqvist <tml@collabora.com>2016-01-21 10:04:04 +0000
commit4622689fad7ddff72cd08da9611ccfacdb0aa7bd (patch)
tree69799d69d624d09e4809f05f13b04466f7f3be2a /vcl/inc/win/salgdi.h
parent88b458d55dc1f56e13bbf34aa7c6758e13707fa1 (diff)
tdf#96420: Re-introduce SimpleWinLayout
Should fix lots of the problems with glyph layout. The UniscribeLayout class turned out to be much less correct that one might have hoped. Use OpenGL glyph caching also for SimpleWinLayout to avoid performance decrease. Change-Id: Ia0cf2f5c1ff21b9347fa7662ded69abc347e77b7 Reviewed-on: https://gerrit.libreoffice.org/21656 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
Diffstat (limited to 'vcl/inc/win/salgdi.h')
-rw-r--r--vcl/inc/win/salgdi.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h
index d90e429051bb..a889b45dca27 100644
--- a/vcl/inc/win/salgdi.h
+++ b/vcl/inc/win/salgdi.h
@@ -186,6 +186,7 @@ class WinSalGraphics : public SalGraphics
friend class ScopedFont;
friend class OpenGLCompatibleDC;
friend class WinLayout;
+ friend class SimpleWinLayout;
friend class UniscribeLayout;
protected:
@@ -213,6 +214,9 @@ private:
RGNDATA* mpClipRgnData; // ClipRegion-Data
RGNDATA* mpStdClipRgnData; // Cache Standard-ClipRegion-Data
ImplFontAttrCache* mpFontAttrCache; // Cache font attributes from files in so/share/fonts
+ bool mbFontKernInit; // FALSE: FontKerns must be queried
+ KERNINGPAIR* mpFontKernPairs; // Kerning Pairs of the current Font
+ sal_uIntPtr mnFontKernPairCount;// Number of Kerning Pairs of the current Font
int mnPenWidth; // Linienbreite
public:
@@ -329,6 +333,12 @@ protected:
const SalBitmap* pAlphaBitmap) override;
virtual bool drawAlphaRect( long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency ) override;
+private:
+ // local helpers
+
+ // get kernign pairs of the current font
+ sal_uLong GetKernPairs();
+
public:
// public SalGraphics methods, the interface to the independent vcl part
@@ -448,7 +458,7 @@ void ImplGetLogFontFromFontSelect( HDC, const FontSelectPattern*,
#define MAX_64KSALPOINTS ((((sal_uInt16)0xFFFF)-8)/sizeof(POINTS))
// #102411# Win's GCP mishandles kerning => we need to do it ourselves
-// kerning pairs is sorted by
+// SalGraphicsData::mpFontKernPairs is sorted by
inline bool ImplCmpKernData( const KERNINGPAIR& a, const KERNINGPAIR& b )
{
if( a.wFirst < b.wFirst )