ra8_err_t ra8_drw_run_dlist(const uint32_t *dlist_addr)
Trigger execution of a display list.
ra8_err_t ra8_drw_get_status(uint32_t *out_mask)
Read the DRW STATUS register into *out_mask.
void ra8_drw_dispatch(void)
Snapshot STATUS, ack pending DRW IRQs, and fire callback.
ra8_err_t ra8_drw_clear_status(uint32_t mask)
Acknowledge a subset of pending DRW interrupts via IRQCTL.
ra8_err_t ra8_drw_attach_handler(ra8_drw_event_fn_t fn, void *ctx)
Register a software callback for DRW IRQ events.
ra8_err_t ra8_drw_draw_line(const ra8_drw_line_t *line)
Issue an anti-aliased line stroke between two points.
ra8_err_t ra8_drw_set_pattern(uint8_t pattern_byte)
Set the per-byte PATTERN bitmap (HUM Ch 62.2.9 p 3698).
ra8_err_t ra8_drw_fill_rect(const ra8_drw_rect_t *rect)
Issue a solid-fill rectangle blit into the framebuffer.
ra8_err_t ra8_drw_cache_flush(bool flush_fb, bool flush_texture)
Pulse FB and/or texture cache flush bits in CACHECTL.
ra8_err_t ra8_drw_perf_read(ra8_drw_perfcounter_id_t id, uint32_t *out)
Read one PERFCOUNTk register.
ra8_err_t ra8_drw_get_hwrevision(uint32_t *out)
Read the read-only HWREVISION register into *out.
ra8_err_t ra8_drw_reset(void)
Software reset: drain pipeline, ack IRQs, reset PERFCOUNTers.
ra8_err_t ra8_drw_clear_texture(void)
Disable the texture unit (clear CONTROL2.TEXTUREENABLE / RLE / CLUT).
ra8_err_t ra8_drw_blit_textured_rect(const ra8_drw_rect_t *rect)
Blit a textured rectangle (texture must be programmed first).
ra8_err_t ra8_drw_perf_reset(ra8_drw_perfcounter_id_t id)
Reset one PERFCOUNTk register to zero.
ra8_err_t ra8_drw_init(const ra8_drw_config_t *cfg)
Power on the DRW block, install the supplied configuration, and arm the IRQ control register.
ra8_err_t ra8_drw_enter_stop(void)
Drop the DRW into MSTP-gated stop (clock removed).
ra8_err_t ra8_drw_load_clut(uint8_t start_index, const uint32_t *entries, uint32_t count)
Load a CLUT entry pair (TEXCLADDR, TEXCLDATA, TEXCLOFFSET).
ra8_err_t ra8_drw_wait_idle(uint32_t poll_budget)
Poll STATUS until all "busy" bits clear or budget runs out.
ra8_err_t ra8_drw_set_color_key(uint32_t key_rgb, bool enable)
Programme the COLKEY register and toggle COLKEYENABLE.
ra8_err_t ra8_drw_set_gradient(const ra8_drw_gradient_t *grad)
Programme the COLOR1 and COLOR2 registers from a 2-stop gradient.
ra8_err_t ra8_drw_exit_stop(void)
Re-enable the DRW MSTP gate (clock restored).
ra8_err_t ra8_drw_deinit(void)
Tear down the DRW block: disable IRQs, drop the registered callback, and request MSTP gate.
ra8_err_t ra8_drw_set_irq_enables(uint32_t enable_mask)
Set the IRQCTL enable bits (ENUMIRQEN, DLISTIRQEN, BUSIRQEN).
void(* ra8_drw_event_fn_t)(void *ctx, uint32_t status_mask)
DRW asynchronous event callback signature.
ra8_err_t ra8_drw_perf_arm(ra8_drw_perftrigger_t event_ctr1, ra8_drw_perftrigger_t event_ctr2)
Programme PERFTRIGGER for the two performance counters and reset both PERFCOUNTk registers.
ra8_err_t ra8_drw_set_texture(const ra8_drw_texture_t *tex)
Programme TEXORIGIN, TEXPITCH, TEXMASK, U/V limiters and the CONTROL2 texture / CLUT / RLE / colour-k...
ra8_err_t ra8_drw_draw_triangle(const ra8_drw_triangle_t *tri)
Issue an anti-aliased filled triangle.
ra8_err_t ra8_drw_set_pattern_enable(bool enable, bool source_from_l5)
Toggle CONTROL2.PATTERNENABLE / PATTERNSOURCEL5.
ra8_err_t ra8_drw_set_blend(const ra8_drw_blend_t *blend)
Configure the alpha-blend unit using ra8_drw_blend_t fields.
2D Drawing Engine (DRW / D/AVE 2D) register layout for the RA8D2
ra8_drw_writeformat_t
Framebuffer pixel format codes (3-bit field).
ra8_drw_readformat_t
Texture pixel format codes (4-bit field).
ra8_drw_perfcounter_id_t
Selector for the two PERFCOUNTk registers.
ra8_drw_perftrigger_t
Internal events that increment a PERFCOUNT register.
ra8_drw_rlepixel_t
RLEPIXELWIDTH[1:0] – bytes per RLE-encoded texel.
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Per-pixel + global alpha blending parameters.
bool dst_invert
CONTROL2.BDI.
bool dst_factor
CONTROL2.BDF (use DST alpha).
bool src_invert
CONTROL2.BSI.
bool use_color2_dst
CONTROL2.BC2 (COLOR2 as dst).
bool dst_factor_alpha
CONTROL2.BDFA.
bool dst_invert_alpha
CONTROL2.BDIA.
bool use_alpha_channel
CONTROL2.USEACB.
bool src_invert_alpha
CONTROL2.BSIA.
uint8_t global_alpha
COLOR1.A (0=fully transparent).
bool src_factor_alpha
CONTROL2.BSFA.
bool src_factor
CONTROL2.BSF (use SRC alpha).
Minimal DRW configuration captured by ra8_drw_init.
bool enable_caches
Enable FB + texture caches.
ra8_drw_writeformat_t format
FB pixel format.
uint16_t pitch_px
FB pitch in pixels.
uintptr_t framebuffer_addr
FB base addr (target ARGB).
bool enable_buffered_writes
Set DBWER.BWE on init.
Builder state for composing a DRW display list in a caller buffer.
uint32_t cap_words
Buffer capacity in 32-bit words.
uint32_t * buf
Caller word buffer, 4-byte aligned, in SRAM.
bool overflow
A request exceeded the buffer capacity.
bool terminated
ra8_drw_dlist_end has closed the list.
uint32_t count
Words emitted so far (<= cap_words).
COLOR1 + COLOR2 two-stop gradient.
uint32_t color2_argb8888
COLOR2 ARGB stop.
uint32_t color1_argb8888
COLOR1 ARGB stop.
Anti-aliased line parameters.
int16_t y1
End-point 1 Y in pixels.
uint16_t width_px
Stroke width in pixels.
uint32_t color_argb8888
0xAARRGGBB stroke colour.
int16_t y0
End-point 0 Y in pixels.
int16_t x0
End-point 0 X in pixels.
int16_t x1
End-point 1 X in pixels.
Rectangle parameters for ra8_drw_fill_rect.
uint16_t height_px
Height in pixels.
uint32_t color_argb8888
0xAARRGGBB fill colour.
int16_t x
Top-left X in pixels.
int16_t y
Top-left Y in pixels.
uint16_t width_px
Width in pixels.
Texture parameters for ra8_drw_blit_textured_rect.
bool clut_565
CONTROL2.CLUTFORMAT (RGB565).
bool clamp_y
CONTROL2.TEXTURECLAMPY.
bool enable_color_key
CONTROL2.COLKEYENABLE.
bool clamp_x
CONTROL2.TEXTURECLAMPX.
uint16_t pitch_px
TEXPITCH (texels per line).
uint8_t clut_offset
TEXCLOFFSET CLOFFSET[7:0].
ra8_drw_readformat_t format
READFORMAT_H+L 4-bit value.
bool filter_y
CONTROL2.TEXTUREFILTERY.
uintptr_t base_addr
TEXORIGIN – texel base.
bool enable_rle
CONTROL2.RLEENABLE.
uint32_t color_key_rgb
COLKEY value (0x00RRGGBB).
uint16_t u_mask
TEXMASK[15:0] (U mask).
bool filter_x
CONTROL2.TEXTUREFILTERX.
ra8_drw_rlepixel_t rle_pixel_width
CONTROL2.RLEPIXELWIDTH.
bool enable_clut
CONTROL2.CLUTENABLE.
uint16_t v_mask
TEXMASK[31:16] (V mask).
Anti-aliased filled triangle parameters.
uint32_t color_argb8888
Fill colour.