@@ -346,8 +346,26 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(pixelbuf_pixelbuf_show_obj, pixelbuf_pixelbuf_s
346
346
//| Fills the entire buffer with the given color.
347
347
//|
348
348
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 );
351
369
352
370
for (size_t offset = 0 ; offset < self -> bytes ; offset += self -> pixel_step ) {
353
371
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) {
357
375
call_show (self_in );
358
376
return mp_const_none ;
359
377
}
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
+
361
419
362
420
363
421
//| .. method:: __getitem__(index)
0 commit comments