acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

lv_draw_sw_dither.h (1932B)

      1 /**
      2  * @file lv_draw_sw_dither.h
      3  *
      4  */
      5 
      6 #ifndef LV_DRAW_SW_DITHER_H
      7 #define LV_DRAW_SW_DITHER_H
      8 
      9 #ifdef __cplusplus
     10 extern "C" {
     11 #endif
     12 
     13 /*********************
     14  *      INCLUDES
     15  *********************/
     16 #include "../../core/lv_obj_pos.h"
     17 
     18 
     19 /*********************
     20  *      DEFINES
     21  *********************/
     22 #if LV_COLOR_DEPTH < 32 && LV_DITHER_GRADIENT == 1
     23 #define _DITHER_GRADIENT 1
     24 #else
     25 #define _DITHER_GRADIENT 0
     26 #endif
     27 
     28 /**********************
     29  *      TYPEDEFS
     30  **********************/
     31 #if _DITHER_GRADIENT
     32 /*A signed error color component*/
     33 typedef struct {
     34     int8_t r, g, b;
     35 } lv_scolor24_t;
     36 
     37 struct _lv_gradient_cache_t;
     38 typedef void (*lv_dither_func_t)(struct _lv_gradient_cache_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w);
     39 
     40 #endif
     41 
     42 
     43 /**********************
     44  *    PROTOTYPES
     45  **********************/
     46 #if LV_DRAW_COMPLEX
     47 #if _DITHER_GRADIENT
     48 LV_ATTRIBUTE_FAST_MEM void lv_dither_none(struct _lv_gradient_cache_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w);
     49 
     50 LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_hor(struct _lv_gradient_cache_t * grad, const lv_coord_t xs,
     51                                                  const lv_coord_t y, const lv_coord_t w);
     52 LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_ver(struct _lv_gradient_cache_t * grad, const lv_coord_t xs,
     53                                                  const lv_coord_t y, const lv_coord_t w);
     54 
     55 #if LV_DITHER_ERROR_DIFFUSION == 1
     56 LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_hor(struct _lv_gradient_cache_t * grad, const lv_coord_t xs,
     57                                                   const lv_coord_t y, const lv_coord_t w);
     58 LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_ver(struct _lv_gradient_cache_t * grad, const lv_coord_t xs,
     59                                                   const lv_coord_t y, const lv_coord_t w);
     60 #endif /* LV_DITHER_ERROR_DIFFUSION */
     61 
     62 #endif /* _DITHER_GRADIENT */
     63 #endif
     64 
     65 
     66 #ifdef __cplusplus
     67 } /*extern "C"*/
     68 #endif
     69 
     70 #endif