8#ifndef LIBDRAGON_RDPQ_PARAGRAPH_H
9#define LIBDRAGON_RDPQ_PARAGRAPH_H
21struct rdpq_textparms_s;
26typedef struct __attribute__((packed)) rdpq_paragraph_char_s {
28 struct __attribute__((packed)) {
125 const char *utf8_text,
int *nbytes);
void rdpq_paragraph_render(const rdpq_paragraph_t *layout, float x0, float y0)
Render a text that was laid out by rdpq_paragraph_build.
Definition rdpq_paragraph.c:575
rdpq_paragraph_t * rdpq_paragraph_builder_end(void)
Finalize the paragraph builder and returns the paragraph.
Definition rdpq_paragraph.c:451
int nlines
Number of lines in the text.
Definition rdpq_paragraph.h:82
int nchars
Total number of chars in this layout.
Definition rdpq_paragraph.h:83
rdpq_paragraph_flag_e
Bitmask flags for rdpq_paragraph_t.
Definition rdpq_paragraph.h:43
@ RDPQ_PARAGRAPH_FLAG_MALLOC
Dynamically-allocated layout This flag is set when the layout was allocated dynamically via malloc an...
Definition rdpq_paragraph.h:58
@ RDPQ_PARAGRAPH_FLAG_ANTIALIAS_FIX
Draw a transparent background rectangle to avoid AA artifacts When drawing text on a 3D background us...
Definition rdpq_paragraph.h:53
void rdpq_paragraph_builder_begin(const rdpq_textparms_t *parms, uint8_t initial_font_id, rdpq_paragraph_t *layout)
Start a paragraph builder.
Definition rdpq_paragraph.c:74
rdpq_paragraph_t * rdpq_paragraph_build(const rdpq_textparms_t *parms, uint8_t initial_font_id, const char *utf8_text, int *nbytes)
Calculate the layout of a text using the specified parameters.
Definition rdpq_paragraph.c:570
void rdpq_paragraph_builder_style(uint8_t style_id)
Change the current style.
Definition rdpq_paragraph.c:130
int flags
Flags (see rdpq_paragraph_flag_e)
Definition rdpq_paragraph.h:86
void rdpq_paragraph_builder_newline(void)
Start a new line.
Definition rdpq_paragraph.c:426
float y0
Alignment offset of the text.
Definition rdpq_paragraph.h:85
int capacity
Capacity of the chars array.
Definition rdpq_paragraph.h:84
void rdpq_paragraph_builder_font(uint8_t font_id)
Change the current font.
Definition rdpq_paragraph.c:117
float advance_x
Pen advance in X after drawing the text.
Definition rdpq_paragraph.h:80
void rdpq_paragraph_free(rdpq_paragraph_t *layout)
Free the memory allocated by rdpq_paragraph_build or rdpq_paragraph_builder_end.
Definition rdpq_paragraph.c:602
float advance_y
Pen advance in Y after drawing the text.
Definition rdpq_paragraph.h:81
void rdpq_paragraph_builder_span(const char *utf8_text, int nbytes)
Add a span of text.
Definition rdpq_paragraph.c:184
A single char in a layout.
Definition rdpq_paragraph.h:26
A paragraph of text, fully laid out.
Definition rdpq_paragraph.h:73
Print formatting parameters.
Definition rdpq_text.h:221