From 2d95ec38742657de16ff83d649016903557eb479 Mon Sep 17 00:00:00 2001 From: Akash Jain Date: Tue, 14 Jun 2016 13:07:20 +0530 Subject: GSoC: Add a generic GetTable function for WinFontFace Change-Id: Ia10ffd8c4b5e0cef89571204f5f1df32daa9edb7 --- vcl/win/gdi/salfont.cxx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'vcl/win/gdi') 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 -- cgit