Add wxDC::SetTransformMatrix() and related methods and implement them in wxMSW.
Add support for world transformations to wxDC too. Currently this is implemented in wxMSW only but could be easily provided in the ports that use wxGraphicsContext for wxDC implementation later. Closes #13092. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -163,6 +163,17 @@ struct wxFontMetrics
|
||||
wxColour use the colour's alpha values when stroking or filling.
|
||||
|
||||
|
||||
@section Support for Transformation Matrix
|
||||
|
||||
On some platforms (currently only under MSW and only on Windows NT, i.e.
|
||||
not Windows 9x/ME, systems) wxDC has support for applying an arbitrary
|
||||
affine transformation matrix to its coordinate system. Call
|
||||
CanUseTransformMatrix() to check if this support is available and then call
|
||||
SetTransformMatrix() if it is. If the transformation matrix is not
|
||||
supported, SetTransformMatrix() always simply returns false and doesn't do
|
||||
anything.
|
||||
|
||||
|
||||
@library{wxcore}
|
||||
@category{dc,gdi}
|
||||
|
||||
@@ -1499,6 +1510,58 @@ public:
|
||||
'zooming'.
|
||||
*/
|
||||
void SetUserScale(double xScale, double yScale);
|
||||
|
||||
|
||||
/**
|
||||
@name Transformation matrix
|
||||
|
||||
See the notes about the availability of these functions in the class
|
||||
documentation.
|
||||
*/
|
||||
//@{
|
||||
|
||||
/**
|
||||
Check if the use of transformation matrix is supported by the current
|
||||
system.
|
||||
|
||||
Currently this function always returns @false for non-MSW platforms and
|
||||
may return @false for old (Windows 9x/ME) Windows systems. Normally
|
||||
support for the transformation matrix is always available in any
|
||||
relatively recent Windows versions.
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
bool CanUseTransformMatrix() const;
|
||||
|
||||
/**
|
||||
Set the transformation matrix.
|
||||
|
||||
If transformation matrix is supported on the current system, the
|
||||
specified @a matrix will be used to transform between wxDC and physical
|
||||
coordinates. Otherwise the function returns @false and doesn't change
|
||||
the coordinate mapping.
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
bool SetTransformMatrix(const wxAffineMatrix2D& matrix);
|
||||
|
||||
/**
|
||||
Return the transformation matrix used by this device context.
|
||||
|
||||
By default the transformation matrix is the identity matrix.
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
wxAffineMatrix2D GetTransformMatrix() const;
|
||||
|
||||
/**
|
||||
Revert the transformation matrix to identity matrix.
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
void ResetTransformMatrix();
|
||||
|
||||
//@}
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user