@since 2.9.3
*/
wxImage ConvertToImage() const;
+
+ /**
+ Return the pointer to the native bitmap data. (CGImageRef for Core Graphics,
+ cairo_surface_t for Cairo, Bitmap* for GDI+.)
+
+ @since 2.9.4
+ */
+ void* GetNativeBitmap() const;
};
/**
@see wxGraphicsRenderer::CreateContext()
*/
- static wxGraphicsContext* Create(const wxWindowDC& dc);
+ static wxGraphicsContext* Create(const wxWindowDC& windowDC);
/**
Creates a wxGraphicsContext from a wxMemoryDC
@see wxGraphicsRenderer::CreateContext()
*/
- static wxGraphicsContext* Create(const wxMemoryDC& dc);
+ static wxGraphicsContext* Create(const wxMemoryDC& memoryDC);
/**
Creates a wxGraphicsContext from a wxPrinterDC. Under GTK+, this will
@see wxGraphicsRenderer::CreateContext(), @ref overview_unixprinting
*/
- static wxGraphicsContext* Create(const wxPrinterDC& dc);
+ static wxGraphicsContext* Create(const wxPrinterDC& printerDC);
/**
Creates a wxGraphicsContext from a wxEnhMetaFileDC.
@see wxGraphicsRenderer::CreateContext()
*/
- static wxGraphicsContext* Create(const wxEnhMetaFileDC& dc);
+ static wxGraphicsContext* Create(const wxEnhMetaFileDC& metaFileDC);
/**
Creates a wxGraphicsContext associated with a wxImage.
*/
static wxGraphicsContext* Create(wxImage& image);
+ /**
+ Create a lightweight context that can be used only for measuring text.
+ */
+ static wxGraphicsContext* Create();
+
/**
Clips drawings to the specified region.
*/
wxDouble tx = 0.0,
wxDouble ty = 0.0) const;
+ /**
+ Creates a native affine transformation matrix from the passed
+ generic one.
+
+ @since 2.9.4
+ */
+ wxGraphicsMatrix CreateMatrix(const wxAffineMatrix2DBase& mat) const;
+
/**
Creates a native graphics path which is initially empty.
*/
virtual wxAntialiasMode GetAntialiasMode() const ;
/**
- Sets the interpolation quality, returns true if it supported
+ Sets the interpolation quality, returns true if it is supported.
+
+ Not implemented in Cairo backend currently.
*/
virtual bool SetInterpolationQuality(wxInterpolationQuality interpolation) = 0;
-
+
/**
- Returns the current interpolation quality
+ Returns the current interpolation quality.
*/
virtual wxInterpolationQuality GetInterpolationQuality() const;
-
+
/**
Sets the compositing operator, returns true if it supported
*/
*/
virtual wxCompositionMode GetCompositionMode() const;
+
+ /**
+ Push the current state of the context's transformation matrix on a
+ stack.
+
+ @see wxGraphicsContext::PopState
+ */
+ virtual void PushState() = 0;
+
+ /**
+ Pops a stored state from the stack and sets the current transformation
+ matrix to that state.
+
+ @see wxGraphicsContext::PopState
+ */
+ virtual void PopState() = 0;
+
+
+ virtual bool ShouldOffset() const;
+ virtual void EnableOffset(bool enable = true);
+ void DisableOffset();
+ bool OffsetEnabled();
+
+ /**
+ Begin a new document (relevant only for printing / pdf etc.)
+ If there is a progress dialog, message will be shown.
+ */
+ virtual bool StartDoc( const wxString& message );
+
+ /**
+ Done with that document (relevant only for printing / pdf etc.)
+ */
+ virtual void EndDoc();
+
+ /**
+ Opens a new page (relevant only for printing / pdf etc.) with the given
+ size in points. (If both are null the default page size will be used.)
+ */
+ virtual void StartPage( wxDouble width = 0, wxDouble height = 0 );
+
+ /**
+ Ends the current page (relevant only for printing / pdf etc.)
+ */
+ virtual void EndPage();
+
+ /**
+ Make sure that the current content of this context is immediately visible.
+ */
+ virtual void Flush();
+
+ /**
+ Returns the size of the graphics context in device coordinates.
+ */
+ void GetSize(wxDouble* width, wxDouble* height) const;
+
+ /**
+ Returns the resolution of the graphics context in device points per inch.
+ */
+ virtual void GetDPI( wxDouble* dpiX, wxDouble* dpiY);
+
};
/**
/**
Returns the number of stops.
*/
- unsigned GetCount() const;
+ size_t GetCount() const;
/**
Set the start colour to @a col
*/
virtual wxGraphicsBitmap CreateBitmapFromImage(const wxImage& image) = 0;
+ /**
+ Creates a wxImage from a wxGraphicsBitmap.
+
+ This method is used by the more convenient wxGraphicsBitmap::ConvertToImage.
+ */
+ virtual wxImage CreateImageFromBitmap(const wxGraphicsBitmap& bmp) = 0;
+
/**
Creates wxGraphicsBitmap from a native bitmap handle.
/**
Creates a wxGraphicsContext from a wxWindowDC
*/
- virtual wxGraphicsContext* CreateContext(const wxWindowDC& dc) = 0 ;
+ virtual wxGraphicsContext* CreateContext(const wxWindowDC& windowDC) = 0 ;
/**
Creates a wxGraphicsContext from a wxMemoryDC
*/
- virtual wxGraphicsContext* CreateContext(const wxMemoryDC& dc) = 0 ;
+ virtual wxGraphicsContext* CreateContext(const wxMemoryDC& memoryDC) = 0 ;
/**
Creates a wxGraphicsContext from a wxPrinterDC
*/
- virtual wxGraphicsContext* CreateContext(const wxPrinterDC& dc) = 0 ;
+ virtual wxGraphicsContext* CreateContext(const wxPrinterDC& printerDC) = 0 ;
/**
Creates a wxGraphicsContext from a wxEnhMetaFileDC.
This function, as wxEnhMetaFileDC class itself, is only available only
under MSW.
*/
- virtual wxGraphicsContext* CreateContext(const wxEnhMetaFileDC& dc) = 0;
+ virtual wxGraphicsContext* CreateContext(const wxEnhMetaFileDC& metaFileDC) = 0;
/**
Creates a wxGraphicsContext associated with a wxImage.
on GTK we currently default to the cairo renderer.
*/
static wxGraphicsRenderer* GetDefaultRenderer();
+ static wxGraphicsRenderer* GetCairoRenderer();
+
};
virtual bool IsIdentity() const;
/**
- Rotates this matrix (in radians).
+ Rotates this matrix clockwise (in radians).
+
+ @param angle
+ Rotation angle in radians, clockwise.
*/
virtual void Rotate(wxDouble angle);
virtual void Translate(wxDouble dx, wxDouble dy);
};
+
+const wxGraphicsPen wxNullGraphicsPen;
+const wxGraphicsBrush wxNullGraphicsBrush;
+const wxGraphicsFont wxNullGraphicsFont;
+const wxGraphicsBitmap wxNullGraphicsBitmap;
+const wxGraphicsMatrix wxNullGraphicsMatrix;
+const wxGraphicsPath wxNullGraphicsPath;