diff options
author | Akash Jain <akash96j@gmail.com> | 2016-06-14 13:07:20 +0530 |
---|---|---|
committer | Khaled Hosny <khaledhosny@eglug.org> | 2016-10-18 20:41:28 +0200 |
commit | 2d95ec38742657de16ff83d649016903557eb479 (patch) | |
tree | 4dc5244687a805dce975b2b018ecb916ec5608dc /vcl/win/gdi | |
parent | c70eeb2be7ac0a2c0c81a7cbc9642b0ae824b110 (diff) |
GSoC: Add a generic GetTable function for WinFontFace
Change-Id: Ia10ffd8c4b5e0cef89571204f5f1df32daa9edb7
Diffstat (limited to 'vcl/win/gdi')
-rw-r--r-- | vcl/win/gdi/salfont.cxx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx index 8d97f4060d3a..2fefa79deb09 100644 --- a/vcl/win/gdi/salfont.cxx +++ b/vcl/win/gdi/salfont.cxx @@ -914,7 +914,7 @@ sal_IntPtr WinFontFace::GetFontId() const } static unsigned GetUInt( const unsigned char* p ) { return((p[0]<<24)+(p[1]<<16)+(p[2]<<8)+p[3]);} -static inline DWORD CalcTag( const char p[4]) { return (p[0]+(p[1]<<8)+(p[2]<<16)+(p[3]<<24)); } +static inline DWORD CalcTag( const char p[5]) { return (p[0]+(p[1]<<8)+(p[2]<<16)+(p[3]<<24)); } void WinFontFace::UpdateFromHDC( HDC hDC ) const { @@ -1058,6 +1058,18 @@ void WinFontFace::ReadCmapTable( HDC hDC ) const } } +int WinFontFace::GetTable(const char pTagName[5], const unsigned char*& pResBuffer, HDC hDC) +{ + const DWORD nTableTag = CalcTag( pTagName ); + RawFontData aRawFontData( hDC, nTableTag ); + + if( !aRawFontData.get() ) + return 0; + + pResBuffer = aRawFontData.steal(); + return aRawFontData.size(); +} + void WinFontFace::GetFontCapabilities( HDC hDC ) const { // read this only once per font |