31typedef enum : uint16_t {
40typedef enum : uint32_t {
105 size_t workspace_bytes,
154 size_t* out_alignment);
172 size_t workspace_bytes,
175 uint16_t** out_pixels,
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
uint32_t ra8_viewer_tile_count(const ra8_viewer_reader_t *reader)
Number of scroll tiles in reader, or zero for NULL/closed.
ra8_viewer_geom_t
Fixed framebuffer geometry used by headless page rendering.
@ k_ra8_viewer_fb_height
Framebuffer height in pixels.
@ k_ra8_viewer_fb_width
Framebuffer width in pixels.
ra8_err_t ra8_viewer_write_ppm565(const uint16_t *px, uint32_t w, uint32_t h, const char *path)
Write arbitrary caller-owned RGB565 pixels as binary PPM.
uint32_t ra8_viewer_page_count(const ra8_viewer_reader_t *reader)
Number of viewport pages in reader, or zero for NULL/closed.
ra8_viewer_reader_engine_t
Reader engine selected by the requirements query.
@ k_ra8_viewer_engine_comic
Bare CBZ/CBR/CBT comic engine.
@ k_ra8_viewer_engine_jof
Streamed JOF long-strip engine.
void ra8_viewer_close(ra8_viewer_reader_t *reader)
Close the descriptor and reset reader state without freeing workspace.
ra8_err_t ra8_viewer_open(ra8_viewer_reader_t *reader, const char *path)
Open the document class used to size and bind reader.
uint16_t ra8_viewer_pack565(uint8_t rr, uint8_t gg, uint8_t bb)
Pack 8-bit RGB channels into one RGB565 word.
ra8_err_t ra8_viewer_tile_requirements(const ra8_viewer_reader_t *reader, uint32_t index, size_t *out_bytes, size_t *out_alignment)
Report exact caller storage needed to render tile index.
ra8_err_t ra8_viewer_render_tile565(ra8_viewer_reader_t *reader, uint32_t index, void *workspace, size_t workspace_bytes, uint32_t *width, uint32_t *height, uint16_t **out_pixels, ra8_viewer_workspace_report_t *report)
Render tile index into caller-owned RGB565 storage.
ra8_err_t ra8_viewer_render_page(ra8_viewer_reader_t *reader, uint32_t page)
Render one page into the reader's fixed RGB565 framebuffer.
ra8_err_t ra8_viewer_dump_ppm(const ra8_viewer_reader_t *reader, const char *path)
Write the current fixed framebuffer as binary PPM.
ra8_err_t ra8_viewer_reader_bind(ra8_viewer_reader_t **out, void *workspace, size_t workspace_bytes, const ra8_viewer_reader_requirements_t *requirements, ra8_viewer_workspace_report_t *report)
Bind one reader state to caller-owned bytes.
ra8_err_t ra8_viewer_reader_requirements(const char *path, ra8_viewer_reader_requirements_t *out)
Inspect path and calculate its exact reader workspace.
struct ra8_viewer_reader ra8_viewer_reader_t
Opaque state bound inside caller-owned workspace.
uint16_t ra8_viewer_pack565_le_pair(uint8_t low, uint8_t high)
Reassemble one little-endian RGB565 word.
ra8_err_t ra8_viewer_tile_size(const ra8_viewer_reader_t *reader, uint32_t index, uint32_t *width, uint32_t *height)
Read native dimensions for tile index.
Exact immutable layout returned for one document.
size_t comic_pages_bytes
Comic page-index storage, or zero.
size_t required_bytes
Complete workspace extent.
size_t comic_page_bytes
Resident encoded-page storage, or zero.
uint32_t layout_version
ABI guard consumed by bind.
size_t comic_arena_bytes
stb decode arena storage, or zero.
size_t scratch_bytes
One bounded compressed-band staging area.
size_t comic_names_bytes
Comic member-name arena, or zero.
size_t cell_bytes
One resident decoded JOF band.
uint32_t engine
ra8_viewer_reader_engine_t selection.
size_t framebuffer_bytes
Resident fixed RGB565 framebuffer.
uint32_t tile_count
Number of viewport tiles in the strip.
size_t dimensions_bytes
Two resident per-tile dimension arrays.
size_t required_alignment
Required base-address alignment.
Bound reader state; every buffer is borrowed from one workspace.
Required-versus-supplied evidence from a bind attempt.
size_t supplied_bytes
Bytes supplied by the caller.
size_t required_bytes
Exact bytes required by the requested layout.