diff options
Diffstat (limited to 'src/display.h')
| -rw-r--r-- | src/display.h | 212 |
1 files changed, 0 insertions, 212 deletions
diff --git a/src/display.h b/src/display.h deleted file mode 100644 index 14dd246..0000000 --- a/src/display.h +++ /dev/null @@ -1,212 +0,0 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> - -struct display; - -struct render_command; -struct command_list; - -/** - * Create a new display - * - * The only implementation of this is currently a termios one. - * @returns A pointer to the display. - */ -struct display *display_create(); - -/** - * Resize the display - * - * Resize the display to match the underlying size of the device. - * @param display The display to resize. - */ -void display_resize(struct display *display); - -/** - * Destroy the display. - * - * Clear all resources associated with the display and reset the underlying - * device to original state. - * @param display The display to destroy. - */ -void display_destroy(struct display *display); - -/** - * Get the current width of the display. - * - * @param display The display to get width for. - * @returns The width in number of chars as a positive integer. - */ -uint32_t display_width(struct display *display); - -/** - * Get the current height of the display. - * - * @param display The display to get height for. - * @returns The height in number of chars as a positive integer. - */ -uint32_t display_height(struct display *display); - -/** - * Clear the display - * - * This will clear all text from the display. - * @param display The display to clear. - */ -void display_clear(struct display *display); - -/** - * Move the cursor to the specified location - * - * Move the cursor to the specified row and column. - * @param display The display to move the cursor for. - * @param row The row to move the cursor to. - * @param col The col to move the cursor to. - */ -void display_move_cursor(struct display *display, uint32_t row, uint32_t col); - -/** - * Start a render pass on the display. - * - * A begin_render call can be followed by any number of render calls followed by - * a single end_render call. - * @param display The display to begin rendering on. - */ -void display_begin_render(struct display *display); - -/** - * Render a command list on the display. - * - * Render a command list on the given display. A command list is a series of - * rendering instructions. - * @param display The display to render on. - * @param command_list The command list to render. - */ -void display_render(struct display *display, struct command_list *command_list); - -/** - * Finish a render pass on the display. - * - * This tells the display that rendering is done for now and a flush is - * triggered to update the display hardware. - * @param display The display to end rendering on. - */ -void display_end_render(struct display *display); - -/** - * Create a new command list. - * - * A command list records a series of commands for drawing text to a display. - * @param capacity The capacity of the command list. - * @param allocator Allocation callback to use for data in the command list. - * @param xoffset Column offset to apply to all operations in the list. - * @param yoffset Row offset to apply to all operations in the list. - * @param name Name for the command list. Useful for debugging. - * @returns A pointer to the created command list. - */ -struct command_list *command_list_create(uint32_t capacity, - void *(*allocator)(size_t), - uint32_t xoffset, uint32_t yoffset, - const char *name); - -/** - * Enable/disable rendering of whitespace characters. - * - * ' ' will be rendered with a dot and '\t' as an arrow. - * @param list Command list to record command in. - * @param show True if whitespace chars should be displayed, false otherwise. - */ -void command_list_set_show_whitespace(struct command_list *list, bool show); - -/** - * Set background color - * - * Set the background color to use for following draw commands to the specified - * index. Note that color indices > 15 might not be supported on all displays. - * @param list The command list to record command in. - * @param color_idx The color index to use as background (0-255) - */ -void command_list_set_index_color_bg(struct command_list *list, - uint8_t color_idx); - -/** - * Set background color - * - * Set the background color to use for following draw commands to the specified - * RGB color. Note that this might not be supported on all displays. - * @param list The command list to record command in. - * @param red Red value. - * @param green Green value. - * @param blue Blue value. - */ -void command_list_set_color_bg(struct command_list *list, uint8_t red, - uint8_t green, uint8_t blue); - -/** - * Set foreground color - * - * Set the foreground color to use for following draw commands to the specified - * index. Note that color indices > 15 might not be supported on all displays. - * @param list The command list to record command in. - * @param color_idx The color index to use as foreground (0-255) - */ -void command_list_set_index_color_fg(struct command_list *list, - uint8_t color_idx); - -/** - * Set foreground color - * - * Set the foreground color to use for following draw commands to the specified - * RGB color. Note that this might not be supported on all displays. - * @param list The command list to record command in. - * @param red Red value. - * @param green Green value. - * @param blue Blue value. - */ -void command_list_set_color_fg(struct command_list *list, uint8_t red, - uint8_t green, uint8_t blue); - -/** - * Reset the color and styling information. - * - * The following draw commands will have their formatting reset to the default. - * @param list The command list to record command in. - */ -void command_list_reset_color(struct command_list *list); - -/** - * Draw text - * - * @param list Command list to record draw command in. - * @param col Column to start text at. - * @param row Row to start text at. - * @param data Bytes to write. - * @param len Number of bytes to write. - */ -void command_list_draw_text(struct command_list *list, uint32_t col, - uint32_t row, uint8_t *data, uint32_t len); - -/** - * Draw text, copying it to internal storage first. - * - * @param list Command list to record draw command in. - * @param col Column to start text at. - * @param row Row to start text at. - * @param data Bytes to write. - * @param len Number of bytes to write. - */ -void command_list_draw_text_copy(struct command_list *list, uint32_t col, - uint32_t row, uint8_t *data, uint32_t len); - -/** - * Draw a repeated character. - * - * @param list Command list to record draw command in. - * @param col Column to start text at. - * @param row Row to start text at. - * @param c Byte to repeat. - * @param nrepeat Number of times to repeat byte. - */ -void command_list_draw_repeated(struct command_list *list, uint32_t col, - uint32_t row, uint8_t c, uint32_t nrepeat); |
