Skip to main content

AbstractPainterLinearGradient

touchgfx/widgets/canvas/AbstractPainterLinearGradient.hpp

An abstract class for creating painter classes for drawing canvas widgets. All canvas widgets need a painter to fill the shape drawn with a CanvasWidgetRenderer. The painter must provide the color of a pixel on a given coordinate, which will the be blended into the framebuffer depending on the position of the canvas widget and the transparency of the given pixel.

Inherits from: AbstractPainter

Inherited by: PainterARGB8888LinearGradient, PainterRGB565LinearGradient, PainterRGB888LinearGradient

Public Functions

AbstractPainterLinearGradient()
Constructor.
voidsetGradientEndPoints(float startX, float startY, float endX, float endY, float width, float height, const Matrix3x3 & m)
Set the gradient line.
voidsetGradientTexture(const uint32_t * tex, bool solid)
Set the 1024x1 texture used to color this texture.
virtual ~AbstractPainterLinearGradient()
Destructor.

Protected Attributes

floatclOffset
Vertical offset for line with first color.
floatclSlope
Slope of lines with same color.
int16_tcoord0
The gradient line start.
int16_tcoord1
The gradient line end.
floatdeltaColor
Color increment when moving 1 pixel horizontally.
floathorizontalDistance
Horizontal distance between pixels with the first color and the last color.
boolisHorizontal
True if the gradient is horizontal (y0 == y1).
boolisSolid
True if all the gradient colors are solid.
boolisVertical
True if the gradient is vertical (x0 == x1).
const uint32_t *texture
The gradient color texture 1 x 1024.

Additional inherited members

Public Functions inherited from AbstractPainter

AbstractPainter()
Initializes a new instance of the AbstractPainter class.
voidframebufferToDisplay(int16_t & widgetX, int16_t & widgetY) const
Convert Framebuffer widget coordinates to display widget coordinates.
virtual HAL::RenderingMethodgetRenderingMethod() const
Return the applicable rendering method of the painter.
virtual voidpaint(uint8_t * destination, int16_t offset, int16_t widgetX, int16_t widgetY, int16_t count, uint8_t alpha) const =0
Paints a streak of pixels (all with the same alpha) in the framebuffer.
virtual boolsetup(const Rect & widgetRect) const
This function is called before any actual paint operation is started.
virtual voidtearDown() const
This function is called after all paint operation have finished.
virtual ~AbstractPainter()
Finalizes an instance of the AbstractPainter class.

Protected Functions inherited from AbstractPainter

FORCE_INLINE_FUNCTION boolcompatibleFramebuffer(Bitmap::BitmapFormat format)
Helper function to check if the provided bitmap format matches the current framebuffer format.

Protected Attributes inherited from AbstractPainter

int16_twidgetWidth
The width of the widget on screen, used by framebufferToDisplay()

Public Functions Documentation

AbstractPainterLinearGradient

setGradientEndPoints

void setGradientEndPoints(floatstartX ,
floatstartY ,
floatendX ,
floatendY ,
floatwidth ,
floatheight ,
const Matrix3x3 &m
)

Set the gradient line.

First coordinate (startX, startY) specifies the position of the first color. Last coordinate (endX, endY) specifies the position of the last color.

Parameters:
startXX coordinate of the gradient line start point.
startYY coordinate of the gradient line start point.
endXX coordinate of the gradient line end point.
endYY coordinate of the gradient line end point.
widthWidth of gradient.
heightHeight of gradient.
mTransformation.

setGradientTexture

void setGradientTexture(const uint32_t *tex ,
boolsolid
)

Set the 1024x1 texture used to color this texture.

The texture is mapped to the gradient line (startX, startY) to (endX, endY).

The texture must be in ARGB8888 format.

Parameters:
texThe gradient texture.
solidTrue if all colors in the gradient are solid.

~AbstractPainterLinearGradient

Destructor.

Protected Attributes Documentation

clOffset

float clOffset

Vertical offset for line with first color.

clSlope

float clSlope

Slope of lines with same color.

coord0

int16_t coord0

The gradient line start.

coord1

int16_t coord1

The gradient line end.

deltaColor

float deltaColor

Color increment when moving 1 pixel horizontally.

horizontalDistance

float horizontalDistance

Horizontal distance between pixels with the first color and the last color.

isHorizontal

bool isHorizontal

True if the gradient is horizontal (y0 == y1).

isSolid

bool isSolid

True if all the gradient colors are solid.

isVertical

bool isVertical

True if the gradient is vertical (x0 == x1).

texture

const uint32_t * texture

The gradient color texture 1 x 1024.