跳转到主要内容

PainterRGB888Bitmap

PainterRGB888Bitmap will take the color for a given point in the shape from a bitmap. Please be aware, the the bitmap is used by the CanvasWidgetRenderer (not Shape), so any rotation you might specify for a CanvasWidget (e.g. Shape) is not applied to the bitmap as CWR is not aware of this rotation.

See: AbstractPainter

Inherits from: AbstractPainterRGB888, AbstractPainter

Public Functions

PainterRGB888Bitmap(const Bitmap & bmp =Bitmap(BITMAP_INVALID))
Initializes a new instance of the PainterRGB888Bitmap class.
virtual voidrender(uint8_t ptr, int x, int xAdjust, int y, unsigned count, const uint8_t covers)
Paint a designated part of the RenderingBuffer with respect to the amount of coverage of each pixel given by the parameter covers.
voidsetBitmap(const Bitmap & bmp)
Sets a bitmap to be used when drawing the CanvasWidget.
virtual voidsetOffset(int16_t x, int16_t y)
Sets an offset for the bitmap used.
virtual voidsetTiled(bool tiled)
Instruct the painter to tile the bitmap specified.

Protected Functions

virtual boolrenderInit()
Initialize rendering of a single scan line of pixels for the render.

Protected Attributes

Bitmapbitmap
The bitmap to be used when painting.
const uint32_t *bitmapARGB8888Pointer
Pointer to the bitmap (ARGB8888)
RectbitmapRectToFrameBuffer
Bitmap rectangle translated to framebuffer coordinates.
const uint8_t *bitmapRGB888Pointer
Pointer to the bitmap (RGB888)
boolisTiled
True if bitmap should be tiled, false if not.
int16_txOffset
The x offset of the bitmap.
int16_tyOffset
The y offset of the bitmap.

Additional inherited members

Public Functions inherited from AbstractPainterRGB888

Protected Functions inherited from AbstractPainterRGB888

virtual boolrenderNext(uint8_t & red, uint8_t & green, uint8_t & blue, uint8_t & alpha)
Get the color of the next pixel in the scan line to blend into the framebuffer.
virtual voidrenderPixel(uint16_t * p, uint8_t red, uint8_t green, uint8_t blue)
Renders (writes) the specified color into the framebuffer.

Protected Attributes inherited from AbstractPainterRGB888

intcurrentX
Current x coordinate relative to the widget.
intcurrentY
Current y coordinate relative to the widget.

Public Functions inherited from AbstractPainter

AbstractPainter()
Initializes a new instance of the AbstractPainter class.
virtual ~AbstractPainter()
Finalizes an instance of the AbstractPainter class.

Protected Functions inherited from AbstractPainter

voidsetAreaOffset(uint16_t offsetX, uint16_t offsetY)
Sets the offset of the area being drawn.
voidsetWidgetAlpha(const uint8_t alpha)
Sets the widget alpha to allow an entire canvas widget to easily be faded without changing the painter of the widget.
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_tareaOffsetX
The offset x coordinate of the area being drawn.
int16_tareaOffsetY
The offset y coordinate of the area being drawn.
uint8_twidgetAlpha
The alpha of the widget using the painter.

Public Functions Documentation

PainterRGB888Bitmap

PainterRGB888Bitmap(const Bitmap &bmp =Bitmap(BITMAP_INVALID))

Initializes a new instance of the PainterRGB888Bitmap class.

Parameters:
bmp(Optional) The bitmap, default is BITMAP_INVALID.

render

virtual void render(uint8_t *ptr ,
intx ,
intxAdjust ,
inty ,
unsignedcount ,
const uint8_t *covers
)

Paint a designated part of the RenderingBuffer with respect to the amount of coverage of each pixel given by the parameter covers.

The cover is the alpha for each pixel, which is what makes it possible to have smooth anti-aliased edges on the shapes drawn with CanvasWidgetRenderer.

Parameters:
ptrPointer to the row in the RenderingBuffer.
xThe x coordinate.
xAdjustThe minor adjustment of x (used when a pixel is smaller than a byte to specify that the ptr should have been advanced "xAdjust" pixels futher into the byte).
yThe y coordinate.
countNumber of pixels to fill.
coversThe coverage in of each pixel.
Note

The implementation of render() in the AbstractPainter classes is a generic (i.e. slow) implementation that should be completely implemented in subclasses of AbstractPainter for better performance.

Reimplements: touchgfx::AbstractPainterRGB888::render

setBitmap

void setBitmap(const Bitmap &bmp)

Sets a bitmap to be used when drawing the CanvasWidget.

Parameters:
bmpThe bitmap.

setOffset

virtual void setOffset(int16_tx ,
int16_ty
)

Sets an offset for the bitmap used.

The x and y coordinates specifies how far the bitmap should be moved to the right and down. This works for tiled bitmaps and non-tiled bitmaps.

Parameters:
xThe x coordinate.
yThe y coordinate.
See also:

setTiled

virtual void setTiled(booltiled)

Instruct the painter to tile the bitmap specified.

The bitmap will be tiled both horizontally and vertically.

Parameters:
tiledTrue if tiled.
See also:

Protected Functions Documentation

renderInit

virtual bool renderInit()

Initialize rendering of a single scan line of pixels for the render.

If renderInit returns false, the scanline will not be rendered.

Returns:

true if it succeeds, false if it fails.

Reimplements: touchgfx::AbstractPainterRGB888::renderInit

Protected Attributes Documentation

bitmap

Bitmap bitmap

The bitmap to be used when painting.

bitmapARGB8888Pointer

const uint32_t * bitmapARGB8888Pointer

Pointer to the bitmap (ARGB8888)

bitmapRectToFrameBuffer

Rect bitmapRectToFrameBuffer

Bitmap rectangle translated to framebuffer coordinates.

bitmapRGB888Pointer

const uint8_t * bitmapRGB888Pointer

Pointer to the bitmap (RGB888)

isTiled

bool isTiled

True if bitmap should be tiled, false if not.

xOffset

int16_t xOffset

The x offset of the bitmap.

yOffset

int16_t yOffset

The y offset of the bitmap.