Move wxMacCoreGraphicsMatrixData so it can be used in wxMacCoreGraphicsPenBrushDataBase
This commit is contained in:
@@ -303,9 +303,181 @@ protected :
|
|||||||
int m_hatch;
|
int m_hatch;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Graphics Matrix data
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_CORE wxMacCoreGraphicsMatrixData : public wxGraphicsMatrixData
|
||||||
|
{
|
||||||
|
public :
|
||||||
|
wxMacCoreGraphicsMatrixData(wxGraphicsRenderer* renderer) ;
|
||||||
|
|
||||||
|
virtual ~wxMacCoreGraphicsMatrixData() ;
|
||||||
|
|
||||||
|
virtual wxGraphicsObjectRefData *Clone() const wxOVERRIDE ;
|
||||||
|
|
||||||
|
// concatenates the matrix
|
||||||
|
virtual void Concat( const wxGraphicsMatrixData *t ) wxOVERRIDE;
|
||||||
|
|
||||||
|
// sets the matrix to the respective values
|
||||||
|
virtual void Set(wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0,
|
||||||
|
wxDouble tx=0.0, wxDouble ty=0.0) wxOVERRIDE;
|
||||||
|
|
||||||
|
// gets the component valuess of the matrix
|
||||||
|
virtual void Get(wxDouble* a=NULL, wxDouble* b=NULL, wxDouble* c=NULL,
|
||||||
|
wxDouble* d=NULL, wxDouble* tx=NULL, wxDouble* ty=NULL) const wxOVERRIDE;
|
||||||
|
|
||||||
|
// makes this the inverse matrix
|
||||||
|
virtual void Invert() wxOVERRIDE;
|
||||||
|
|
||||||
|
// returns true if the elements of the transformation matrix are equal ?
|
||||||
|
virtual bool IsEqual( const wxGraphicsMatrixData* t) const wxOVERRIDE ;
|
||||||
|
|
||||||
|
// return true if this is the identity matrix
|
||||||
|
virtual bool IsIdentity() const wxOVERRIDE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// transformation
|
||||||
|
//
|
||||||
|
|
||||||
|
// add the translation to this matrix
|
||||||
|
virtual void Translate( wxDouble dx , wxDouble dy ) wxOVERRIDE;
|
||||||
|
|
||||||
|
// add the scale to this matrix
|
||||||
|
virtual void Scale( wxDouble xScale , wxDouble yScale ) wxOVERRIDE;
|
||||||
|
|
||||||
|
// add the rotation to this matrix (radians)
|
||||||
|
virtual void Rotate( wxDouble angle ) wxOVERRIDE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// apply the transforms
|
||||||
|
//
|
||||||
|
|
||||||
|
// applies that matrix to the point
|
||||||
|
virtual void TransformPoint( wxDouble *x, wxDouble *y ) const wxOVERRIDE;
|
||||||
|
|
||||||
|
// applies the matrix except for translations
|
||||||
|
virtual void TransformDistance( wxDouble *dx, wxDouble *dy ) const wxOVERRIDE;
|
||||||
|
|
||||||
|
// returns the native representation
|
||||||
|
virtual void * GetNativeMatrix() const wxOVERRIDE;
|
||||||
|
|
||||||
|
private :
|
||||||
|
CGAffineTransform m_matrix;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
wxMacCoreGraphicsMatrixData::wxMacCoreGraphicsMatrixData(wxGraphicsRenderer* renderer) : wxGraphicsMatrixData(renderer)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
wxMacCoreGraphicsMatrixData::~wxMacCoreGraphicsMatrixData()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
wxGraphicsObjectRefData *wxMacCoreGraphicsMatrixData::Clone() const
|
||||||
|
{
|
||||||
|
wxMacCoreGraphicsMatrixData* m = new wxMacCoreGraphicsMatrixData(GetRenderer()) ;
|
||||||
|
m->m_matrix = m_matrix ;
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
|
||||||
|
// concatenates the matrix
|
||||||
|
void wxMacCoreGraphicsMatrixData::Concat( const wxGraphicsMatrixData *t )
|
||||||
|
{
|
||||||
|
m_matrix = CGAffineTransformConcat(*((CGAffineTransform*) t->GetNativeMatrix()), m_matrix );
|
||||||
|
}
|
||||||
|
|
||||||
|
// sets the matrix to the respective values
|
||||||
|
void wxMacCoreGraphicsMatrixData::Set(wxDouble a, wxDouble b, wxDouble c, wxDouble d,
|
||||||
|
wxDouble tx, wxDouble ty)
|
||||||
|
{
|
||||||
|
m_matrix = CGAffineTransformMake((CGFloat) a,(CGFloat) b,(CGFloat) c,(CGFloat) d,(CGFloat) tx,(CGFloat) ty);
|
||||||
|
}
|
||||||
|
|
||||||
|
// gets the component valuess of the matrix
|
||||||
|
void wxMacCoreGraphicsMatrixData::Get(wxDouble* a, wxDouble* b, wxDouble* c,
|
||||||
|
wxDouble* d, wxDouble* tx, wxDouble* ty) const
|
||||||
|
{
|
||||||
|
if (a) *a = m_matrix.a;
|
||||||
|
if (b) *b = m_matrix.b;
|
||||||
|
if (c) *c = m_matrix.c;
|
||||||
|
if (d) *d = m_matrix.d;
|
||||||
|
if (tx) *tx= m_matrix.tx;
|
||||||
|
if (ty) *ty= m_matrix.ty;
|
||||||
|
}
|
||||||
|
|
||||||
|
// makes this the inverse matrix
|
||||||
|
void wxMacCoreGraphicsMatrixData::Invert()
|
||||||
|
{
|
||||||
|
m_matrix = CGAffineTransformInvert( m_matrix );
|
||||||
|
}
|
||||||
|
|
||||||
|
// returns true if the elements of the transformation matrix are equal ?
|
||||||
|
bool wxMacCoreGraphicsMatrixData::IsEqual( const wxGraphicsMatrixData* t) const
|
||||||
|
{
|
||||||
|
return CGAffineTransformEqualToTransform(m_matrix, *((CGAffineTransform*) t->GetNativeMatrix()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// return true if this is the identity matrix
|
||||||
|
bool wxMacCoreGraphicsMatrixData::IsIdentity() const
|
||||||
|
{
|
||||||
|
return ( m_matrix.a == 1 && m_matrix.d == 1 &&
|
||||||
|
m_matrix.b == 0 && m_matrix.d == 0 && m_matrix.tx == 0 && m_matrix.ty == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// transformation
|
||||||
|
//
|
||||||
|
|
||||||
|
// add the translation to this matrix
|
||||||
|
void wxMacCoreGraphicsMatrixData::Translate( wxDouble dx , wxDouble dy )
|
||||||
|
{
|
||||||
|
m_matrix = CGAffineTransformTranslate( m_matrix, (CGFloat) dx, (CGFloat) dy);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the scale to this matrix
|
||||||
|
void wxMacCoreGraphicsMatrixData::Scale( wxDouble xScale , wxDouble yScale )
|
||||||
|
{
|
||||||
|
m_matrix = CGAffineTransformScale( m_matrix, (CGFloat) xScale, (CGFloat) yScale);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the rotation to this matrix (radians)
|
||||||
|
void wxMacCoreGraphicsMatrixData::Rotate( wxDouble angle )
|
||||||
|
{
|
||||||
|
m_matrix = CGAffineTransformRotate( m_matrix, (CGFloat) angle);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// apply the transforms
|
||||||
|
//
|
||||||
|
|
||||||
|
// applies that matrix to the point
|
||||||
|
void wxMacCoreGraphicsMatrixData::TransformPoint( wxDouble *x, wxDouble *y ) const
|
||||||
|
{
|
||||||
|
CGPoint pt = CGPointApplyAffineTransform( CGPointMake((CGFloat) *x,(CGFloat) *y), m_matrix);
|
||||||
|
|
||||||
|
*x = pt.x;
|
||||||
|
*y = pt.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
// applies the matrix except for translations
|
||||||
|
void wxMacCoreGraphicsMatrixData::TransformDistance( wxDouble *dx, wxDouble *dy ) const
|
||||||
|
{
|
||||||
|
CGSize sz = CGSizeApplyAffineTransform( CGSizeMake((CGFloat) *dx,(CGFloat) *dy) , m_matrix );
|
||||||
|
*dx = sz.width;
|
||||||
|
*dy = sz.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
// returns the native representation
|
||||||
|
void * wxMacCoreGraphicsMatrixData::GetNativeMatrix() const
|
||||||
|
{
|
||||||
|
return (void*) &m_matrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Base class for information shared between pens and brushes, basically just
|
// Pen and Brush common data. Base class for information shared between pens and
|
||||||
// the things needed for gradient support.
|
// brushes, basically just the things needed for gradient support.
|
||||||
|
|
||||||
class wxMacCoreGraphicsPenBrushDataBase : public wxGraphicsObjectRefData
|
class wxMacCoreGraphicsPenBrushDataBase : public wxGraphicsObjectRefData
|
||||||
{
|
{
|
||||||
@@ -324,7 +496,7 @@ public:
|
|||||||
|
|
||||||
virtual bool IsShading() { return m_isShading; }
|
virtual bool IsShading() { return m_isShading; }
|
||||||
CGShadingRef GetShading() { return m_shading; }
|
CGShadingRef GetShading() { return m_shading; }
|
||||||
wxGraphicsMatrix& GetMatrix() { return m_shadingMatrix; }
|
wxMacCoreGraphicsMatrixData* GetMatrix() { return m_shadingMatrix; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void Init();
|
void Init();
|
||||||
@@ -335,7 +507,7 @@ protected:
|
|||||||
bool m_isShading;
|
bool m_isShading;
|
||||||
CGFunctionRef m_gradientFunction;
|
CGFunctionRef m_gradientFunction;
|
||||||
CGShadingRef m_shading;
|
CGShadingRef m_shading;
|
||||||
wxGraphicsMatrix m_shadingMatrix;
|
wxMacCoreGraphicsMatrixData* m_shadingMatrix;
|
||||||
|
|
||||||
// information about a single gradient component
|
// information about a single gradient component
|
||||||
struct GradientComponent
|
struct GradientComponent
|
||||||
@@ -386,8 +558,11 @@ wxMacCoreGraphicsPenBrushDataBase::~wxMacCoreGraphicsPenBrushDataBase()
|
|||||||
if ( m_shading )
|
if ( m_shading )
|
||||||
CGShadingRelease(m_shading);
|
CGShadingRelease(m_shading);
|
||||||
|
|
||||||
if( m_gradientFunction )
|
if ( m_gradientFunction )
|
||||||
CGFunctionRelease(m_gradientFunction);
|
CGFunctionRelease(m_gradientFunction);
|
||||||
|
|
||||||
|
if ( m_shadingMatrix )
|
||||||
|
delete m_shadingMatrix;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -396,6 +571,7 @@ wxMacCoreGraphicsPenBrushDataBase::Init()
|
|||||||
m_gradientFunction = NULL;
|
m_gradientFunction = NULL;
|
||||||
m_shading = NULL;
|
m_shading = NULL;
|
||||||
m_isShading = false;
|
m_isShading = false;
|
||||||
|
m_shadingMatrix = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -411,7 +587,8 @@ wxMacCoreGraphicsPenBrushDataBase::CreateLinearGradientShading(
|
|||||||
CGPointMake((CGFloat) x2, (CGFloat) y2),
|
CGPointMake((CGFloat) x2, (CGFloat) y2),
|
||||||
m_gradientFunction, true, true );
|
m_gradientFunction, true, true );
|
||||||
m_isShading = true;
|
m_isShading = true;
|
||||||
m_shadingMatrix = matrix;
|
m_shadingMatrix = (wxMacCoreGraphicsMatrixData*)((wxMacCoreGraphicsMatrixData*)matrix.GetRefData())->Clone();
|
||||||
|
m_shadingMatrix->Invert();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -428,7 +605,8 @@ wxMacCoreGraphicsPenBrushDataBase::CreateRadialGradientShading(
|
|||||||
CGPointMake((CGFloat) xc, (CGFloat) yc), (CGFloat) radius,
|
CGPointMake((CGFloat) xc, (CGFloat) yc), (CGFloat) radius,
|
||||||
m_gradientFunction, true, true );
|
m_gradientFunction, true, true );
|
||||||
m_isShading = true;
|
m_isShading = true;
|
||||||
m_shadingMatrix = matrix;
|
m_shadingMatrix = (wxMacCoreGraphicsMatrixData*)((wxMacCoreGraphicsMatrixData*)matrix.GetRefData())->Clone();
|
||||||
|
m_shadingMatrix->Invert();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMacCoreGraphicsPenBrushDataBase::CalculateShadingValues(void *info, const CGFloat *in, CGFloat *out)
|
void wxMacCoreGraphicsPenBrushDataBase::CalculateShadingValues(void *info, const CGFloat *in, CGFloat *out)
|
||||||
@@ -948,177 +1126,6 @@ wxMacCoreGraphicsBitmapData::~wxMacCoreGraphicsBitmapData()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// Graphics Matrix data
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxMacCoreGraphicsMatrixData : public wxGraphicsMatrixData
|
|
||||||
{
|
|
||||||
public :
|
|
||||||
wxMacCoreGraphicsMatrixData(wxGraphicsRenderer* renderer) ;
|
|
||||||
|
|
||||||
virtual ~wxMacCoreGraphicsMatrixData() ;
|
|
||||||
|
|
||||||
virtual wxGraphicsObjectRefData *Clone() const wxOVERRIDE ;
|
|
||||||
|
|
||||||
// concatenates the matrix
|
|
||||||
virtual void Concat( const wxGraphicsMatrixData *t ) wxOVERRIDE;
|
|
||||||
|
|
||||||
// sets the matrix to the respective values
|
|
||||||
virtual void Set(wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0,
|
|
||||||
wxDouble tx=0.0, wxDouble ty=0.0) wxOVERRIDE;
|
|
||||||
|
|
||||||
// gets the component valuess of the matrix
|
|
||||||
virtual void Get(wxDouble* a=NULL, wxDouble* b=NULL, wxDouble* c=NULL,
|
|
||||||
wxDouble* d=NULL, wxDouble* tx=NULL, wxDouble* ty=NULL) const wxOVERRIDE;
|
|
||||||
|
|
||||||
// makes this the inverse matrix
|
|
||||||
virtual void Invert() wxOVERRIDE;
|
|
||||||
|
|
||||||
// returns true if the elements of the transformation matrix are equal ?
|
|
||||||
virtual bool IsEqual( const wxGraphicsMatrixData* t) const wxOVERRIDE ;
|
|
||||||
|
|
||||||
// return true if this is the identity matrix
|
|
||||||
virtual bool IsIdentity() const wxOVERRIDE;
|
|
||||||
|
|
||||||
//
|
|
||||||
// transformation
|
|
||||||
//
|
|
||||||
|
|
||||||
// add the translation to this matrix
|
|
||||||
virtual void Translate( wxDouble dx , wxDouble dy ) wxOVERRIDE;
|
|
||||||
|
|
||||||
// add the scale to this matrix
|
|
||||||
virtual void Scale( wxDouble xScale , wxDouble yScale ) wxOVERRIDE;
|
|
||||||
|
|
||||||
// add the rotation to this matrix (radians)
|
|
||||||
virtual void Rotate( wxDouble angle ) wxOVERRIDE;
|
|
||||||
|
|
||||||
//
|
|
||||||
// apply the transforms
|
|
||||||
//
|
|
||||||
|
|
||||||
// applies that matrix to the point
|
|
||||||
virtual void TransformPoint( wxDouble *x, wxDouble *y ) const wxOVERRIDE;
|
|
||||||
|
|
||||||
// applies the matrix except for translations
|
|
||||||
virtual void TransformDistance( wxDouble *dx, wxDouble *dy ) const wxOVERRIDE;
|
|
||||||
|
|
||||||
// returns the native representation
|
|
||||||
virtual void * GetNativeMatrix() const wxOVERRIDE;
|
|
||||||
|
|
||||||
private :
|
|
||||||
CGAffineTransform m_matrix;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
wxMacCoreGraphicsMatrixData::wxMacCoreGraphicsMatrixData(wxGraphicsRenderer* renderer) : wxGraphicsMatrixData(renderer)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
wxMacCoreGraphicsMatrixData::~wxMacCoreGraphicsMatrixData()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
wxGraphicsObjectRefData *wxMacCoreGraphicsMatrixData::Clone() const
|
|
||||||
{
|
|
||||||
wxMacCoreGraphicsMatrixData* m = new wxMacCoreGraphicsMatrixData(GetRenderer()) ;
|
|
||||||
m->m_matrix = m_matrix ;
|
|
||||||
return m;
|
|
||||||
}
|
|
||||||
|
|
||||||
// concatenates the matrix
|
|
||||||
void wxMacCoreGraphicsMatrixData::Concat( const wxGraphicsMatrixData *t )
|
|
||||||
{
|
|
||||||
m_matrix = CGAffineTransformConcat(*((CGAffineTransform*) t->GetNativeMatrix()), m_matrix );
|
|
||||||
}
|
|
||||||
|
|
||||||
// sets the matrix to the respective values
|
|
||||||
void wxMacCoreGraphicsMatrixData::Set(wxDouble a, wxDouble b, wxDouble c, wxDouble d,
|
|
||||||
wxDouble tx, wxDouble ty)
|
|
||||||
{
|
|
||||||
m_matrix = CGAffineTransformMake((CGFloat) a,(CGFloat) b,(CGFloat) c,(CGFloat) d,(CGFloat) tx,(CGFloat) ty);
|
|
||||||
}
|
|
||||||
|
|
||||||
// gets the component valuess of the matrix
|
|
||||||
void wxMacCoreGraphicsMatrixData::Get(wxDouble* a, wxDouble* b, wxDouble* c,
|
|
||||||
wxDouble* d, wxDouble* tx, wxDouble* ty) const
|
|
||||||
{
|
|
||||||
if (a) *a = m_matrix.a;
|
|
||||||
if (b) *b = m_matrix.b;
|
|
||||||
if (c) *c = m_matrix.c;
|
|
||||||
if (d) *d = m_matrix.d;
|
|
||||||
if (tx) *tx= m_matrix.tx;
|
|
||||||
if (ty) *ty= m_matrix.ty;
|
|
||||||
}
|
|
||||||
|
|
||||||
// makes this the inverse matrix
|
|
||||||
void wxMacCoreGraphicsMatrixData::Invert()
|
|
||||||
{
|
|
||||||
m_matrix = CGAffineTransformInvert( m_matrix );
|
|
||||||
}
|
|
||||||
|
|
||||||
// returns true if the elements of the transformation matrix are equal ?
|
|
||||||
bool wxMacCoreGraphicsMatrixData::IsEqual( const wxGraphicsMatrixData* t) const
|
|
||||||
{
|
|
||||||
return CGAffineTransformEqualToTransform(m_matrix, *((CGAffineTransform*) t->GetNativeMatrix()));
|
|
||||||
}
|
|
||||||
|
|
||||||
// return true if this is the identity matrix
|
|
||||||
bool wxMacCoreGraphicsMatrixData::IsIdentity() const
|
|
||||||
{
|
|
||||||
return ( m_matrix.a == 1 && m_matrix.d == 1 &&
|
|
||||||
m_matrix.b == 0 && m_matrix.d == 0 && m_matrix.tx == 0 && m_matrix.ty == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// transformation
|
|
||||||
//
|
|
||||||
|
|
||||||
// add the translation to this matrix
|
|
||||||
void wxMacCoreGraphicsMatrixData::Translate( wxDouble dx , wxDouble dy )
|
|
||||||
{
|
|
||||||
m_matrix = CGAffineTransformTranslate( m_matrix, (CGFloat) dx, (CGFloat) dy);
|
|
||||||
}
|
|
||||||
|
|
||||||
// add the scale to this matrix
|
|
||||||
void wxMacCoreGraphicsMatrixData::Scale( wxDouble xScale , wxDouble yScale )
|
|
||||||
{
|
|
||||||
m_matrix = CGAffineTransformScale( m_matrix, (CGFloat) xScale, (CGFloat) yScale);
|
|
||||||
}
|
|
||||||
|
|
||||||
// add the rotation to this matrix (radians)
|
|
||||||
void wxMacCoreGraphicsMatrixData::Rotate( wxDouble angle )
|
|
||||||
{
|
|
||||||
m_matrix = CGAffineTransformRotate( m_matrix, (CGFloat) angle);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// apply the transforms
|
|
||||||
//
|
|
||||||
|
|
||||||
// applies that matrix to the point
|
|
||||||
void wxMacCoreGraphicsMatrixData::TransformPoint( wxDouble *x, wxDouble *y ) const
|
|
||||||
{
|
|
||||||
CGPoint pt = CGPointApplyAffineTransform( CGPointMake((CGFloat) *x,(CGFloat) *y), m_matrix);
|
|
||||||
|
|
||||||
*x = pt.x;
|
|
||||||
*y = pt.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
// applies the matrix except for translations
|
|
||||||
void wxMacCoreGraphicsMatrixData::TransformDistance( wxDouble *dx, wxDouble *dy ) const
|
|
||||||
{
|
|
||||||
CGSize sz = CGSizeApplyAffineTransform( CGSizeMake((CGFloat) *dx,(CGFloat) *dy) , m_matrix );
|
|
||||||
*dx = sz.width;
|
|
||||||
*dy = sz.height;
|
|
||||||
}
|
|
||||||
|
|
||||||
// returns the native representation
|
|
||||||
void * wxMacCoreGraphicsMatrixData::GetNativeMatrix() const
|
|
||||||
{
|
|
||||||
return (void*) &m_matrix;
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Graphics Path data
|
// Graphics Path data
|
||||||
|
|
||||||
@@ -2115,11 +2122,10 @@ void wxMacCoreGraphicsContext::StrokePath( const wxGraphicsPath &path )
|
|||||||
CGContextReplacePathWithStrokedPath(m_cgContext);
|
CGContextReplacePathWithStrokedPath(m_cgContext);
|
||||||
CGContextClip( m_cgContext );
|
CGContextClip( m_cgContext );
|
||||||
// Apply the gradient's transform, if there is one.
|
// Apply the gradient's transform, if there is one.
|
||||||
if (! penData->GetMatrix().IsNull() )
|
if ( penData->GetMatrix() != NULL )
|
||||||
{
|
{
|
||||||
wxGraphicsMatrix m = penData->GetMatrix();
|
wxMacCoreGraphicsMatrixData* m = penData->GetMatrix();
|
||||||
m.Invert();
|
CGContextConcatCTM( m_cgContext, *(CGAffineTransform*) m->GetNativeMatrix());
|
||||||
ConcatTransform(m);
|
|
||||||
}
|
}
|
||||||
CGContextDrawShading( m_cgContext, penData->GetShading() );
|
CGContextDrawShading( m_cgContext, penData->GetShading() );
|
||||||
CGContextRestoreGState( m_cgContext);
|
CGContextRestoreGState( m_cgContext);
|
||||||
@@ -2208,11 +2214,10 @@ void wxMacCoreGraphicsContext::FillPath( const wxGraphicsPath &path , wxPolygonF
|
|||||||
CGContextAddPath( m_cgContext , (CGPathRef) path.GetNativePath() );
|
CGContextAddPath( m_cgContext , (CGPathRef) path.GetNativePath() );
|
||||||
CGContextClip( m_cgContext );
|
CGContextClip( m_cgContext );
|
||||||
// Apply the gradient's transform, if there is one.
|
// Apply the gradient's transform, if there is one.
|
||||||
if (! brushData->GetMatrix().IsNull() )
|
if ( brushData->GetMatrix() != NULL )
|
||||||
{
|
{
|
||||||
wxGraphicsMatrix m = brushData->GetMatrix();
|
wxMacCoreGraphicsMatrixData* m = brushData->GetMatrix();
|
||||||
m.Invert();
|
CGContextConcatCTM( m_cgContext, *(CGAffineTransform*) m->GetNativeMatrix());
|
||||||
ConcatTransform(m);
|
|
||||||
}
|
}
|
||||||
CGContextDrawShading( m_cgContext, brushData->GetShading() );
|
CGContextDrawShading( m_cgContext, brushData->GetShading() );
|
||||||
CGContextRestoreGState( m_cgContext);
|
CGContextRestoreGState( m_cgContext);
|
||||||
|
|||||||
Reference in New Issue
Block a user