@@ -62,35 +62,51 @@ void framebufferio_framebufferdisplay_collect_ptrs(framebufferio_framebufferdisp
6262
6363mp_obj_t common_hal_framebufferio_framebufferdisplay_get_framebuffer (framebufferio_framebufferdisplay_obj_t * self );
6464
65- typedef void (* framebuffer_get_bufinfo_fun )(mp_obj_t , mp_buffer_info_t * bufinfo );
66- typedef void (* framebuffer_swapbuffers_fun )(mp_obj_t );
67- typedef void (* framebuffer_deinit_fun )(mp_obj_t );
68- typedef bool (* framebuffer_set_brightness_fun )(mp_obj_t , mp_float_t );
69- typedef mp_float_t (* framebuffer_get_brightness_fun )(mp_obj_t );
70- typedef bool (* framebuffer_set_auto_brightness_fun )(mp_obj_t , bool );
7165typedef bool (* framebuffer_get_auto_brightness_fun )(mp_obj_t );
72- typedef int (* framebuffer_get_width_fun )(mp_obj_t );
73- typedef int (* framebuffer_get_height_fun )(mp_obj_t );
74- typedef int (* framebuffer_get_row_stride_fun )(mp_obj_t );
75- typedef int (* framebuffer_get_first_pixel_offset_fun )(mp_obj_t );
76- typedef int (* framebuffer_get_color_depth_fun )(mp_obj_t );
66+ typedef bool (* framebuffer_get_reverse_pixels_in_byte_fun )(mp_obj_t );
67+ typedef bool (* framebuffer_get_reverse_pixels_in_word_fun )(mp_obj_t );
68+ typedef bool (* framebuffer_set_auto_brightness_fun )(mp_obj_t , bool );
69+ typedef bool (* framebuffer_set_brightness_fun )(mp_obj_t , mp_float_t );
7770typedef int (* framebuffer_get_bytes_per_cell_fun )(mp_obj_t );
71+ typedef int (* framebuffer_get_color_depth_fun )(mp_obj_t );
72+ typedef int (* framebuffer_get_first_pixel_offset_fun )(mp_obj_t );
73+ typedef int (* framebuffer_get_grayscale_fun )(mp_obj_t );
74+ typedef int (* framebuffer_get_height_fun )(mp_obj_t );
7875typedef int (* framebuffer_get_native_frames_per_second_fun )(mp_obj_t );
76+ typedef int (* framebuffer_get_pixels_in_byte_share_row_fun )(mp_obj_t );
77+ typedef int (* framebuffer_get_row_stride_fun )(mp_obj_t );
78+ typedef int (* framebuffer_get_width_fun )(mp_obj_t );
79+ typedef mp_float_t (* framebuffer_get_brightness_fun )(mp_obj_t );
80+ typedef void (* framebuffer_deinit_fun )(mp_obj_t );
81+ typedef void (* framebuffer_get_bufinfo_fun )(mp_obj_t , mp_buffer_info_t * bufinfo );
82+ typedef void (* framebuffer_swapbuffers_fun )(mp_obj_t );
7983
8084typedef struct _framebuffer_p_t {
8185 MP_PROTOCOL_HEAD // MP_QSTR_protocol_framebuffer
86+
87+ // Mandatory
8288 framebuffer_get_bufinfo_fun get_bufinfo ;
8389 framebuffer_swapbuffers_fun swapbuffers ;
8490 framebuffer_deinit_fun deinit ;
8591 framebuffer_get_width_fun get_width ;
8692 framebuffer_get_height_fun get_height ;
87- framebuffer_get_color_depth_fun get_color_depth ;
88- framebuffer_get_bytes_per_cell_fun get_bytes_per_cell ;
89- framebuffer_get_native_frames_per_second_fun get_native_frames_per_second ;
93+
94+ // Optional getters
95+ framebuffer_get_bytes_per_cell_fun get_bytes_per_cell ; // default: 2
96+ framebuffer_get_color_depth_fun get_color_depth ; // default: 16
97+ framebuffer_get_first_pixel_offset_fun get_first_pixel_offset ; // default: 0
98+ framebuffer_get_grayscale_fun get_grayscale ; // default: grayscale if depth < 8
99+ framebuffer_get_native_frames_per_second_fun get_native_frames_per_second ; // default: 60
100+ framebuffer_get_pixels_in_byte_share_row_fun get_pixels_in_byte_share_row ; // default: false
101+ framebuffer_get_reverse_pixels_in_byte_fun get_reverse_pixels_in_byte ; // default: false
102+ framebuffer_get_reverse_pixels_in_word_fun get_reverse_pixels_in_word ; // default: false
103+ framebuffer_get_row_stride_fun get_row_stride ; // default: 0 (no extra row padding)
104+
105+ // Optional -- default is no brightness control
90106 framebuffer_get_brightness_fun get_brightness ;
91107 framebuffer_set_brightness_fun set_brightness ;
92- framebuffer_get_row_stride_fun get_row_stride ;
93- framebuffer_get_first_pixel_offset_fun get_first_pixel_offset ;
108+
109+ // Optional -- default is no automatic brightness control
94110 framebuffer_get_auto_brightness_fun get_auto_brightness ;
95111 framebuffer_set_auto_brightness_fun set_auto_brightness ;
96112} framebuffer_p_t ;
0 commit comments