update the Cairo version to match recent changes in the others
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
1ea0eb4e3e
commit
0db8a70e0c
@ -103,14 +103,13 @@ static inline double RadToDeg(double deg)
|
||||
#include <gtk/gtk.h>
|
||||
#endif
|
||||
|
||||
class WXDLLIMPEXP_CORE wxCairoPath : public wxGraphicsPath
|
||||
class WXDLLIMPEXP_CORE wxCairoPathData : public wxGraphicsPathData
|
||||
{
|
||||
public :
|
||||
wxCairoPath();
|
||||
wxCairoPath(wxGraphicsRenderer* renderer, cairo_t* pathcontext = NULL);
|
||||
~wxCairoPath();
|
||||
wxCairoPathData(wxGraphicsRenderer* renderer, cairo_t* path = NULL);
|
||||
~wxCairoPathData();
|
||||
|
||||
virtual wxGraphicsPath *Clone() const;
|
||||
virtual wxGraphicsObjectRefData *Clone() const;
|
||||
|
||||
//
|
||||
// These are the path primitives from which everything else can be constructed
|
||||
@ -130,10 +129,10 @@ public :
|
||||
virtual void AddArc( wxDouble x, wxDouble y, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise ) ;
|
||||
|
||||
// gets the last point of the current path, (0,0) if not yet set
|
||||
virtual void GetCurrentPoint( wxDouble& x, wxDouble&y) ;
|
||||
virtual void GetCurrentPoint( wxDouble* x, wxDouble* y) const;
|
||||
|
||||
// adds another path
|
||||
virtual void AddPath( const wxGraphicsPath* path );
|
||||
virtual void AddPath( const wxGraphicsPathData* path );
|
||||
|
||||
// closes the current sub-path
|
||||
virtual void CloseSubpath();
|
||||
@ -158,36 +157,30 @@ public :
|
||||
virtual void * GetNativePath() const ;
|
||||
|
||||
// give the native path returned by GetNativePath() back (there might be some deallocations necessary)
|
||||
virtual void UnGetNativePath(void *p) ;
|
||||
virtual void UnGetNativePath(void *p) const;
|
||||
|
||||
// transforms each point of this path by the matrix
|
||||
virtual void Transform( wxGraphicsMatrix* matrix ) ;
|
||||
virtual void Transform( const wxGraphicsMatrixData* matrix ) ;
|
||||
|
||||
// gets the bounding box enclosing all points (possibly including control points)
|
||||
virtual void GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h) ;
|
||||
virtual void GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h) const;
|
||||
|
||||
virtual bool Contains( wxDouble x, wxDouble y, int fillStyle = wxWINDING_RULE) ;
|
||||
virtual bool Contains( wxDouble x, wxDouble y, int fillStyle = wxWINDING_RULE) const;
|
||||
|
||||
private :
|
||||
cairo_t* m_pathContext;
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxCairoPath)
|
||||
};
|
||||
|
||||
class WXDLLIMPEXP_CORE wxCairoMatrix : public wxGraphicsMatrix
|
||||
class WXDLLIMPEXP_CORE wxCairoMatrixData : public wxGraphicsMatrixData
|
||||
{
|
||||
public :
|
||||
wxCairoMatrix() ;
|
||||
wxCairoMatrixData(wxGraphicsRenderer* renderer, const cairo_matrix_t* matrix = NULL ) ;
|
||||
virtual ~wxCairoMatrixData() ;
|
||||
|
||||
wxCairoMatrix(wxGraphicsRenderer* renderer, const cairo_matrix_t* matrix = NULL ) ;
|
||||
virtual ~wxCairoMatrix() ;
|
||||
|
||||
virtual wxGraphicsMatrix *Clone() const ;
|
||||
virtual wxGraphicsObjectRefData *Clone() const ;
|
||||
|
||||
// concatenates the matrix
|
||||
virtual void Concat( const wxGraphicsMatrix *t );
|
||||
|
||||
// copies the passed in matrix
|
||||
virtual void Copy( const wxGraphicsMatrix *t );
|
||||
virtual void Concat( const wxGraphicsMatrixData *t );
|
||||
|
||||
// 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,
|
||||
@ -197,10 +190,10 @@ public :
|
||||
virtual void Invert();
|
||||
|
||||
// returns true if the elements of the transformation matrix are equal ?
|
||||
virtual bool IsEqual( const wxGraphicsMatrix* t) const ;
|
||||
virtual bool IsEqual( const wxGraphicsMatrixData* t) const ;
|
||||
|
||||
// return true if this is the identity matrix
|
||||
virtual bool IsIdentity();
|
||||
virtual bool IsIdentity() const;
|
||||
|
||||
//
|
||||
// transformation
|
||||
@ -220,17 +213,15 @@ public :
|
||||
//
|
||||
|
||||
// applies that matrix to the point
|
||||
virtual void TransformPoint( wxDouble *x, wxDouble *y );
|
||||
virtual void TransformPoint( wxDouble *x, wxDouble *y ) const;
|
||||
|
||||
// applies the matrix except for translations
|
||||
virtual void TransformDistance( wxDouble *dx, wxDouble *dy );
|
||||
virtual void TransformDistance( wxDouble *dx, wxDouble *dy ) const;
|
||||
|
||||
// returns the native representation
|
||||
virtual void * GetNativeMatrix() const;
|
||||
private:
|
||||
cairo_matrix_t m_matrix ;
|
||||
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxCairoMatrix)
|
||||
} ;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxCairoPenData : public wxGraphicsObjectRefData
|
||||
@ -329,21 +320,21 @@ public:
|
||||
|
||||
virtual void * GetNativeContext();
|
||||
|
||||
virtual void StrokePath( const wxGraphicsPath *p );
|
||||
virtual void FillPath( const wxGraphicsPath *p , int fillStyle = wxWINDING_RULE );
|
||||
virtual void StrokePath( const wxGraphicsPath& p );
|
||||
virtual void FillPath( const wxGraphicsPath& p , int fillStyle = wxWINDING_RULE );
|
||||
|
||||
virtual void Translate( wxDouble dx , wxDouble dy );
|
||||
virtual void Scale( wxDouble xScale , wxDouble yScale );
|
||||
virtual void Rotate( wxDouble angle );
|
||||
|
||||
// concatenates this transform with the current transform of this context
|
||||
virtual void ConcatTransform( const wxGraphicsMatrix* matrix );
|
||||
virtual void ConcatTransform( const wxGraphicsMatrix& matrix );
|
||||
|
||||
// sets the transform of this context
|
||||
virtual void SetTransform( const wxGraphicsMatrix* matrix );
|
||||
virtual void SetTransform( const wxGraphicsMatrix& matrix );
|
||||
|
||||
// gets the matrix of this context
|
||||
virtual void GetTransform( wxGraphicsMatrix* matrix );
|
||||
virtual wxGraphicsMatrix GetTransform() const;
|
||||
|
||||
virtual void DrawBitmap( const wxBitmap &bmp, wxDouble x, wxDouble y, wxDouble w, wxDouble h );
|
||||
virtual void DrawIcon( const wxIcon &icon, wxDouble x, wxDouble y, wxDouble w, wxDouble h );
|
||||
@ -700,18 +691,11 @@ void wxCairoFontData::Apply( wxGraphicsContext* context )
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxCairoPath implementation
|
||||
// wxCairoPathData implementation
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCairoPath,wxGraphicsPath)
|
||||
|
||||
wxCairoPath::wxCairoPath() : wxGraphicsPath(NULL)
|
||||
{
|
||||
wxLogDebug(wxT("Illegal Constructor called"));
|
||||
}
|
||||
|
||||
wxCairoPath::wxCairoPath( wxGraphicsRenderer* renderer, cairo_t* pathcontext)
|
||||
: wxGraphicsPath(renderer)
|
||||
wxCairoPathData::wxCairoPathData( wxGraphicsRenderer* renderer, cairo_t* pathcontext)
|
||||
: wxGraphicsPathData(renderer)
|
||||
{
|
||||
if (pathcontext)
|
||||
{
|
||||
@ -725,12 +709,12 @@ wxCairoPath::wxCairoPath( wxGraphicsRenderer* renderer, cairo_t* pathcontext)
|
||||
}
|
||||
}
|
||||
|
||||
wxCairoPath::~wxCairoPath()
|
||||
wxCairoPathData::~wxCairoPathData()
|
||||
{
|
||||
cairo_destroy(m_pathContext);
|
||||
}
|
||||
|
||||
wxGraphicsPath *wxCairoPath::Clone() const
|
||||
wxGraphicsObjectRefData *wxCairoPathData::Clone() const
|
||||
{
|
||||
cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,1,1);
|
||||
cairo_t* pathcontext = cairo_create(surface);
|
||||
@ -739,16 +723,16 @@ wxGraphicsPath *wxCairoPath::Clone() const
|
||||
cairo_path_t* path = cairo_copy_path(m_pathContext);
|
||||
cairo_append_path(pathcontext, path);
|
||||
cairo_path_destroy(path);
|
||||
return new wxCairoPath( GetRenderer() ,pathcontext);
|
||||
return new wxCairoPathData( GetRenderer() ,pathcontext);
|
||||
}
|
||||
|
||||
|
||||
void* wxCairoPath::GetNativePath() const
|
||||
void* wxCairoPathData::GetNativePath() const
|
||||
{
|
||||
return cairo_copy_path(m_pathContext) ;
|
||||
}
|
||||
|
||||
void wxCairoPath::UnGetNativePath(void *p)
|
||||
void wxCairoPathData::UnGetNativePath(void *p) const
|
||||
{
|
||||
cairo_path_destroy((cairo_path_t*)p);
|
||||
}
|
||||
@ -757,41 +741,43 @@ void wxCairoPath::UnGetNativePath(void *p)
|
||||
// The Primitives
|
||||
//
|
||||
|
||||
void wxCairoPath::MoveToPoint( wxDouble x , wxDouble y )
|
||||
void wxCairoPathData::MoveToPoint( wxDouble x , wxDouble y )
|
||||
{
|
||||
cairo_move_to(m_pathContext,x,y);
|
||||
}
|
||||
|
||||
void wxCairoPath::AddLineToPoint( wxDouble x , wxDouble y )
|
||||
void wxCairoPathData::AddLineToPoint( wxDouble x , wxDouble y )
|
||||
{
|
||||
cairo_line_to(m_pathContext,x,y);
|
||||
}
|
||||
|
||||
void wxCairoPath::AddPath( const wxGraphicsPath* path )
|
||||
void wxCairoPathData::AddPath( const wxGraphicsPathData* path )
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
void wxCairoPath::CloseSubpath()
|
||||
void wxCairoPathData::CloseSubpath()
|
||||
{
|
||||
cairo_close_path(m_pathContext);
|
||||
}
|
||||
|
||||
void wxCairoPath::AddCurveToPoint( wxDouble cx1, wxDouble cy1, wxDouble cx2, wxDouble cy2, wxDouble x, wxDouble y )
|
||||
void wxCairoPathData::AddCurveToPoint( wxDouble cx1, wxDouble cy1, wxDouble cx2, wxDouble cy2, wxDouble x, wxDouble y )
|
||||
{
|
||||
cairo_curve_to(m_pathContext,cx1,cy1,cx2,cy2,x,y);
|
||||
}
|
||||
|
||||
// gets the last point of the current path, (0,0) if not yet set
|
||||
void wxCairoPath::GetCurrentPoint( wxDouble& x, wxDouble&y)
|
||||
void wxCairoPathData::GetCurrentPoint( wxDouble* x, wxDouble* y) const
|
||||
{
|
||||
double dx,dy;
|
||||
cairo_get_current_point(m_pathContext,&dx,&dy);
|
||||
x = dx;
|
||||
y = dy;
|
||||
if (x)
|
||||
*x = dx;
|
||||
if (y)
|
||||
*y = dy;
|
||||
}
|
||||
|
||||
void wxCairoPath::AddArc( wxDouble x, wxDouble y, wxDouble r, double startAngle, double endAngle, bool clockwise )
|
||||
void wxCairoPathData::AddArc( wxDouble x, wxDouble y, wxDouble r, double startAngle, double endAngle, bool clockwise )
|
||||
{
|
||||
// as clockwise means positive in our system (y pointing downwards)
|
||||
// TODO make this interpretation dependent of the
|
||||
@ -803,7 +789,7 @@ void wxCairoPath::AddArc( wxDouble x, wxDouble y, wxDouble r, double startAngle,
|
||||
}
|
||||
|
||||
// transforms each point of this path by the matrix
|
||||
void wxCairoPath::Transform( wxGraphicsMatrix* matrix )
|
||||
void wxCairoPathData::Transform( const wxGraphicsMatrixData* matrix )
|
||||
{
|
||||
// as we don't have a true path object, we have to apply the inverse
|
||||
// matrix to the context
|
||||
@ -813,7 +799,7 @@ void wxCairoPath::Transform( wxGraphicsMatrix* matrix )
|
||||
}
|
||||
|
||||
// gets the bounding box enclosing all points (possibly including control points)
|
||||
void wxCairoPath::GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h)
|
||||
void wxCairoPathData::GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h) const
|
||||
{
|
||||
double x1,y1,x2,y2;
|
||||
|
||||
@ -841,66 +827,53 @@ void wxCairoPath::GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h)
|
||||
}
|
||||
}
|
||||
|
||||
bool wxCairoPath::Contains( wxDouble x, wxDouble y, int fillStyle )
|
||||
bool wxCairoPathData::Contains( wxDouble x, wxDouble y, int fillStyle ) const
|
||||
{
|
||||
return cairo_in_stroke( m_pathContext, x, y) != NULL;
|
||||
return cairo_in_stroke( m_pathContext, x, y) != 0;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxCairoMatrix implementation
|
||||
// wxCairoMatrixData implementation
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCairoMatrix,wxGraphicsMatrix)
|
||||
|
||||
wxCairoMatrix::wxCairoMatrix() : wxGraphicsMatrix(NULL)
|
||||
{
|
||||
wxLogDebug(wxT("Illegal Constructor called"));
|
||||
}
|
||||
|
||||
wxCairoMatrix::wxCairoMatrix(wxGraphicsRenderer* renderer, const cairo_matrix_t* matrix )
|
||||
: wxGraphicsMatrix(renderer)
|
||||
wxCairoMatrixData::wxCairoMatrixData(wxGraphicsRenderer* renderer, const cairo_matrix_t* matrix )
|
||||
: wxGraphicsMatrixData(renderer)
|
||||
{
|
||||
if ( matrix )
|
||||
m_matrix = *matrix;
|
||||
}
|
||||
|
||||
wxCairoMatrix::~wxCairoMatrix()
|
||||
wxCairoMatrixData::~wxCairoMatrixData()
|
||||
{
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
wxGraphicsMatrix *wxCairoMatrix::Clone() const
|
||||
wxGraphicsObjectRefData *wxCairoMatrixData::Clone() const
|
||||
{
|
||||
return new wxCairoMatrix(GetRenderer(),&m_matrix);
|
||||
return new wxCairoMatrixData(GetRenderer(),&m_matrix);
|
||||
}
|
||||
|
||||
// concatenates the matrix
|
||||
void wxCairoMatrix::Concat( const wxGraphicsMatrix *t )
|
||||
void wxCairoMatrixData::Concat( const wxGraphicsMatrixData *t )
|
||||
{
|
||||
cairo_matrix_multiply( &m_matrix, &m_matrix, (cairo_matrix_t*) t->GetNativeMatrix());
|
||||
}
|
||||
|
||||
// copies the passed in matrix
|
||||
void wxCairoMatrix::Copy( const wxGraphicsMatrix *t )
|
||||
{
|
||||
m_matrix = *((cairo_matrix_t*) t->GetNativeMatrix());
|
||||
}
|
||||
|
||||
// sets the matrix to the respective values
|
||||
void wxCairoMatrix::Set(wxDouble a, wxDouble b, wxDouble c, wxDouble d,
|
||||
void wxCairoMatrixData::Set(wxDouble a, wxDouble b, wxDouble c, wxDouble d,
|
||||
wxDouble tx, wxDouble ty)
|
||||
{
|
||||
cairo_matrix_init( &m_matrix, a, b, c, d, tx, ty);
|
||||
}
|
||||
|
||||
// makes this the inverse matrix
|
||||
void wxCairoMatrix::Invert()
|
||||
void wxCairoMatrixData::Invert()
|
||||
{
|
||||
cairo_matrix_invert( &m_matrix );
|
||||
}
|
||||
|
||||
// returns true if the elements of the transformation matrix are equal ?
|
||||
bool wxCairoMatrix::IsEqual( const wxGraphicsMatrix* t) const
|
||||
bool wxCairoMatrixData::IsEqual( const wxGraphicsMatrixData* t) const
|
||||
{
|
||||
const cairo_matrix_t* tm = (cairo_matrix_t*) t->GetNativeMatrix();
|
||||
return (
|
||||
@ -913,7 +886,7 @@ bool wxCairoMatrix::IsEqual( const wxGraphicsMatrix* t) const
|
||||
}
|
||||
|
||||
// return true if this is the identity matrix
|
||||
bool wxCairoMatrix::IsIdentity()
|
||||
bool wxCairoMatrixData::IsIdentity() const
|
||||
{
|
||||
return ( m_matrix.xx == 1 && m_matrix.yy == 1 &&
|
||||
m_matrix.yx == 0 && m_matrix.xy == 0 && m_matrix.x0 == 0 && m_matrix.y0 == 0);
|
||||
@ -924,19 +897,19 @@ bool wxCairoMatrix::IsIdentity()
|
||||
//
|
||||
|
||||
// add the translation to this matrix
|
||||
void wxCairoMatrix::Translate( wxDouble dx , wxDouble dy )
|
||||
void wxCairoMatrixData::Translate( wxDouble dx , wxDouble dy )
|
||||
{
|
||||
cairo_matrix_translate( &m_matrix, dx, dy) ;
|
||||
}
|
||||
|
||||
// add the scale to this matrix
|
||||
void wxCairoMatrix::Scale( wxDouble xScale , wxDouble yScale )
|
||||
void wxCairoMatrixData::Scale( wxDouble xScale , wxDouble yScale )
|
||||
{
|
||||
cairo_matrix_scale( &m_matrix, xScale, yScale) ;
|
||||
}
|
||||
|
||||
// add the rotation to this matrix (radians)
|
||||
void wxCairoMatrix::Rotate( wxDouble angle )
|
||||
void wxCairoMatrixData::Rotate( wxDouble angle )
|
||||
{
|
||||
cairo_matrix_rotate( &m_matrix, angle) ;
|
||||
}
|
||||
@ -946,7 +919,7 @@ void wxCairoMatrix::Rotate( wxDouble angle )
|
||||
//
|
||||
|
||||
// applies that matrix to the point
|
||||
void wxCairoMatrix::TransformPoint( wxDouble *x, wxDouble *y )
|
||||
void wxCairoMatrixData::TransformPoint( wxDouble *x, wxDouble *y ) const
|
||||
{
|
||||
double lx = *x, ly = *y ;
|
||||
cairo_matrix_transform_point( &m_matrix, &lx, &ly);
|
||||
@ -955,7 +928,7 @@ void wxCairoMatrix::TransformPoint( wxDouble *x, wxDouble *y )
|
||||
}
|
||||
|
||||
// applies the matrix except for translations
|
||||
void wxCairoMatrix::TransformDistance( wxDouble *dx, wxDouble *dy )
|
||||
void wxCairoMatrixData::TransformDistance( wxDouble *dx, wxDouble *dy ) const
|
||||
{
|
||||
double lx = *dx, ly = *dy ;
|
||||
cairo_matrix_transform_distance( &m_matrix, &lx, &ly);
|
||||
@ -964,7 +937,7 @@ void wxCairoMatrix::TransformDistance( wxDouble *dx, wxDouble *dy )
|
||||
}
|
||||
|
||||
// returns the native representation
|
||||
void * wxCairoMatrix::GetNativeMatrix() const
|
||||
void * wxCairoMatrixData::GetNativeMatrix() const
|
||||
{
|
||||
return (void*) &m_matrix;
|
||||
}
|
||||
@ -1055,28 +1028,28 @@ void wxCairoContext::ResetClip()
|
||||
}
|
||||
|
||||
|
||||
void wxCairoContext::StrokePath( const wxGraphicsPath *path )
|
||||
void wxCairoContext::StrokePath( const wxGraphicsPath& path )
|
||||
{
|
||||
if ( !m_pen.IsNull() )
|
||||
{
|
||||
cairo_path_t* cp = (cairo_path_t*) path->GetNativePath() ;
|
||||
cairo_path_t* cp = (cairo_path_t*) path.GetNativePath() ;
|
||||
cairo_append_path(m_context,cp);
|
||||
((wxCairoPenData*)m_pen.GetRefData())->Apply(this);
|
||||
cairo_stroke(m_context);
|
||||
wxConstCast(path, wxGraphicsPath)->UnGetNativePath(cp);
|
||||
path.UnGetNativePath(cp);
|
||||
}
|
||||
}
|
||||
|
||||
void wxCairoContext::FillPath( const wxGraphicsPath *path , int fillStyle )
|
||||
void wxCairoContext::FillPath( const wxGraphicsPath& path , int fillStyle )
|
||||
{
|
||||
if ( !m_brush.IsNull() )
|
||||
{
|
||||
cairo_path_t* cp = (cairo_path_t*) path->GetNativePath() ;
|
||||
cairo_path_t* cp = (cairo_path_t*) path.GetNativePath() ;
|
||||
cairo_append_path(m_context,cp);
|
||||
((wxCairoBrushData*)m_brush.GetRefData())->Apply(this);
|
||||
cairo_set_fill_rule(m_context,fillStyle==wxODDEVEN_RULE ? CAIRO_FILL_RULE_EVEN_ODD : CAIRO_FILL_RULE_WINDING);
|
||||
cairo_fill(m_context);
|
||||
wxConstCast(path, wxGraphicsPath)->UnGetNativePath(cp);
|
||||
path.UnGetNativePath(cp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1096,21 +1069,23 @@ void wxCairoContext::Scale( wxDouble xScale , wxDouble yScale )
|
||||
}
|
||||
|
||||
// concatenates this transform with the current transform of this context
|
||||
void wxCairoContext::ConcatTransform( const wxGraphicsMatrix* matrix )
|
||||
void wxCairoContext::ConcatTransform( const wxGraphicsMatrix& matrix )
|
||||
{
|
||||
cairo_transform(m_context,(const cairo_matrix_t *) matrix->GetNativeMatrix());
|
||||
cairo_transform(m_context,(const cairo_matrix_t *) matrix.GetNativeMatrix());
|
||||
}
|
||||
|
||||
// sets the transform of this context
|
||||
void wxCairoContext::SetTransform( const wxGraphicsMatrix* matrix )
|
||||
void wxCairoContext::SetTransform( const wxGraphicsMatrix& matrix )
|
||||
{
|
||||
cairo_set_matrix(m_context,(const cairo_matrix_t*) matrix->GetNativeMatrix());
|
||||
cairo_set_matrix(m_context,(const cairo_matrix_t*) matrix.GetNativeMatrix());
|
||||
}
|
||||
|
||||
// gets the matrix of this context
|
||||
void wxCairoContext::GetTransform( wxGraphicsMatrix* matrix )
|
||||
wxGraphicsMatrix wxCairoContext::GetTransform() const
|
||||
{
|
||||
cairo_get_matrix(m_context,(cairo_matrix_t*) matrix->GetNativeMatrix());
|
||||
wxGraphicsMatrix matrix = CreateMatrix();
|
||||
cairo_get_matrix(m_context,(cairo_matrix_t*) matrix.GetNativeMatrix());
|
||||
return matrix;
|
||||
}
|
||||
|
||||
|
||||
@ -1199,11 +1174,11 @@ public :
|
||||
|
||||
// Path
|
||||
|
||||
virtual wxGraphicsPath * CreatePath();
|
||||
virtual wxGraphicsPath CreatePath();
|
||||
|
||||
// Matrix
|
||||
|
||||
virtual wxGraphicsMatrix * CreateMatrix( wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0,
|
||||
virtual wxGraphicsMatrix CreateMatrix( wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0,
|
||||
wxDouble tx=0.0, wxDouble ty=0.0);
|
||||
|
||||
|
||||
@ -1269,20 +1244,24 @@ wxGraphicsContext * wxCairoRenderer::CreateContext( wxWindow* window )
|
||||
|
||||
// Path
|
||||
|
||||
wxGraphicsPath * wxCairoRenderer::CreatePath()
|
||||
wxGraphicsPath wxCairoRenderer::CreatePath()
|
||||
{
|
||||
return new wxCairoPath( this );
|
||||
wxGraphicsPath path;
|
||||
path.SetRefData( new wxCairoPathData(this) );
|
||||
return path;
|
||||
}
|
||||
|
||||
|
||||
// Matrix
|
||||
|
||||
wxGraphicsMatrix * wxCairoRenderer::CreateMatrix( wxDouble a, wxDouble b, wxDouble c, wxDouble d,
|
||||
wxDouble tx, wxDouble ty)
|
||||
wxGraphicsMatrix wxCairoRenderer::CreateMatrix( wxDouble a, wxDouble b, wxDouble c, wxDouble d,
|
||||
wxDouble tx, wxDouble ty)
|
||||
|
||||
{
|
||||
wxCairoMatrix* m = new wxCairoMatrix( this );
|
||||
m->Set( a,b,c,d,tx,ty ) ;
|
||||
wxGraphicsMatrix m;
|
||||
wxCairoMatrixData* data = new wxCairoMatrixData( this );
|
||||
data->Set( a,b,c,d,tx,ty ) ;
|
||||
m.SetRefData(data);
|
||||
return m;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user