+/**
+ Compositing is done using Porter-Duff compositions
+ (see http://keithp.com/~keithp/porterduff/p253-porter.pdf) with
+ wxGraphicsContext::SetCompositionMode().
+
+ The description give a short equation on how the values of a resulting
+ pixel are calculated.
+ @e R = Result, @e S = Source, @e D = Destination, colors premultiplied with alpha
+ @e Ra, @e Sa, @e Da their alpha components
+*/
+enum wxCompositionMode
+{
+ /**
+ Indicates invalid or unsupported composition mode.
+
+ This value can't be passed to wxGraphicsContext::SetCompositionMode().
+
+ @since 2.9.2
+ */
+ wxCOMPOSITION_INVALID = -1,
+ wxCOMPOSITION_CLEAR, /**< @e R = 0 */
+ wxCOMPOSITION_SOURCE, /**< @e R = S */
+ wxCOMPOSITION_OVER, /**< @e R = @e S + @e D*(1 - @e Sa) */
+ wxCOMPOSITION_IN, /**< @e R = @e S*@e Da */
+ wxCOMPOSITION_OUT, /**< @e R = @e S*(1 - @e Da) */
+ wxCOMPOSITION_ATOP, /**< @e R = @e S*@e Da + @e D*(1 - @e Sa) */
+
+ wxCOMPOSITION_DEST, /**< @e R = @e D, essentially a noop */
+ wxCOMPOSITION_DEST_OVER, /**< @e R = @e S*(1 - @e Da) + @e D */
+ wxCOMPOSITION_DEST_IN, /**< @e R = @e D*@e Sa */
+ wxCOMPOSITION_DEST_OUT, /**< @e R = @e D*(1 - @e Sa) */
+ wxCOMPOSITION_DEST_ATOP, /**< @e R = @e S*(1 - @e Da) + @e D*@e Sa */
+ wxCOMPOSITION_XOR, /**< @e R = @e S*(1 - @e Da) + @e D*(1 - @e Sa) */
+ wxCOMPOSITION_ADD /**< @e R = @e S + @e D */
+};
+
+/**
+ Represents a bitmap.
+
+ The objects of this class are not created directly but only via
+ 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
+{
+public:
+ /**
+ Default constructor creates an invalid bitmap.
+ */
+ wxGraphicsBitmap() {}
+
+ /**
+ Return the contents of this bitmap as wxImage.
+
+ Using this method is more efficient than converting wxGraphicsBitmap to
+ wxBitmap first and then to wxImage and can be useful if, for example,
+ you want to save wxGraphicsBitmap as a disk file in a format not
+ directly supported by wxBitmap.
+
+ Invalid image is returned if the bitmap is invalid.
+
+ @since 2.9.3
+ */
+ wxImage ConvertToImage() const;
+};