diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-06-09 08:54:17 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@novell.com> | 2011-06-09 10:29:01 +0100 |
commit | 65013b27727440fa26a746302acb4fcc5de4fde6 (patch) | |
tree | e8784833d8aa19e1c3cd3101388b3f8e7e5d5685 /vcl | |
parent | b3b22fbf354d436628cb815a8cbac68c71d4a0e1 (diff) |
Resolves: fdo#37668 bitwise operations on signed numbers
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/aqua/inc/salgdi.h | 4 | ||||
-rw-r--r-- | vcl/aqua/source/gdi/salgdi.cxx | 9 | ||||
-rw-r--r-- | vcl/inc/vcl/salgdi.hxx | 5 | ||||
-rw-r--r-- | vcl/source/gdi/outdev3.cxx | 2 | ||||
-rw-r--r-- | vcl/unx/headless/svpgdi.hxx | 4 | ||||
-rw-r--r-- | vcl/unx/headless/svppspgraphics.cxx | 8 | ||||
-rw-r--r-- | vcl/unx/headless/svppspgraphics.hxx | 4 | ||||
-rw-r--r-- | vcl/unx/headless/svptext.cxx | 10 | ||||
-rw-r--r-- | vcl/unx/inc/pspgraphics.h | 4 | ||||
-rw-r--r-- | vcl/unx/inc/salgdi.h | 4 | ||||
-rw-r--r-- | vcl/unx/source/gdi/pspgraphics.cxx | 8 | ||||
-rw-r--r-- | vcl/unx/source/gdi/salgdi3.cxx | 10 | ||||
-rw-r--r-- | vcl/win/inc/salgdi.h | 4 | ||||
-rw-r--r-- | vcl/win/source/gdi/salgdi3.cxx | 4 |
14 files changed, 41 insertions, 39 deletions
diff --git a/vcl/aqua/inc/salgdi.h b/vcl/aqua/inc/salgdi.h index c69f5d70bf96..bcf3a609f59a 100644 --- a/vcl/aqua/inc/salgdi.h +++ b/vcl/aqua/inc/salgdi.h @@ -338,8 +338,8 @@ public: Int32Vector& rWidths, Ucs2UIntMap& rUnicodeEnc ); - virtual sal_Bool GetGlyphBoundRect( long nIndex, Rectangle& ); - virtual sal_Bool GetGlyphOutline( long nIndex, basegfx::B2DPolyPolygon& ); + virtual sal_Bool GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& ); + virtual sal_Bool GetGlyphOutline( sal_GlyphId nIndex, basegfx::B2DPolyPolygon& ); virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ); virtual void DrawServerFontLayout( const ServerFontLayout& ); diff --git a/vcl/aqua/source/gdi/salgdi.cxx b/vcl/aqua/source/gdi/salgdi.cxx index c64601ba48a3..2d04996375f4 100644 --- a/vcl/aqua/source/gdi/salgdi.cxx +++ b/vcl/aqua/source/gdi/salgdi.cxx @@ -1809,15 +1809,16 @@ static OSStatus GgoMoveToProc( const Float32Point* pPoint, void* pData ) return eStatus; } -sal_Bool AquaSalGraphics::GetGlyphOutline( long nGlyphId, basegfx::B2DPolyPolygon& rPolyPoly ) +sal_Bool AquaSalGraphics::GetGlyphOutline( sal_GlyphId nGlyphId, basegfx::B2DPolyPolygon& rPolyPoly ) { GgoData aGgoData; aGgoData.mpPolyPoly = &rPolyPoly; rPolyPoly.clear(); ATSUStyle rATSUStyle = maATSUStyle; // TODO: handle glyph fallback when CWS pdffix02 is integrated + GlyphID aGlyphId = nGlyphId & GF_IDXMASK; OSStatus eGgoStatus = noErr; - OSStatus eStatus = ATSUGlyphGetCubicPaths( rATSUStyle, nGlyphId, + OSStatus eStatus = ATSUGlyphGetCubicPaths( rATSUStyle, aGlyphId, GgoMoveToProc, GgoLineToProc, GgoCurveToProc, GgoClosePathProc, &aGgoData, &eGgoStatus ); if( (eStatus != noErr) ) // TODO: why is (eGgoStatus!=noErr) when curves are involved? @@ -1851,10 +1852,10 @@ long AquaSalGraphics::GetGraphicsWidth() const // ----------------------------------------------------------------------- -sal_Bool AquaSalGraphics::GetGlyphBoundRect( long nGlyphId, Rectangle& rRect ) +sal_Bool AquaSalGraphics::GetGlyphBoundRect( sal_GlyphId nGlyphId, Rectangle& rRect ) { ATSUStyle rATSUStyle = maATSUStyle; // TODO: handle glyph fallback - GlyphID aGlyphId = nGlyphId; + GlyphID aGlyphId = nGlyphId & GF_IDXMASK; ATSGlyphScreenMetrics aGlyphMetrics; OSStatus eStatus = ATSUGlyphGetScreenMetrics( rATSUStyle, 1, &aGlyphId, 0, FALSE, !mbNonAntialiasedText, &aGlyphMetrics ); diff --git a/vcl/inc/vcl/salgdi.hxx b/vcl/inc/vcl/salgdi.hxx index 5b9e59f68d8f..f2aa64a9549a 100644 --- a/vcl/inc/vcl/salgdi.hxx +++ b/vcl/inc/vcl/salgdi.hxx @@ -37,6 +37,7 @@ #include "osl/thread.hxx" #include "vcl/outdev.hxx" #include "vcl/salnativewidgets.hxx" +#include "sallayout.hxx" #include <map> @@ -298,8 +299,8 @@ public: Int32Vector& rWidths, Ucs2UIntMap& rUnicodeEnc ) = 0; - virtual sal_Bool GetGlyphBoundRect( long nIndex, Rectangle& ) = 0; - virtual sal_Bool GetGlyphOutline( long nIndex, basegfx::B2DPolyPolygon& ) = 0; + virtual sal_Bool GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& ) = 0; + virtual sal_Bool GetGlyphOutline( sal_GlyphId nIndex, basegfx::B2DPolyPolygon& ) = 0; virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) = 0; virtual void DrawServerFontLayout( const ServerFontLayout& ) = 0; diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index f0110047db5c..11da7ab19086 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -6106,7 +6106,7 @@ void OutputDevice::forceFallbackFontToFit(SalLayout &rFallback, ImplFontEntry &r if( !rFallback.GetNextGlyphs( 1, &nLGlyph, aPos, nStart ) ) break; - int nFontTag = nFallbackLevel << GF_FONTSHIFT; + sal_GlyphId nFontTag = nFallbackLevel << GF_FONTSHIFT; nLGlyph |= nFontTag; // get bounding rectangle of individual glyph diff --git a/vcl/unx/headless/svpgdi.hxx b/vcl/unx/headless/svpgdi.hxx index 0489606e9fce..3857c57af2e7 100644 --- a/vcl/unx/headless/svpgdi.hxx +++ b/vcl/unx/headless/svpgdi.hxx @@ -110,8 +110,8 @@ public: bool bVertical, Int32Vector& rWidths, Ucs2UIntMap& rUnicodeEnc ); - virtual sal_Bool GetGlyphBoundRect( long nIndex, Rectangle& ); - virtual sal_Bool GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& ); + virtual sal_Bool GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& ); + virtual sal_Bool GetGlyphOutline( sal_GlyphId nIndex, ::basegfx::B2DPolyPolygon& ); virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ); virtual void DrawServerFontLayout( const ServerFontLayout& ); virtual bool supportsOperation( OutDevSupportType ) const; diff --git a/vcl/unx/headless/svppspgraphics.cxx b/vcl/unx/headless/svppspgraphics.cxx index 7200019db9d2..fa21c139a581 100644 --- a/vcl/unx/headless/svppspgraphics.cxx +++ b/vcl/unx/headless/svppspgraphics.cxx @@ -847,7 +847,7 @@ sal_uLong PspGraphics::GetKernPairs( sal_uLong nPairs, ImplKernPairData *pKernPa return nHavePairs; } -sal_Bool PspGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) +sal_Bool PspGraphics::GetGlyphBoundRect( sal_GlyphId nGlyphIndex, Rectangle& rRect ) { int nLevel = nGlyphIndex >> GF_FONTSHIFT; if( nLevel >= MAX_FALLBACK ) @@ -857,13 +857,13 @@ sal_Bool PspGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) if( !pSF ) return sal_False; - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; const GlyphMetric& rGM = pSF->GetGlyphMetric( nGlyphIndex ); rRect = Rectangle( rGM.GetOffset(), rGM.GetSize() ); return sal_True; } -sal_Bool PspGraphics::GetGlyphOutline( long nGlyphIndex, +sal_Bool PspGraphics::GetGlyphOutline( sal_GlyphId nGlyphIndex, ::basegfx::B2DPolyPolygon& rB2DPolyPoly ) { int nLevel = nGlyphIndex >> GF_FONTSHIFT; @@ -874,7 +874,7 @@ sal_Bool PspGraphics::GetGlyphOutline( long nGlyphIndex, if( !pSF ) return sal_False; - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; if( pSF->GetGlyphOutline( nGlyphIndex, rB2DPolyPoly ) ) return sal_True; diff --git a/vcl/unx/headless/svppspgraphics.hxx b/vcl/unx/headless/svppspgraphics.hxx index 78f36f85295e..19fda96998bd 100644 --- a/vcl/unx/headless/svppspgraphics.hxx +++ b/vcl/unx/headless/svppspgraphics.hxx @@ -129,8 +129,8 @@ public: bool bVertical, Int32Vector& rWidths, Ucs2UIntMap& rUnicodeEnc ); - virtual sal_Bool GetGlyphBoundRect( long nIndex, Rectangle& ); - virtual sal_Bool GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& ); + virtual sal_Bool GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& ); + virtual sal_Bool GetGlyphOutline( sal_GlyphId nIndex, ::basegfx::B2DPolyPolygon& ); virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ); virtual void DrawServerFontLayout( const ServerFontLayout& ); virtual bool supportsOperation( OutDevSupportType ) const; diff --git a/vcl/unx/headless/svptext.cxx b/vcl/unx/headless/svptext.cxx index 18e2f4af8c90..0c27171cc123 100644 --- a/vcl/unx/headless/svptext.cxx +++ b/vcl/unx/headless/svptext.cxx @@ -429,7 +429,7 @@ void SvpSalGraphics::GetGlyphWidths( const ImplFontData* pFont, // --------------------------------------------------------------------------- -sal_Bool SvpSalGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) +sal_Bool SvpSalGraphics::GetGlyphBoundRect( sal_GlyphId nGlyphIndex, Rectangle& rRect ) { int nLevel = nGlyphIndex >> GF_FONTSHIFT; if( nLevel >= MAX_FALLBACK ) @@ -439,7 +439,7 @@ sal_Bool SvpSalGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) if( !pSF ) return sal_False; - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; const GlyphMetric& rGM = pSF->GetGlyphMetric( nGlyphIndex ); rRect = Rectangle( rGM.GetOffset(), rGM.GetSize() ); return sal_True; @@ -447,7 +447,7 @@ sal_Bool SvpSalGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) // --------------------------------------------------------------------------- -sal_Bool SvpSalGraphics::GetGlyphOutline( long nGlyphIndex, B2DPolyPolygon& rPolyPoly ) +sal_Bool SvpSalGraphics::GetGlyphOutline( sal_GlyphId nGlyphIndex, B2DPolyPolygon& rPolyPoly ) { int nLevel = nGlyphIndex >> GF_FONTSHIFT; if( nLevel >= MAX_FALLBACK ) @@ -457,7 +457,7 @@ sal_Bool SvpSalGraphics::GetGlyphOutline( long nGlyphIndex, B2DPolyPolygon& rPol if( !pSF ) return sal_False; - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; if( pSF->GetGlyphOutline( nGlyphIndex, rPolyPoly ) ) return sal_True; @@ -493,7 +493,7 @@ void SvpSalGraphics::DrawServerFontLayout( const ServerFontLayout& rSalLayout ) continue; // get the glyph's alpha mask and adjust the drawing position - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; B2IPoint aDstPoint( aPos.X(), aPos.Y() ); BitmapDeviceSharedPtr aAlphaMask = rGlyphPeer.GetGlyphBmp( *pSF, nGlyphIndex, m_eTextFmt, aDstPoint ); diff --git a/vcl/unx/inc/pspgraphics.h b/vcl/unx/inc/pspgraphics.h index 80d1f5fb92cc..3ec4d87f41cf 100644 --- a/vcl/unx/inc/pspgraphics.h +++ b/vcl/unx/inc/pspgraphics.h @@ -126,8 +126,8 @@ public: bool bVertical, Int32Vector& rWidths, Ucs2UIntMap& rUnicodeEnc ); - virtual sal_Bool GetGlyphBoundRect( long nIndex, Rectangle& ); - virtual sal_Bool GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& ); + virtual sal_Bool GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& ); + virtual sal_Bool GetGlyphOutline( sal_GlyphId nIndex, ::basegfx::B2DPolyPolygon& ); virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ); virtual void DrawServerFontLayout( const ServerFontLayout& ); virtual bool supportsOperation( OutDevSupportType ) const; diff --git a/vcl/unx/inc/salgdi.h b/vcl/unx/inc/salgdi.h index a2774099673b..246199f655ba 100644 --- a/vcl/unx/inc/salgdi.h +++ b/vcl/unx/inc/salgdi.h @@ -284,8 +284,8 @@ public: bool bVertical, Int32Vector& rWidths, Ucs2UIntMap& rUnicodeEnc ); - virtual sal_Bool GetGlyphBoundRect( long nIndex, Rectangle& ); - virtual sal_Bool GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& ); + virtual sal_Bool GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& ); + virtual sal_Bool GetGlyphOutline( sal_GlyphId nIndex, ::basegfx::B2DPolyPolygon& ); virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ); virtual void DrawServerFontLayout( const ServerFontLayout& ); virtual bool supportsOperation( OutDevSupportType ) const; diff --git a/vcl/unx/source/gdi/pspgraphics.cxx b/vcl/unx/source/gdi/pspgraphics.cxx index a4289496fa14..241bbc7be2f8 100644 --- a/vcl/unx/source/gdi/pspgraphics.cxx +++ b/vcl/unx/source/gdi/pspgraphics.cxx @@ -939,7 +939,7 @@ sal_uLong PspGraphics::GetKernPairs( sal_uLong nPairs, ImplKernPairData *pKernPa return nHavePairs; } -sal_Bool PspGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) +sal_Bool PspGraphics::GetGlyphBoundRect( sal_GlyphId nGlyphIndex, Rectangle& rRect ) { int nLevel = nGlyphIndex >> GF_FONTSHIFT; if( nLevel >= MAX_FALLBACK ) @@ -949,13 +949,13 @@ sal_Bool PspGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) if( !pSF ) return sal_False; - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; const GlyphMetric& rGM = pSF->GetGlyphMetric( nGlyphIndex ); rRect = Rectangle( rGM.GetOffset(), rGM.GetSize() ); return sal_True; } -sal_Bool PspGraphics::GetGlyphOutline( long nGlyphIndex, +sal_Bool PspGraphics::GetGlyphOutline( sal_GlyphId nGlyphIndex, ::basegfx::B2DPolyPolygon& rB2DPolyPoly ) { int nLevel = nGlyphIndex >> GF_FONTSHIFT; @@ -966,7 +966,7 @@ sal_Bool PspGraphics::GetGlyphOutline( long nGlyphIndex, if( !pSF ) return sal_False; - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; if( pSF->GetGlyphOutline( nGlyphIndex, rB2DPolyPoly ) ) return sal_True; diff --git a/vcl/unx/source/gdi/salgdi3.cxx b/vcl/unx/source/gdi/salgdi3.cxx index 6d77f66662e4..60e9ae80de5b 100644 --- a/vcl/unx/source/gdi/salgdi3.cxx +++ b/vcl/unx/source/gdi/salgdi3.cxx @@ -1235,17 +1235,17 @@ X11SalGraphics::GetKernPairs( sal_uLong nPairs, ImplKernPairData *pKernPairs ) // --------------------------------------------------------------------------- -sal_Bool X11SalGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) +sal_Bool X11SalGraphics::GetGlyphBoundRect( sal_GlyphId nGlyphIndex, Rectangle& rRect ) { int nLevel = nGlyphIndex >> GF_FONTSHIFT; - if( nLevel < 0 || nLevel >= MAX_FALLBACK ) + if( nLevel >= MAX_FALLBACK ) return sal_False; ServerFont* pSF = mpServerFont[ nLevel ]; if( !pSF ) return sal_False; - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; const GlyphMetric& rGM = pSF->GetGlyphMetric( nGlyphIndex ); rRect = Rectangle( rGM.GetOffset(), rGM.GetSize() ); return sal_True; @@ -1253,7 +1253,7 @@ sal_Bool X11SalGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect ) // --------------------------------------------------------------------------- -sal_Bool X11SalGraphics::GetGlyphOutline( long nGlyphIndex, +sal_Bool X11SalGraphics::GetGlyphOutline( sal_GlyphId nGlyphIndex, ::basegfx::B2DPolyPolygon& rPolyPoly ) { int nLevel = nGlyphIndex >> GF_FONTSHIFT; @@ -1264,7 +1264,7 @@ sal_Bool X11SalGraphics::GetGlyphOutline( long nGlyphIndex, if( !pSF ) return sal_False; - nGlyphIndex &= ~GF_FONTMASK; + nGlyphIndex &= GF_IDXMASK; if( pSF->GetGlyphOutline( nGlyphIndex, rPolyPoly ) ) return sal_True; diff --git a/vcl/win/inc/salgdi.h b/vcl/win/inc/salgdi.h index a23963f81e7b..7365870fa692 100644 --- a/vcl/win/inc/salgdi.h +++ b/vcl/win/inc/salgdi.h @@ -370,8 +370,8 @@ public: Ucs2UIntMap& rUnicodeEnc ); virtual int GetMinKashidaWidth(); - virtual sal_Bool GetGlyphBoundRect( long nIndex, Rectangle& ); - virtual sal_Bool GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& ); + virtual sal_Bool GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& ); + virtual sal_Bool GetGlyphOutline( sal_GlyphId nIndex, ::basegfx::B2DPolyPolygon& ); virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ); virtual void DrawServerFontLayout( const ServerFontLayout& ); diff --git a/vcl/win/source/gdi/salgdi3.cxx b/vcl/win/source/gdi/salgdi3.cxx index f87cfaec386f..5d28f4dcc1c1 100644 --- a/vcl/win/source/gdi/salgdi3.cxx +++ b/vcl/win/source/gdi/salgdi3.cxx @@ -2505,7 +2505,7 @@ void WinSalGraphics::GetDevFontSubstList( OutputDevice* ) // ----------------------------------------------------------------------- -sal_Bool WinSalGraphics::GetGlyphBoundRect( long nIndex, Rectangle& rRect ) +sal_Bool WinSalGraphics::GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& rRect ) { HDC hDC = mhDC; @@ -2537,7 +2537,7 @@ sal_Bool WinSalGraphics::GetGlyphBoundRect( long nIndex, Rectangle& rRect ) // ----------------------------------------------------------------------- -sal_Bool WinSalGraphics::GetGlyphOutline( long nIndex, +sal_Bool WinSalGraphics::GetGlyphOutline( sal_GlyphId nIndex, ::basegfx::B2DPolyPolygon& rB2DPolyPoly ) { rB2DPolyPoly.clear(); |