Gradients can have matrix transforms too. Updates for Cairo.
This commit is contained in:
@@ -242,7 +242,8 @@ public:
|
|||||||
|
|
||||||
wxGraphicsPenInfo&
|
wxGraphicsPenInfo&
|
||||||
LinearGradient(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
LinearGradient(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
||||||
const wxColour& c1, const wxColour& c2)
|
const wxColour& c1, const wxColour& c2,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix)
|
||||||
{
|
{
|
||||||
m_gradientType = wxGRADIENT_LINEAR;
|
m_gradientType = wxGRADIENT_LINEAR;
|
||||||
m_x1 = x1;
|
m_x1 = x1;
|
||||||
@@ -251,12 +252,14 @@ public:
|
|||||||
m_y2 = y2;
|
m_y2 = y2;
|
||||||
m_stops.SetStartColour(c1);
|
m_stops.SetStartColour(c1);
|
||||||
m_stops.SetEndColour(c2);
|
m_stops.SetEndColour(c2);
|
||||||
|
m_matrix = matrix;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxGraphicsPenInfo&
|
wxGraphicsPenInfo&
|
||||||
LinearGradient(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
LinearGradient(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops)
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix)
|
||||||
{
|
{
|
||||||
m_gradientType = wxGRADIENT_LINEAR;
|
m_gradientType = wxGRADIENT_LINEAR;
|
||||||
m_x1 = x1;
|
m_x1 = x1;
|
||||||
@@ -264,27 +267,31 @@ public:
|
|||||||
m_x2 = x2;
|
m_x2 = x2;
|
||||||
m_y2 = y2;
|
m_y2 = y2;
|
||||||
m_stops = stops;
|
m_stops = stops;
|
||||||
|
m_matrix = matrix;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxGraphicsPenInfo&
|
wxGraphicsPenInfo&
|
||||||
RadialGradient(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc, wxDouble radius,
|
RadialGradient(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc, wxDouble radius,
|
||||||
const wxColour& oColor, const wxColour& cColor)
|
const wxColour& oColor, const wxColour& cColor,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix)
|
||||||
{
|
{
|
||||||
m_gradientType = wxGRADIENT_RADIAL;
|
m_gradientType = wxGRADIENT_RADIAL;
|
||||||
m_x1 = xo;
|
m_x1 = xo;
|
||||||
m_y1 = yo;
|
m_y1 = yo;
|
||||||
m_x2 = xc;
|
m_x2 = xc;
|
||||||
m_y2 = yc;
|
m_y2 = yc;
|
||||||
m_radius = radius;
|
m_radius = radius;
|
||||||
m_stops.SetStartColour(oColor);
|
m_stops.SetStartColour(oColor);
|
||||||
m_stops.SetEndColour(cColor);
|
m_stops.SetEndColour(cColor);
|
||||||
|
m_matrix = matrix;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxGraphicsPenInfo&
|
wxGraphicsPenInfo&
|
||||||
RadialGradient(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc,
|
RadialGradient(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc,
|
||||||
wxDouble radius, const wxGraphicsGradientStops& stops)
|
wxDouble radius, const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix)
|
||||||
{
|
{
|
||||||
m_gradientType = wxGRADIENT_RADIAL;
|
m_gradientType = wxGRADIENT_RADIAL;
|
||||||
m_x1 = xo;
|
m_x1 = xo;
|
||||||
@@ -293,6 +300,7 @@ public:
|
|||||||
m_y2 = yc;
|
m_y2 = yc;
|
||||||
m_radius = radius;
|
m_radius = radius;
|
||||||
m_stops = stops;
|
m_stops = stops;
|
||||||
|
m_matrix = matrix;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -310,6 +318,7 @@ public:
|
|||||||
wxDouble GetYC() const { return m_y2; }
|
wxDouble GetYC() const { return m_y2; }
|
||||||
wxDouble GetRadius() const { return m_radius; }
|
wxDouble GetRadius() const { return m_radius; }
|
||||||
const wxGraphicsGradientStops& GetStops() const { return m_stops; }
|
const wxGraphicsGradientStops& GetStops() const { return m_stops; }
|
||||||
|
const wxGraphicsMatrix& GetMatrix() const { return m_matrix; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
wxDouble m_width;
|
wxDouble m_width;
|
||||||
@@ -317,6 +326,7 @@ private:
|
|||||||
wxDouble m_x1, m_y1, m_x2, m_y2; // also used for m_xo, m_yo, m_xc, m_yx
|
wxDouble m_x1, m_y1, m_x2, m_y2; // also used for m_xo, m_yo, m_xc, m_yx
|
||||||
wxDouble m_radius;
|
wxDouble m_radius;
|
||||||
wxGraphicsGradientStops m_stops;
|
wxGraphicsGradientStops m_stops;
|
||||||
|
wxGraphicsMatrix m_matrix;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -606,11 +616,13 @@ public:
|
|||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxColour& c1, const wxColour& c2) const;
|
const wxColour& c1, const wxColour& c2,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) const;
|
||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops) const;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) const;
|
||||||
|
|
||||||
// sets the brush to a radial gradient originating at (xo,yc) and ending
|
// sets the brush to a radial gradient originating at (xo,yc) and ending
|
||||||
// on a circle around (xc,yc) with the given radius; the colours may be
|
// on a circle around (xc,yc) with the given radius; the colours may be
|
||||||
@@ -618,12 +630,14 @@ public:
|
|||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc, wxDouble radius,
|
wxDouble xc, wxDouble yc, wxDouble radius,
|
||||||
const wxColour& oColor, const wxColour& cColor) const;
|
const wxColour& oColor, const wxColour& cColor,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) const;
|
||||||
|
|
||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc, wxDouble radius,
|
wxDouble xc, wxDouble yc, wxDouble radius,
|
||||||
const wxGraphicsGradientStops& stops) const;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) const;
|
||||||
|
|
||||||
// creates a font
|
// creates a font
|
||||||
virtual wxGraphicsFont CreateFont( const wxFont &font , const wxColour &col = *wxBLACK ) const;
|
virtual wxGraphicsFont CreateFont( const wxFont &font , const wxColour &col = *wxBLACK ) const;
|
||||||
@@ -999,13 +1013,15 @@ public:
|
|||||||
virtual wxGraphicsBrush
|
virtual wxGraphicsBrush
|
||||||
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops) = 0;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) = 0;
|
||||||
|
|
||||||
virtual wxGraphicsBrush
|
virtual wxGraphicsBrush
|
||||||
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc,
|
wxDouble xc, wxDouble yc,
|
||||||
wxDouble radius,
|
wxDouble radius,
|
||||||
const wxGraphicsGradientStops& stops) = 0;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) = 0;
|
||||||
|
|
||||||
// sets the font
|
// sets the font
|
||||||
virtual wxGraphicsFont CreateFont( const wxFont &font , const wxColour &col = *wxBLACK ) = 0;
|
virtual wxGraphicsFont CreateFont( const wxFont &font , const wxColour &col = *wxBLACK ) = 0;
|
||||||
|
@@ -644,7 +644,8 @@ public:
|
|||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxColour& c1, const wxColour& c2) const;
|
const wxColour& c1, const wxColour& c2,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@overload
|
@overload
|
||||||
@@ -652,7 +653,8 @@ public:
|
|||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops) const;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Creates a native brush with a radial gradient.
|
Creates a native brush with a radial gradient.
|
||||||
@@ -670,7 +672,8 @@ public:
|
|||||||
wxDouble xc, wxDouble yc,
|
wxDouble xc, wxDouble yc,
|
||||||
wxDouble radius,
|
wxDouble radius,
|
||||||
const wxColour& oColor,
|
const wxColour& oColor,
|
||||||
const wxColour& cColor) const;
|
const wxColour& cColor,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@overload
|
@overload
|
||||||
@@ -679,7 +682,8 @@ public:
|
|||||||
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc,
|
wxDouble xc, wxDouble yc,
|
||||||
wxDouble radius,
|
wxDouble radius,
|
||||||
const wxGraphicsGradientStops& stops) = 0;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Sets the brush for filling paths.
|
Sets the brush for filling paths.
|
||||||
@@ -1456,7 +1460,8 @@ public:
|
|||||||
wxDouble y1,
|
wxDouble y1,
|
||||||
wxDouble x2,
|
wxDouble x2,
|
||||||
wxDouble y2,
|
wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops) = 0;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Creates a native affine transformation matrix from the passed in
|
Creates a native affine transformation matrix from the passed in
|
||||||
@@ -1488,7 +1493,8 @@ public:
|
|||||||
virtual wxGraphicsBrush CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
virtual wxGraphicsBrush CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc,
|
wxDouble xc, wxDouble yc,
|
||||||
wxDouble radius,
|
wxDouble radius,
|
||||||
const wxGraphicsGradientStops& stops) = 0;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Extracts a sub-bitmap from an existing bitmap.
|
Extracts a sub-bitmap from an existing bitmap.
|
||||||
@@ -1630,19 +1636,23 @@ public:
|
|||||||
|
|
||||||
wxGraphicsPenInfo&
|
wxGraphicsPenInfo&
|
||||||
LinearGradient(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
LinearGradient(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
||||||
const wxColour& c1, const wxColour& c2);
|
const wxColour& c1, const wxColour& c2,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix);
|
||||||
|
|
||||||
wxGraphicsPenInfo&
|
wxGraphicsPenInfo&
|
||||||
LinearGradient(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
LinearGradient(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops);
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix);
|
||||||
|
|
||||||
wxGraphicsPenInfo&
|
wxGraphicsPenInfo&
|
||||||
RadialGradient(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc, wxDouble radius,
|
RadialGradient(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc, wxDouble radius,
|
||||||
const wxColour& oColor, const wxColour& cColor);
|
const wxColour& oColor, const wxColour& cColor,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix);
|
||||||
|
|
||||||
wxGraphicsPenInfo&
|
wxGraphicsPenInfo&
|
||||||
RadialGradient(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc,
|
RadialGradient(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc,
|
||||||
wxDouble radius, const wxGraphicsGradientStops& stops);
|
wxDouble radius, const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix);
|
||||||
|
|
||||||
wxColour GetColour() const;
|
wxColour GetColour() const;
|
||||||
wxBitmap GetStipple() const;
|
wxBitmap GetStipple() const;
|
||||||
|
@@ -883,13 +883,15 @@ wxGraphicsBrush
|
|||||||
wxGraphicsContext::CreateLinearGradientBrush(
|
wxGraphicsContext::CreateLinearGradientBrush(
|
||||||
wxDouble x1, wxDouble y1,
|
wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxColour& c1, const wxColour& c2) const
|
const wxColour& c1, const wxColour& c2,
|
||||||
|
const wxGraphicsMatrix& matrix) const
|
||||||
{
|
{
|
||||||
return GetRenderer()->CreateLinearGradientBrush
|
return GetRenderer()->CreateLinearGradientBrush
|
||||||
(
|
(
|
||||||
x1, y1,
|
x1, y1,
|
||||||
x2, y2,
|
x2, y2,
|
||||||
wxGraphicsGradientStops(c1,c2)
|
wxGraphicsGradientStops(c1,c2),
|
||||||
|
matrix
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -897,22 +899,15 @@ wxGraphicsBrush
|
|||||||
wxGraphicsContext::CreateLinearGradientBrush(
|
wxGraphicsContext::CreateLinearGradientBrush(
|
||||||
wxDouble x1, wxDouble y1,
|
wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& gradientStops) const
|
const wxGraphicsGradientStops& gradientStops,
|
||||||
|
const wxGraphicsMatrix& matrix) const
|
||||||
{
|
{
|
||||||
return GetRenderer()->CreateLinearGradientBrush(x1,y1,x2,y2, gradientStops);
|
return GetRenderer()->CreateLinearGradientBrush
|
||||||
}
|
|
||||||
|
|
||||||
wxGraphicsBrush
|
|
||||||
wxGraphicsContext::CreateRadialGradientBrush(
|
|
||||||
wxDouble xo, wxDouble yo,
|
|
||||||
wxDouble xc, wxDouble yc, wxDouble radius,
|
|
||||||
const wxColour &oColor, const wxColour &cColor) const
|
|
||||||
{
|
|
||||||
return GetRenderer()->CreateRadialGradientBrush
|
|
||||||
(
|
(
|
||||||
xo, yo,
|
x1, y1,
|
||||||
xc, yc, radius,
|
x2, y2,
|
||||||
wxGraphicsGradientStops(oColor, cColor)
|
gradientStops,
|
||||||
|
matrix
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -920,13 +915,31 @@ wxGraphicsBrush
|
|||||||
wxGraphicsContext::CreateRadialGradientBrush(
|
wxGraphicsContext::CreateRadialGradientBrush(
|
||||||
wxDouble xo, wxDouble yo,
|
wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc, wxDouble radius,
|
wxDouble xc, wxDouble yc, wxDouble radius,
|
||||||
const wxGraphicsGradientStops& gradientStops) const
|
const wxColour &oColor, const wxColour &cColor,
|
||||||
|
const wxGraphicsMatrix& matrix) const
|
||||||
{
|
{
|
||||||
return GetRenderer()->CreateRadialGradientBrush
|
return GetRenderer()->CreateRadialGradientBrush
|
||||||
(
|
(
|
||||||
xo, yo,
|
xo, yo,
|
||||||
xc, yc, radius,
|
xc, yc, radius,
|
||||||
gradientStops
|
wxGraphicsGradientStops(oColor, cColor),
|
||||||
|
matrix
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxGraphicsBrush
|
||||||
|
wxGraphicsContext::CreateRadialGradientBrush(
|
||||||
|
wxDouble xo, wxDouble yo,
|
||||||
|
wxDouble xc, wxDouble yc, wxDouble radius,
|
||||||
|
const wxGraphicsGradientStops& gradientStops,
|
||||||
|
const wxGraphicsMatrix& matrix) const
|
||||||
|
{
|
||||||
|
return GetRenderer()->CreateRadialGradientBrush
|
||||||
|
(
|
||||||
|
xo, yo,
|
||||||
|
xc, yc, radius,
|
||||||
|
gradientStops,
|
||||||
|
matrix
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -262,10 +262,12 @@ public:
|
|||||||
|
|
||||||
void CreateLinearGradientPattern(wxDouble x1, wxDouble y1,
|
void CreateLinearGradientPattern(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops);
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix);
|
||||||
void CreateRadialGradientPattern(wxDouble xo, wxDouble yo,
|
void CreateRadialGradientPattern(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc, wxDouble radius,
|
wxDouble xc, wxDouble yc, wxDouble radius,
|
||||||
const wxGraphicsGradientStops& stops);
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Call this to use the given bitmap as stipple. Bitmap must be non-null
|
// Call this to use the given bitmap as stipple. Bitmap must be non-null
|
||||||
@@ -748,10 +750,17 @@ void wxCairoPenBrushBaseData::AddGradientStops(const wxGraphicsGradientStops& st
|
|||||||
void
|
void
|
||||||
wxCairoPenBrushBaseData::CreateLinearGradientPattern(wxDouble x1, wxDouble y1,
|
wxCairoPenBrushBaseData::CreateLinearGradientPattern(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops)
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix)
|
||||||
{
|
{
|
||||||
m_pattern = cairo_pattern_create_linear(x1,y1,x2,y2);
|
m_pattern = cairo_pattern_create_linear(x1,y1,x2,y2);
|
||||||
|
|
||||||
|
if (! matrix.IsNull())
|
||||||
|
{
|
||||||
|
cairo_matrix_t m = *((cairo_matrix_t*) matrix.GetNativeMatrix());
|
||||||
|
cairo_pattern_set_matrix(m_pattern, &m);
|
||||||
|
}
|
||||||
|
|
||||||
AddGradientStops(stops);
|
AddGradientStops(stops);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -759,10 +768,17 @@ void
|
|||||||
wxCairoPenBrushBaseData::CreateRadialGradientPattern(wxDouble xo, wxDouble yo,
|
wxCairoPenBrushBaseData::CreateRadialGradientPattern(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc,
|
wxDouble xc, wxDouble yc,
|
||||||
wxDouble radius,
|
wxDouble radius,
|
||||||
const wxGraphicsGradientStops& stops)
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix)
|
||||||
{
|
{
|
||||||
m_pattern = cairo_pattern_create_radial(xo,yo,0.0,xc,yc,radius);
|
m_pattern = cairo_pattern_create_radial(xo,yo,0.0,xc,yc,radius);
|
||||||
|
|
||||||
|
if (! matrix.IsNull())
|
||||||
|
{
|
||||||
|
cairo_matrix_t m = *((cairo_matrix_t*) matrix.GetNativeMatrix());
|
||||||
|
cairo_pattern_set_matrix(m_pattern, &m);
|
||||||
|
}
|
||||||
|
|
||||||
AddGradientStops(stops);
|
AddGradientStops(stops);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -922,14 +938,16 @@ wxCairoPenData::wxCairoPenData( wxGraphicsRenderer* renderer, const wxGraphicsPe
|
|||||||
case wxGRADIENT_LINEAR:
|
case wxGRADIENT_LINEAR:
|
||||||
CreateLinearGradientPattern(info.GetX1(), info.GetY1(),
|
CreateLinearGradientPattern(info.GetX1(), info.GetY1(),
|
||||||
info.GetX2(), info.GetY2(),
|
info.GetX2(), info.GetY2(),
|
||||||
info.GetStops());
|
info.GetStops(),
|
||||||
|
info.GetMatrix());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case wxGRADIENT_RADIAL:
|
case wxGRADIENT_RADIAL:
|
||||||
CreateRadialGradientPattern(info.GetXO(), info.GetYO(),
|
CreateRadialGradientPattern(info.GetXO(), info.GetYO(),
|
||||||
info.GetXC(), info.GetYC(),
|
info.GetXC(), info.GetYC(),
|
||||||
info.GetRadius(),
|
info.GetRadius(),
|
||||||
info.GetStops());
|
info.GetStops(),
|
||||||
|
info.GetMatrix());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2975,13 +2993,15 @@ public :
|
|||||||
virtual wxGraphicsBrush
|
virtual wxGraphicsBrush
|
||||||
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops) wxOVERRIDE;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) wxOVERRIDE;
|
||||||
|
|
||||||
virtual wxGraphicsBrush
|
virtual wxGraphicsBrush
|
||||||
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc,
|
wxDouble xc, wxDouble yc,
|
||||||
wxDouble radius,
|
wxDouble radius,
|
||||||
const wxGraphicsGradientStops& stops) wxOVERRIDE;
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix=wxNullGraphicsMatrix) wxOVERRIDE;
|
||||||
|
|
||||||
// sets the font
|
// sets the font
|
||||||
virtual wxGraphicsFont CreateFont( const wxFont &font , const wxColour &col = *wxBLACK ) wxOVERRIDE ;
|
virtual wxGraphicsFont CreateFont( const wxFont &font , const wxColour &col = *wxBLACK ) wxOVERRIDE ;
|
||||||
@@ -3169,12 +3189,13 @@ wxGraphicsBrush wxCairoRenderer::CreateBrush(const wxBrush& brush )
|
|||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
wxCairoRenderer::CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
wxCairoRenderer::CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
const wxGraphicsGradientStops& stops)
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix)
|
||||||
{
|
{
|
||||||
wxGraphicsBrush p;
|
wxGraphicsBrush p;
|
||||||
ENSURE_LOADED_OR_RETURN(p);
|
ENSURE_LOADED_OR_RETURN(p);
|
||||||
wxCairoBrushData* d = new wxCairoBrushData( this );
|
wxCairoBrushData* d = new wxCairoBrushData( this );
|
||||||
d->CreateLinearGradientPattern(x1, y1, x2, y2, stops);
|
d->CreateLinearGradientPattern(x1, y1, x2, y2, stops, matrix);
|
||||||
p.SetRefData(d);
|
p.SetRefData(d);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
@@ -3182,16 +3203,18 @@ wxCairoRenderer::CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
|||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
wxCairoRenderer::CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
wxCairoRenderer::CreateRadialGradientBrush(wxDouble xo, wxDouble yo,
|
||||||
wxDouble xc, wxDouble yc, wxDouble r,
|
wxDouble xc, wxDouble yc, wxDouble r,
|
||||||
const wxGraphicsGradientStops& stops)
|
const wxGraphicsGradientStops& stops,
|
||||||
|
const wxGraphicsMatrix& matrix)
|
||||||
{
|
{
|
||||||
wxGraphicsBrush p;
|
wxGraphicsBrush p;
|
||||||
ENSURE_LOADED_OR_RETURN(p);
|
ENSURE_LOADED_OR_RETURN(p);
|
||||||
wxCairoBrushData* d = new wxCairoBrushData( this );
|
wxCairoBrushData* d = new wxCairoBrushData( this );
|
||||||
d->CreateRadialGradientPattern(xo, yo, xc, yc, r, stops);
|
d->CreateRadialGradientPattern(xo, yo, xc, yc, r, stops, matrix);
|
||||||
p.SetRefData(d);
|
p.SetRefData(d);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxGraphicsFont wxCairoRenderer::CreateFont( const wxFont &font , const wxColour &col )
|
wxGraphicsFont wxCairoRenderer::CreateFont( const wxFont &font , const wxColour &col )
|
||||||
{
|
{
|
||||||
wxGraphicsFont p;
|
wxGraphicsFont p;
|
||||||
|
Reference in New Issue
Block a user