wxGraphicsContext(3)

NAME
wxGraphicsContext - A wxGraphicsContext instance is the object that is drawn upon.

DESCRIPTION

It is created by a renderer using wxGraphicsRenderer:createContext/2. This can be either directly using a renderer instance, or indirectly using the static convenience create/1 functions of wxGraphicsContext that always delegate the task to the default renderer.

Remark: For some renderers (like Direct2D or Cairo) processing of drawing operations may be deferred (Direct2D render target normally builds up a batch of rendering commands but defers processing of these commands, Cairo operates on a separate surface) so to make drawing results visible you need to update the content of the context by calling wxGraphicsContext::Flush() (not implemented in wx) or by destroying the context.

See:

    • wxGraphicsRenderer:createContext/2

    • wxGCDC

    • wxDC

This class is derived, and can use functions, from:

    • wxGraphicsObject

wxWidgets docs: wxGraphicsContext

DATA TYPES

wxGraphicsContext() :: wx:wx_object().

FUNCTIONS

clip(This, Region) -> ok when This :: wxGraphicsContext(), Region :: wxRegion:wxRegion().

    Sets the clipping region to the intersection of the given region and the previously set clipping region.

    The clipping region is an area to which drawing is restricted.

    Remark:

        • Clipping region should be given in logical coordinates.

        • Calling this function can only make the clipping region smaller, never larger.

        • You need to call resetClip/1 first if you want to set the clipping region exactly to the region specified.

        • If resulting clipping region is empty, then all drawing upon the context is clipped out (all changes made by drawing operations are masked out).
clip(This, X, Y, W, H) -> ok when This :: wxGraphicsContext(), X :: number(), Y :: number(), W :: number(), H :: number().

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
concatTransform(This, Matrix) -> ok when This :: wxGraphicsContext(), Matrix :: wxGraphicsMatrix:wxGraphicsMatrix().

    Concatenates the passed in transform with the current transform of this context.
create() -> wxGraphicsContext().

    Create a lightweight context that can be used only for measuring text.
create(WindowDC) -> wxGraphicsContext() when WindowDC :: wxWindowDC:wxWindowDC() | wxWindow:wxWindow() | wxMemoryDC:wxMemoryDC() | wxImage:wxImage().

    Creates a wxGraphicsContext from a wxWindowDC.

    See: wxGraphicsRenderer:createContext/2
createBrush(This, Brush) -> wxGraphicsBrush:wxGraphicsBrush() when This :: wxGraphicsContext(), Brush :: wxBrush:wxBrush().

    Creates a native brush from a wxBrush.
createFont(This, SizeInPixels, Facename) -> wxGraphicsFont:wxGraphicsFont() when This :: wxGraphicsContext(), SizeInPixels :: number(), Facename :: unicode:chardata(); (This, Font, [Option]) -> wxGraphicsFont:wxGraphicsFont() when This :: wxGraphicsContext(), Font :: wxFont:wxFont(), Option :: {col, wx:wx_colour()}.

    Creates a native graphics font from a wxFont and a text colour.

    Remark: For Direct2D graphics fonts can be created from TrueType fonts only.
createFont(This, SizeInPixels, Facename, [Option]) -> wxGraphicsFont:wxGraphicsFont() when This :: wxGraphicsContext(), SizeInPixels :: number(), Facename :: unicode:chardata(), Option :: {flags, integer()} | {col, wx:wx_colour()}.

    Creates a font object with the specified attributes.

    The use of overload taking wxFont is preferred, see wxGraphicsRenderer:createFont/4 for more details.

    Remark: For Direct2D graphics fonts can be created from TrueType fonts only.

    Since: 2.9.3
