Skip to main content

CanvasExtended

Extended canvas functionality for advanced graphics operations.

TCanvasCanvas type that implements ICanvas<TPixel>


Namespace: enjin2

Header: include/enjin2/graphics/canvas_extended.hpp

Public Methods

static void drawLine(TCanvas &canvas, int16_t x0, int16_t y0, int16_t x1, int16_t y1, PixelType color)

Draw a line using Bresenham's algorithm.

canvasTarget canvas x0Starting X coordinate y0Starting Y coordinate x1Ending X coordinate y1Ending Y coordinate colorLine color


static void drawHLine(TCanvas &canvas, int16_t x, int16_t y, int16_t w, PixelType color)

Draw a horizontal line.

canvasTarget canvas xStarting X coordinate yY coordinate wLine width in pixels colorLine color


static void drawVLine(TCanvas &canvas, int16_t x, int16_t y, int16_t h, PixelType color)

Draw a vertical line.

canvasTarget canvas xX coordinate yStarting Y coordinate hLine height in pixels colorLine color


static void drawRect(TCanvas &canvas, int16_t x, int16_t y, int16_t w, int16_t h, PixelType color)

Draw a rectangle outline.

canvasTarget canvas xX coordinate of top-left corner yY coordinate of top-left corner wWidth in pixels hHeight in pixels colorRectangle outline color


static void fillRect(TCanvas &canvas, int16_t x, int16_t y, int16_t w, int16_t h, PixelType color)

Fill a rectangle.

canvasTarget canvas xX coordinate of top-left corner yY coordinate of top-left corner wWidth in pixels hHeight in pixels colorFill color


static void drawCircle(TCanvas &canvas, int16_t x0, int16_t y0, int16_t r, PixelType color)

Draw a circle using midpoint circle algorithm.

canvasTarget canvas x0Circle center X coordinate y0Circle center Y coordinate rCircle radius in pixels colorCircle outline color


static void fillCircle(TCanvas &canvas, int16_t x0, int16_t y0, int16_t r, PixelType color)

Fill a circle.

canvasTarget canvas x0Circle center X coordinate y0Circle center Y coordinate rCircle radius in pixels colorFill color


static void fillCircleHelper(TCanvas &canvas, int16_t x0, int16_t y0, int16_t r, uint8_t corners, int16_t delta, PixelType color)

Circle helper for fill operations.

canvasTarget canvas x0Circle center X coordinate y0Circle center Y coordinate rCircle radius cornersBitmask of corners to fill deltaOffset for fill extent colorFill color


static void drawCircleHelper(TCanvas &canvas, int16_t x0, int16_t y0, int16_t r, uint8_t cornername, PixelType color)

Draw circle helper for rounded rectangles.

canvasTarget canvas x0Circle center X coordinate y0Circle center Y coordinate rCircle radius cornernameBitmask of corners to draw colorOutline color


static void drawTriangle(TCanvas &canvas, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, PixelType color)

Draw a triangle outline.

canvasTarget canvas x0First vertex X y0First vertex Y x1Second vertex X y1Second vertex Y x2Third vertex X y2Third vertex Y colorOutline color


static void fillTriangle(TCanvas &canvas, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, PixelType color)

Fill a triangle with scanline algorithm.

canvasTarget canvas x0First vertex X y0First vertex Y x1Second vertex X y1Second vertex Y x2Third vertex X y2Third vertex Y colorFill color


static void drawRoundRect(TCanvas &canvas, int16_t x, int16_t y, int16_t w, int16_t h, int16_t radius, PixelType color)

Draw a rounded rectangle.

canvasTarget canvas xTop-left X coordinate yTop-left Y coordinate wWidth in pixels hHeight in pixels radiusCorner radius colorOutline color


static void fillRoundRect(TCanvas &canvas, int16_t x, int16_t y, int16_t w, int16_t h, int16_t radius, PixelType color)

Fill a rounded rectangle.

canvasTarget canvas xTop-left X coordinate yTop-left Y coordinate wWidth in pixels hHeight in pixels radiusCorner radius colorFill color


static void drawBitmap(TCanvas &canvas, int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, PixelType color)

Draw bitmap at specified location.

canvasTarget canvas xDestination X coordinate yDestination Y coordinate bitmapPointer to 1-bit bitmap data wBitmap width hBitmap height colorForeground color


static void drawGrayscaleBitmap(TCanvas &canvas, int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h)

Draw grayscale bitmap (Enjin-style)

canvasTarget canvas xDestination X coordinate yDestination Y coordinate bitmapPointer to grayscale bitmap data wBitmap width hBitmap height


static void drawGrayscaleBitmap(TCanvas &canvas, int16_t x, int16_t y, const uint8_t *bitmap, const uint8_t *mask, int16_t w, int16_t h)

Draw grayscale bitmap with mask.

canvasTarget canvas xDestination X coordinate yDestination Y coordinate bitmapPointer to grayscale bitmap data maskPointer to mask data wBitmap width hBitmap height


static void blit(TCanvas &dst, const TSrcCanvas &src, int16_t dx, int16_t dy)

Blit (copy) from one canvas to another.

TSrcCanvasSource canvas type dstDestination canvas srcSource canvas dxDestination X coordinate dyDestination Y coordinate


static void blit(TCanvas &dst, const TSrcCanvas &src, int16_t dx, int16_t dy, int16_t w, int16_t h, int16_t sx=0, int16_t sy=0)

Blit with specified dimensions and source offset.

TSrcCanvasSource canvas type dstDestination canvas srcSource canvas dxDestination X coordinate dyDestination Y coordinate wWidth to copy hHeight to copy sxSource X offset sySource Y offset