11#ifndef __MUTEKI_DRAW_TYPES_LCD_H__
12#define __MUTEKI_DRAW_TYPES_LCD_H__
122 DASH_0_1_8_1_8_1_8_1_4_0 = 12,
123 DASH_4_1_8_1_7_1_9_1,
124 DASH_3_1_7_1_7_1_4_8,
125 DASH_3_1_7_1_7_1_7_1_4_0,
126 DASH_0_1_6_1_1_1_4_1_3_1_2_1_5_2_3_0,
127 DASH_3_2_5_1_2_1_3_1_4_1_1_1_6_1,
128 DASH_7_1_6_1_6_1_6_1_3_0,
129 DASH_3_1_6_1_6_1_6_1_7_0,
148#if defined(MUTEKI_HAS_THREAD_SAFE_LCD) && MUTEKI_HAS_THREAD_SAFE_LCD == 1
149#define lcd_s lcd_thread_safe_s
153#define lcd_s lcd_base_s
struct bxc_cs_s bxc_cs_t
Critical section descriptor type.
Definition threading.h:174
Drawing routine primitive types.
struct lcd_rect_s lcd_rect_t
Rectangle used to represent usable drawing area in an LCD descriptor.
The LCD descriptor.
Definition lcd.h:245
int rotation
Current canvas rotation.
Definition lcd.h:276
font_info_t font
Per-LCD states shared by specifically font rendering routines.
Definition lcd.h:259
lcd_cursor_t * cursor
Cursor states.
Definition lcd.h:267
lcd_rotate_callback_t rotate
Rotation callback.
Definition lcd.h:292
short depth_bytes
Integer size of each pixel in bytes.
Definition lcd.h:282
lcd_rect_t drawing_area
Usable drawing area of the LCD.
Definition lcd.h:263
lcd_draw_t draw
Per-LCD states shared by drawing routines.
Definition lcd.h:257
void * pixel_end
End address of the pixel/framebuffer.
Definition lcd.h:249
size_t pixel_size
Total size of the pixel/framebuffer in bytes.
Definition lcd.h:251
short width
Width of the LCD in pixels.
Definition lcd.h:269
int unk_0x74[3]
Unknown.
Definition lcd.h:265
short xsize
Pixel row size in bytes.
Definition lcd.h:287
int transparent_color
Current transparent color.
Definition lcd.h:255
short height
Height of the LCD in pixels.
Definition lcd.h:271
lcd_surface_t * surface
Surface linked to the LCD.
Definition lcd.h:247
lcd_cursor_t saved_cursor
A copy of the cursor states when the LCD descriptor was created.
Definition lcd.h:261
int bg_color
Current background color.
Definition lcd.h:253
Cursor states usually linked to an LCD descriptor.
Definition lcd.h:161
short x
X coordinate of the cursor.
Definition lcd.h:163
short type
Type of the cursor.
Definition lcd.h:172
short unk_0xe
Unknown.
Definition lcd.h:178
short unk_0xa
Unknown.
Definition lcd.h:174
unsigned int size
Size of the cursor.
Definition lcd.h:167
short y
Y coordinate of the cursor.
Definition lcd.h:165
short grab_count
Number of times this cursor has been locked/grabbed by other code.
Definition lcd.h:176
Drawing routine common states.
Definition lcd.h:184
int unk_0x18
Unknown.
Definition lcd.h:203
unsigned int stroke_dash_pattern
Dash bit pattern.
Definition lcd.h:190
int unk_0x14
Unknown.
Definition lcd.h:201
int unk_0x0
Unknown.
Definition lcd.h:186
short stroke_size
Size of stroke.
Definition lcd.h:192
short stroke_dash
Predefined dash pattern.
Definition lcd.h:197
int unk_0x10
Unknown.
Definition lcd.h:199
int fg_color
Current foreground color.
Definition lcd.h:188
int unk_0x1c
Unknown.
Definition lcd.h:205
An extended part of the LCD descriptor that implements descriptor locking.
Definition lcd.h:213
int unk_0x0
Unknown.
Definition lcd.h:215
bxc_cs_t * cs
A critical section descriptor. It's unclear where it is used.
Definition lcd.h:217
int unk_0xa4[23]
Unknown.
Definition lcd.h:223
void(*) lock(void)
Shortcut to lock the descriptor.
Definition lcd.h:219
void(*) unlock(void)
Shortcut to unlock the descriptor.
Definition lcd.h:221
A thread-safe variant of the LCD descriptor used on some versions of Besta RTOS.
Definition lcd.h:299
lcd_surface_t * surface
Surface linked to the LCD.
Definition lcd.h:301
int transparent_color
Current transparent color.
Definition lcd.h:309
int bg_color
Current background color.
Definition lcd.h:307
lcd_draw_t draw
Per-LCD states shared by drawing routines.
Definition lcd.h:311
int rotation
Current canvas rotation.
Definition lcd.h:330
int unk_0xa4[23]
Unknown.
Definition lcd.h:356
short depth_bytes
Integer size of each pixel in bytes.
Definition lcd.h:336
int unk_0x94
Unknown.
Definition lcd.h:348
bxc_cs_t * cs
A critical section descriptor. It's unclear where it is used.
Definition lcd.h:350
int unk_0x74[3]
Unknown.
Definition lcd.h:319
font_info_t font
Per-LCD states shared by specifically font rendering routines.
Definition lcd.h:313
lcd_cursor_t * cursor
Cursor states.
Definition lcd.h:321
lcd_rect_t drawing_area
Usable drawing area of the LCD.
Definition lcd.h:317
short height
Height of the LCD in pixels.
Definition lcd.h:325
size_t pixel_size
Total size of the pixel/framebuffer in bytes.
Definition lcd.h:305
void(*) unlock(void)
Shortcut to unlock the descriptor.
Definition lcd.h:354
void * pixel_end
End address of the pixel/framebuffer.
Definition lcd.h:303
lcd_rotate_callback_t rotate
Rotation callback.
Definition lcd.h:346
short width
Width of the LCD in pixels.
Definition lcd.h:323
lcd_cursor_t saved_cursor
A copy of the cursor states when the LCD descriptor was created.
Definition lcd.h:315
void(*) lock(void)
Shortcut to lock the descriptor.
Definition lcd.h:352
short xsize
Pixel row size in bytes.
Definition lcd.h:341
Font management data types.
struct font_info_s font_info_t
Font rendering routine common states.
struct lcd_base_s lcd_base_t
lcd_base_s
Definition lcd.h:144
struct lcd_cursor_s lcd_cursor_t
lcd_cursor_s
Definition lcd.h:138
struct lcd_lock_s lcd_lock_t
lcd_lock_s
Definition lcd.h:142
stroke_predefined_dash_e
Predefined dash patterns.
Definition lcd.h:110
@ DASH_NONE
Solid line.
Definition lcd.h:114
@ DASH_CUSTOM
Custom dash pattern.
Definition lcd.h:134
struct lcd_draw_s lcd_draw_t
lcd_draw_s
Definition lcd.h:140
struct lcd_base_s lcd_t
lcd_base_s
Definition lcd.h:155
lcd_rotation_e
Rotation values used by lcd_rotate_callback_t.
Definition lcd.h:88
@ LCD_ROTATION_TOP_SIDE_RIGHT
Set the rotation so the top side of the canvas is facing right.
Definition lcd.h:96
@ LCD_ROTATION_TOP_SIDE_UP
Set the rotation so the top side of the canvas is facing up.
Definition lcd.h:90
@ LCD_ROTATION_APPLY
Actually rotate the buffer. Used internally.
Definition lcd.h:100
@ LCD_ROTATION_TOP_SIDE_LEFT
Set the rotation so the top side of the canvas is facing left.
Definition lcd.h:92
@ LCD_ROTATION_TOP_SIDE_DOWN
Set the rotation so the top side of the canvas is facing down.
Definition lcd.h:94
@ LCD_ROTATION_QUERY
Query the current rotation. Will not change the current location.
Definition lcd.h:98
struct lcd_thread_safe_s lcd_thread_safe_t
lcd_thread_safe_s
Definition lcd.h:146
lcd_print_flag_e
Process flags for string and character printing.
Definition lcd.h:27
@ LCD_PRINT_UNDERSCORE_ONLY
Draw underscores only.
Definition lcd.h:45
@ LCD_PRINT_INVERT_ALT
Seems to be an alternative version of LCD_PRINT_INVERT.
Definition lcd.h:40
@ LCD_PRINT_NONE
No extra process.
Definition lcd.h:31
@ LCD_PRINT_INVERT
Invert colors.
Definition lcd.h:36
lcd_str_align_e
String alignment types.
Definition lcd.h:70
@ LCD_STR_ALIGN_RIGHT
Align to top-right.
Definition lcd.h:78
@ LCD_STR_ALIGN_LEFT
Align to top-left.
Definition lcd.h:74
@ LCD_STR_ALIGN_CENTER
Align to top-center.
Definition lcd.h:82
lcd_print_str_flag_e
Process flags for string printing only.
Definition lcd.h:51
@ LCD_PRINT_STR_ENCODING_BIG5
Assume text encoding to be BIG5 instead of UTF-16.
Definition lcd.h:56
@ LCD_PRINT_STR_ENCODING_GB18030
Assume text encoding to be GB18030 instead of UTF-16.
Definition lcd.h:60
@ LCD_PRINT_STR_ENCODING_TIS_620
Assume text encoding to be TIS-620 instead of UTF-16.
Definition lcd.h:64
int(*) lcd_rotate_callback_t(lcd_t *self, int rotation)
Callback type for handling canvas rotation.
Definition lcd.h:239
Surface type definitions.
struct lcd_surface_s lcd_surface_t
Descriptor of an LCD drawing surface or hardware framebuffer.