createLinearGradientBrush(This, X1, Y1, X2, Y2, Stops) -> wxGraphicsBrush:wxGraphicsBrush() when This :: wxGraphicsContext(), X1 :: number(), Y1 :: number(), X2 :: number(), Y2 :: number(), Stops :: wxGraphicsGradientStops:wxGraphicsGradientStops().

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
createLinearGradientBrush(This, X1, Y1, X2, Y2, C1, C2) -> wxGraphicsBrush:wxGraphicsBrush() when This :: wxGraphicsContext(), X1 :: number(), Y1 :: number(), X2 :: number(), Y2 :: number(), C1 :: wx:wx_colour(), C2 :: wx:wx_colour().

    Creates a native brush with a linear gradient. The brush starts at (@a x1, @a y1) and ends at (@a x2, @a y2). Either just the start and end gradient colours (@a c1 and @a c2) or full set of gradient @a stops can be specified. The version taking wxGraphicsGradientStops is new in wxWidgets 2.9.1. The matrix parameter was added in wxWidgets 3.1.3
createMatrix(This, [Option]) -> wxGraphicsMatrix:wxGraphicsMatrix() when This :: wxGraphicsContext(), Option :: {a, number()} | {b, number()} | {c, number()} | {d, number()} | {tx, number()} | {ty, number()}.

    Creates a native affine transformation matrix from the passed in values.

    The default parameters result in an identity matrix.
createPath(This) -> wxGraphicsPath:wxGraphicsPath() when This :: wxGraphicsContext().

    Creates a native graphics path which is initially empty.
createPen(This, Pen) -> wxGraphicsPen:wxGraphicsPen() when This :: wxGraphicsContext(), Pen :: wxPen:wxPen().

    Creates a native pen from a wxPen.

    Prefer to use the overload taking wxGraphicsPenInfo (not implemented in wx) unless you already have a wxPen as constructing one only to pass it to this method is wasteful.
createRadialGradientBrush(This, StartX, StartY, EndX, EndY, Radius, Stops) -> wxGraphicsBrush:wxGraphicsBrush() when This :: wxGraphicsContext(), StartX :: number(), StartY :: number(), EndX :: number(), EndY :: number(), Radius :: number(), Stops :: wxGraphicsGradientStops:wxGraphicsGradientStops().

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
createRadialGradientBrush(This, StartX, StartY, EndX, EndY, Radius, OColor, CColor) -> wxGraphicsBrush:wxGraphicsBrush() when This :: wxGraphicsContext(), StartX :: number(), StartY :: number(), EndX :: number(), EndY :: number(), Radius :: number(), OColor :: wx:wx_colour(), CColor :: wx:wx_colour().

    Creates a native brush with a radial gradient. The brush originates at (@a startX, @a startY) and ends on a circle around (@a endX, @a endY) with the given @a radius. The gradient may be specified either by its start and end colours @a oColor and @a cColor or by a full set of gradient @a stops. The version taking wxGraphicsGradientStops is new in wxWidgets 2.9.1. The ability to apply a transformation matrix to the gradient was added in 3.1.3
destroy(This :: wxGraphicsContext()) -> ok.

    Destroys the object
drawBitmap(This, Bmp, X, Y, W, H) -> ok when This :: wxGraphicsContext(), Bmp :: wxBitmap:wxBitmap(), X :: number(), Y :: number(), W :: number(), H :: number().

    Draws the bitmap.

    In case of a mono bitmap, this is treated as a mask and the current brushed is used for filling.
drawEllipse(This, X, Y, W, H) -> ok when This :: wxGraphicsContext(), X :: number(), Y :: number(), W :: number(), H :: number().

    Draws an ellipse.
drawIcon(This, Icon, X, Y, W, H) -> ok when This :: wxGraphicsContext(), Icon :: wxIcon:wxIcon(), X :: number(), Y :: number(), W :: number(), H :: number().

    Draws the icon.
drawLines(This, Points, [Option]) -> ok when This :: wxGraphicsContext(), Points :: [{X :: float(), Y :: float()}], Option :: {fillStyle, wx:wx_enum()}.

    Draws a polygon.
drawPath(This, Path, [Option]) -> ok when This :: wxGraphicsContext(), Path :: wxGraphicsPath:wxGraphicsPath(), Option :: {fillStyle, wx:wx_enum()}.

    Draws the path by first filling and then stroking.
drawRectangle(This, X, Y, W, H) -> ok when This :: wxGraphicsContext(), X :: number(), Y :: number(), W :: number(), H :: number().

    Draws a rectangle.
