maug
Quick and dirty C mini-augmentation library.
Macros | Functions
RetroFlat Drawing API

Functions for drawing primitives on-screen. More...

Collaboration diagram for RetroFlat Drawing API:

Macros

#define RETROFLAT_DRAW_FLAG_FILL   0x01
 Flag for retroflat_rect() or retroflat_ellipse(), indicating drawn shape should be filled.
 
#define RETROFLAT_FONT_FLAG_ALL_CAPS   0x02
 Flag for retroflat_string() and retroflat_string_sz() to print text in all capital letters. Non-letters are unmodified. More...
 
#define RETROFLAT_LINE_THICKNESS   1
 Line drawing thickness (only works on some platforms). Is a RetroFlat Compiler Definitions.
 
#define RETROFLAT_PI   3.14159
 
#define retroflat_blank(target, color)
 

Functions

MERROR_RETVAL retroflat_draw_lock (struct RETROFLAT_BITMAP *bmp)
 Lock a bitmap for drawing. This will be done automatically if necessary and not called explicitly, but performance should improve if done before a batch of drawing operations. More...
 
MERROR_RETVAL retroflat_draw_release (struct RETROFLAT_BITMAP *bmp)
 
void retroflat_px (struct RETROFLAT_BITMAP *target, const RETROFLAT_COLOR color, retroflat_pxxy_t x, retroflat_pxxy_t y, uint8_t flags)
 
void retroflat_rect (struct RETROFLAT_BITMAP *target, const RETROFLAT_COLOR color, retroflat_pxxy_t x, retroflat_pxxy_t y, retroflat_pxxy_t w, retroflat_pxxy_t h, uint8_t flags)
 Draw a rectangle onto the target ::RETROFLAT_BITMAP. More...
 
void retroflat_ellipse (struct RETROFLAT_BITMAP *target, const RETROFLAT_COLOR color, retroflat_pxxy_t x, retroflat_pxxy_t y, retroflat_pxxy_t w, retroflat_pxxy_t h, uint8_t flags)
 Draw an ellipse onto the target ::RETROFLAT_BITMAP. More...
 
void retroflat_line (struct RETROFLAT_BITMAP *target, const RETROFLAT_COLOR color, retroflat_pxxy_t x1, retroflat_pxxy_t y1, retroflat_pxxy_t x2, retroflat_pxxy_t y2, uint8_t flags)
 Draw a straight line onto the target ::RETROFLAT_BITMAP. More...
 
void retroflat_cursor (struct RETROFLAT_BITMAP *target, uint8_t flags)
 
void retroflat_get_palette (uint8_t idx, uint32_t *rgb)
 
MERROR_RETVAL retroflat_set_palette (uint8_t idx, uint32_t rgb)
 

Detailed Description

Functions for drawing primitives on-screen.

Warning
Drawing functions should not be used outside of the context of the main loop, as the platform may not have fully initialized the drawing window until the main loop is called for the first time!

Macro Definition Documentation

◆ retroflat_blank

#define retroflat_blank (   target,
  color 
)
Value:
target, color, 0, 0, \
retroflat_bitmap_w( NULL == target ? retroflat_screen_buffer() : target )\
, \
retroflat_bitmap_h( NULL == target ? retroflat_screen_buffer() : target )\
#define RETROFLAT_DRAW_FLAG_FILL
Flag for retroflat_rect() or retroflat_ellipse(), indicating drawn shape should be filled.
Definition: retroflt.h:376
void retroflat_rect(struct RETROFLAT_BITMAP *target, const RETROFLAT_COLOR color, retroflat_pxxy_t x, retroflat_pxxy_t y, retroflat_pxxy_t w, retroflat_pxxy_t h, uint8_t flags)
Draw a rectangle onto the target ::RETROFLAT_BITMAP.

◆ RETROFLAT_FONT_FLAG_ALL_CAPS

#define RETROFLAT_FONT_FLAG_ALL_CAPS   0x02

Flag for retroflat_string() and retroflat_string_sz() to print text in all capital letters. Non-letters are unmodified.

Todo:
This has not yet been implemented and is present for backward compatibility.

Function Documentation

◆ retroflat_draw_lock()

MERROR_RETVAL retroflat_draw_lock ( struct RETROFLAT_BITMAP *  bmp)

Lock a bitmap for drawing. This will be done automatically if necessary and not called explicitly, but performance should improve if done before a batch of drawing operations.

Parameters
bmpPointer to a ::RETROFLAT_BITMAP struct to lock. If this is NULL, try to lock the screen.
Returns
RETROFLAT_OK if lock was successful or RetroFlat API Return Values otherwise.

◆ retroflat_ellipse()

void retroflat_ellipse ( struct RETROFLAT_BITMAP *  target,
const RETROFLAT_COLOR  color,
retroflat_pxxy_t  x,
retroflat_pxxy_t  y,
retroflat_pxxy_t  w,
retroflat_pxxy_t  h,
uint8_t  flags 
)

Draw an ellipse onto the target ::RETROFLAT_BITMAP.

Parameters
targetPointer to the ::RETROFLAT_BITMAP to draw onto, or NULL to draw to the screen buffer.
colorMaug_retroflt_color in which to draw.
xLeft X coordinate in pixels at which to draw on the target bitmap.
yTop Y coordinate in pixels at which to draw on the target bitmap.
flagsFlags to control drawing. The following flags apply: RETROFLAT_DRAW_FLAG_FILL

◆ retroflat_line()

void retroflat_line ( struct RETROFLAT_BITMAP *  target,
const RETROFLAT_COLOR  color,
retroflat_pxxy_t  x1,
retroflat_pxxy_t  y1,
retroflat_pxxy_t  x2,
retroflat_pxxy_t  y2,
uint8_t  flags 
)

Draw a straight line onto the target ::RETROFLAT_BITMAP.

Parameters
targetPointer to the ::RETROFLAT_BITMAP to draw onto, or NULL to draw to the screen buffer.
x1Left X coordinate of the line to draw on the target bitmap.
y1Top Y coordinate of the line to draw on the target bitmap.
x2Right X coordinate of the line to draw on the target bitmap.
y2Bottom Y coordinate of the line to draw on the target bitmap.
colorMaug_retroflt_color in which to draw.
flagsFlags to control drawing. No flags currently apply.

◆ retroflat_rect()

void retroflat_rect ( struct RETROFLAT_BITMAP *  target,
const RETROFLAT_COLOR  color,
retroflat_pxxy_t  x,
retroflat_pxxy_t  y,
retroflat_pxxy_t  w,
retroflat_pxxy_t  h,
uint8_t  flags 
)

Draw a rectangle onto the target ::RETROFLAT_BITMAP.

Parameters
targetPointer to the ::RETROFLAT_BITMAP to draw onto, or NULL to draw to the screen buffer.
colorMaug_retroflt_color in which to draw.
xLeft X coordinate in pixels at which to draw on the target bitmap.
yTop Y coordinate in pixels at which to draw on the target bitmap.
flagsFlags to control drawing. The following flags apply: RETROFLAT_DRAW_FLAG_FILL