@@ -346,8 +346,26 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(pixelbuf_pixelbuf_show_obj, pixelbuf_pixelbuf_s
346346//| Fills the entire buffer with the given color.
347347//|
348348
349- STATIC mp_obj_t pixelbuf_pixelbuf_fill (mp_obj_t self_in , mp_obj_t value ) {
350- pixelbuf_pixelbuf_obj_t * self = native_pixelbuf (self_in );
349+
350+ // Pixelbuf Fill callable class
351+
352+ typedef struct _pixelbuf_fill_t {
353+ mp_obj_base_t base ;
354+ } pixelbuf_fill_t ;
355+
356+
357+ STATIC mp_obj_t pixelbuf_fill_make_new (const mp_obj_type_t * type , size_t n_args , const mp_obj_t * args , mp_map_t * kw_args ) {
358+ pixelbuf_fill_t * o = m_new_obj (pixelbuf_fill_t );
359+ o -> base .type = type ;
360+ return MP_OBJ_FROM_PTR (o );
361+ }
362+
363+ // calls show
364+ STATIC mp_obj_t pixelbuf_fill_call (mp_obj_t self_in , size_t n_args , size_t n_kw , const mp_obj_t * args ) {
365+ mp_arg_check_num_kw_array (n_args , n_kw , 2 , 2 , false);
366+ mp_obj_t object = args [0 ];
367+ mp_obj_t value = args [1 ];
368+ pixelbuf_pixelbuf_obj_t * self = native_pixelbuf (object );
351369
352370 for (size_t offset = 0 ; offset < self -> bytes ; offset += self -> pixel_step ) {
353371 pixelbuf_set_pixel (self -> buf + offset , self -> two_buffers ? (self -> rawbuf + offset ) : NULL ,
@@ -357,7 +375,47 @@ STATIC mp_obj_t pixelbuf_pixelbuf_fill(mp_obj_t self_in, mp_obj_t value) {
357375 call_show (self_in );
358376 return mp_const_none ;
359377}
360- STATIC MP_DEFINE_CONST_FUN_OBJ_2 (pixelbuf_pixelbuf_fill_obj , pixelbuf_pixelbuf_fill );
378+
379+ const mp_obj_type_t pixelbuf_fill_type = {
380+ { & mp_type_type },
381+ .name = MP_QSTR_PixelBufFill ,
382+ .make_new = pixelbuf_fill_make_new ,
383+ .call = pixelbuf_fill_call ,
384+ };
385+
386+ STATIC const pixelbuf_fill_t pixelbuf_fill_singleton = {
387+ .base = { & pixelbuf_fill_type },
388+ };
389+
390+
391+ // STATIC mp_obj_t pixelbuf_pixelbuf_fill(mp_obj_t self_in, mp_obj_t value) {
392+ // pixelbuf_pixelbuf_obj_t *self = native_pixelbuf(self_in);
393+
394+ // for (size_t offset = 0; offset < self->bytes; offset+= self->pixel_step) {
395+ // pixelbuf_set_pixel(self->buf + offset, self->two_buffers ? (self->rawbuf + offset) : NULL,
396+ // self->brightness, value, &self->byteorder, self->byteorder.is_dotstar);
397+ // }
398+ // if (self->auto_write)
399+ // call_show(self_in);
400+ // return mp_const_none;
401+ // }
402+ // STATIC MP_DEFINE_CONST_FUN_OBJ_2(pixelbuf_pixelbuf_fill_obj, pixelbuf_pixelbuf_fill);
403+
404+
405+ STATIC mp_obj_t pixelbuf_pixelbuf_obj_fill_get (mp_obj_t self_in ) {
406+ // pixelbuf_pixelbuf_obj_t *self = native_pixelbuf(self_in);
407+ return MP_OBJ_FROM_PTR (& pixelbuf_fill_singleton );
408+ }
409+ MP_DEFINE_CONST_FUN_OBJ_1 (pixelbuf_pixelbuf_obj_fill_get_obj , pixelbuf_pixelbuf_obj_fill_get );
410+
411+ const mp_obj_property_t pixelbuf_pixelbuf_fill_obj = {
412+ .base .type = & mp_type_property ,
413+ .proxy = {(mp_obj_t )& pixelbuf_pixelbuf_obj_fill_get_obj ,
414+ (mp_obj_t )& mp_const_none_obj ,
415+ (mp_obj_t )& mp_const_none_obj },
416+ };
417+
418+
361419
362420
363421//| .. method:: __getitem__(index)
0 commit comments