drawRoundedRectangle(This, X, Y, W, H, Radius) -> ok when This :: wxGraphicsContext(), X :: number(), Y :: number(), W :: number(), H :: number(), Radius :: number().

    Draws a rounded rectangle.
drawText(This, Str, X, Y) -> ok when This :: wxGraphicsContext(), Str :: unicode:chardata(), X :: number(), Y :: number().

    Draws text at the defined position.
drawText(This, Str, X, Y, Angle) -> ok when This :: wxGraphicsContext(), Str :: unicode:chardata(), X :: number(), Y :: number(), Angle :: number(); (This, Str, X, Y, BackgroundBrush) -> ok when This :: wxGraphicsContext(), Str :: unicode:chardata(), X :: number(), Y :: number(), BackgroundBrush :: wxGraphicsBrush:wxGraphicsBrush().

    Draws text at the defined position.
drawText(This, Str, X, Y, Angle, BackgroundBrush) -> ok when This :: wxGraphicsContext(), Str :: unicode:chardata(), X :: number(), Y :: number(), Angle :: number(), BackgroundBrush :: wxGraphicsBrush:wxGraphicsBrush().

    Draws text at the defined position.
fillPath(This, Path, [Option]) -> ok when This :: wxGraphicsContext(), Path :: wxGraphicsPath:wxGraphicsPath(), Option :: {fillStyle, wx:wx_enum()}.

    Fills the path with the current brush.
getPartialTextExtents(This, Text) -> [number()] when This :: wxGraphicsContext(), Text :: unicode:chardata().

    Fills the widths array with the widths from the beginning of text to the corresponding character of text.
getTextExtent(This, Text) -> Result when Result :: {Width :: number(), Height :: number(), Descent :: number(), ExternalLeading :: number()}, This :: wxGraphicsContext(), Text :: unicode:chardata().

    Gets the dimensions of the string using the currently selected font.
getTransform(This) -> wxGraphicsMatrix:wxGraphicsMatrix() when This :: wxGraphicsContext().

    Gets the current transformation matrix of this context.
resetClip(This) -> ok when This :: wxGraphicsContext().

    Resets the clipping to original shape.
rotate(This, Angle) -> ok when This :: wxGraphicsContext(), Angle :: number().

    Rotates the current transformation matrix (in radians).
scale(This, XScale, YScale) -> ok when This :: wxGraphicsContext(), XScale :: number(), YScale :: number().

    Scales the current transformation matrix.
setBrush(This, Brush) -> ok when This :: wxGraphicsContext(), Brush :: wxGraphicsBrush:wxGraphicsBrush() | wxBrush:wxBrush().

    Sets the brush for filling paths.
setFont(This, Font) -> ok when This :: wxGraphicsContext(), Font :: wxGraphicsFont:wxGraphicsFont().

    Sets the font for drawing text.
setFont(This, Font, Colour) -> ok when This :: wxGraphicsContext(), Font :: wxFont:wxFont(), Colour :: wx:wx_colour().

    Sets the font for drawing text.

    Remark: For Direct2D only TrueType fonts can be used.
setPen(This, Pen) -> ok when This :: wxGraphicsContext(), Pen :: wxPen:wxPen() | wxGraphicsPen:wxGraphicsPen().

    Sets the pen used for stroking.
setTransform(This, Matrix) -> ok when This :: wxGraphicsContext(), Matrix :: wxGraphicsMatrix:wxGraphicsMatrix().

    Sets the current transformation matrix of this context.
strokeLine(This, X1, Y1, X2, Y2) -> ok when This :: wxGraphicsContext(), X1 :: number(), Y1 :: number(), X2 :: number(), Y2 :: number().

    Strokes a single line.
strokeLines(This, Points) -> ok when This :: wxGraphicsContext(), Points :: [{X :: float(), Y :: float()}].

    Stroke lines connecting all the points.

    Unlike the other overload of this function, this method draws a single polyline and not a number of disconnected lines.
strokePath(This, Path) -> ok when This :: wxGraphicsContext(), Path :: wxGraphicsPath:wxGraphicsPath().

    Strokes along a path with the current pen.
translate(This, Dx, Dy) -> ok when This :: wxGraphicsContext(), Dx :: number(), Dy :: number().

    Translates the current transformation matrix.