X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/08b2d55fdf75a1656c682cc2773c2d1609f1e7c1..b09857ae000a60704207d63290be937584805fb0:/interface/wx/graphics.h diff --git a/interface/wx/graphics.h b/interface/wx/graphics.h index 971df3c422..ac46f91a31 100644 --- a/interface/wx/graphics.h +++ b/interface/wx/graphics.h @@ -269,11 +269,11 @@ enum wxCompositionMode Represents a bitmap. The objects of this class are not created directly but only via - wxGraphicsContext or wxGraphicsRenderer CreateBitmap() and - CreateSubBitmap() methods. They can subsequently be used with - wxGraphicsContext::DrawBitmap(). The only other operation is testing for - the bitmap validity which can be performed using IsNull() method inherited - from the base class. + wxGraphicsContext or wxGraphicsRenderer CreateBitmap(), + CreateBitmapFromImage() or CreateSubBitmap() methods. They can subsequently + be used with wxGraphicsContext::DrawBitmap(). The only other operation is + testing for the bitmap validity which can be performed using IsNull() + method inherited from the base class. */ class wxGraphicsBitmap : public wxGraphicsObject { @@ -296,6 +296,14 @@ public: @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; }; /** @@ -356,14 +364,14 @@ public: @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 @@ -372,7 +380,7 @@ public: @see wxGraphicsRenderer::CreateContext(), @ref overview_unixprinting */ - static wxGraphicsContext* Create(const wxPrinterDC& dc); + static wxGraphicsContext* Create(const wxPrinterDC& printerDC); /** Creates a wxGraphicsContext from a wxEnhMetaFileDC. @@ -382,7 +390,20 @@ public: @see wxGraphicsRenderer::CreateContext() */ - static wxGraphicsContext* Create(const wxEnhMetaFileDC& dc); + static wxGraphicsContext* Create(const wxEnhMetaFileDC& metaFileDC); + + /** + Creates a wxGraphicsContext associated with a wxImage. + + The image specifies the size of the context as well as whether alpha is + supported (if wxImage::HasAlpha()) or not and the initial contents of + the context. The @a image object must have a life time greater than + that of the new context as the context copies its contents back to the + image when it is destroyed. + + @since 2.9.3 + */ + static wxGraphicsContext* Create(wxImage& image); /** Clips drawings to the specified region. @@ -407,6 +428,18 @@ public: */ virtual wxGraphicsBitmap CreateBitmap( const wxBitmap &bitmap ) = 0; + /** + Creates wxGraphicsBitmap from an existing wxImage. + + This method is more efficient than converting wxImage to wxBitmap first + and then calling CreateBitmap() but otherwise has the same effect. + + Returns an invalid wxNullGraphicsBitmap on failure. + + @since 2.9.3 + */ + virtual wxGraphicsBitmap CreateBitmapFromImage(const wxImage& image); + /** Extracts a sub-bitmap from an existing bitmap. @@ -428,6 +461,19 @@ public: virtual wxGraphicsFont CreateFont(const wxFont& font, const wxColour& col = *wxBLACK) const; + /** + Creates a font object with the specified attributes. + + The use of overload taking wxFont is preferred, see + wxGraphicsRenderer::CreateFont() for more details. + + @since 2.9.3 + */ + virtual wxGraphicsFont CreateFont(double sizeInPixels, + const wxString& facename, + int flags = wxFONTFLAG_DEFAULT, + const wxColour& col = *wxBLACK) const; + /** Creates a wxGraphicsContext from a native context. This native context must be a CGContextRef for Core Graphics, a Graphics pointer for @@ -474,6 +520,14 @@ public: 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. */ @@ -749,15 +803,17 @@ public: 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 */ @@ -768,6 +824,28 @@ public: */ 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 void EnableOffset(bool enable = true); + void DisableOffset(); + bool OffsetEnabled(); + }; /** @@ -914,6 +992,25 @@ public: */ virtual wxGraphicsBitmap CreateBitmap( const wxBitmap &bitmap ) = 0; + /** + Creates wxGraphicsBitmap from an existing wxImage. + + This method is more efficient than converting wxImage to wxBitmap first + and then calling CreateBitmap() but otherwise has the same effect. + + Returns an invalid wxNullGraphicsBitmap on failure. + + @since 2.9.3 + */ + 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. @@ -931,17 +1028,17 @@ public: /** 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. @@ -949,7 +1046,17 @@ public: 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. + + This function is used by wxContext::CreateFromImage() and is not + normally called directly. + + @since 2.9.3 + */ + wxGraphicsContext* CreateContextFromImage(wxImage& image); /** Creates a native brush from a wxBrush. @@ -980,6 +1087,35 @@ public: virtual wxGraphicsFont CreateFont(const wxFont& font, const wxColour& col = *wxBLACK) = 0; + /** + Creates a graphics font with the given characteristics. + + If possible, the CreateFont() overload taking wxFont should be used + instead. The main advantage of this overload is that it can be used + without X server connection under Unix when using Cairo. + + @param sizeInPixels + Height of the font in user space units, i.e. normally pixels. + Notice that this is different from the overload taking wxFont as + wxFont size is specified in points. + @param facename + The name of the font. The same font name might not be available + under all platforms so the font name can also be empty to use the + default platform font. + @param flags + Combination of wxFontFlag enum elements. Currently only + @c wxFONTFLAG_ITALIC and @c wxFONTFLAG_BOLD are supported. By + default the normal font version is used. + @param col + The font colour, black by default. + + @since 2.9.3 + */ + virtual wxGraphicsFont CreateFont(double sizeInPixels, + const wxString& facename, + int flags = wxFONTFLAG_DEFAULT, + const wxColour& col = *wxBLACK) = 0; + /** Creates a native brush with a linear gradient. @@ -1039,6 +1175,8 @@ public: on GTK we currently default to the cairo renderer. */ static wxGraphicsRenderer* GetDefaultRenderer(); + static wxGraphicsRenderer* GetCairoRenderer(); + }; @@ -1161,7 +1299,10 @@ public: virtual bool IsIdentity() const; /** - Rotates this matrix (in radians). + Rotates this matrix clockwise (in radians). + + @param radians + Rotation angle in radians, clockwise. */ virtual void Rotate(wxDouble angle); @@ -1194,3 +1335,10 @@ public: 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;