1 /**
2  * @file lv_image_private.h
3  *
4  */
5 
6 #ifndef LV_IMAGE_PRIVATE_H
7 #define LV_IMAGE_PRIVATE_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 
17 #include "../../core/lv_obj_private.h"
18 #include "lv_image.h"
19 
20 #if LV_USE_IMAGE != 0
21 
22 /*********************
23  *      DEFINES
24  *********************/
25 
26 /**********************
27  *      TYPEDEFS
28  **********************/
29 
30 /**
31  * Data of image
32  */
33 struct _lv_image_t {
34     lv_obj_t obj;
35     const void * src;       /**< Image source: Pointer to an array or a file or a symbol*/
36     const lv_image_dsc_t * bitmap_mask_src; /**< Pointer to an A8 bitmap mask */
37     lv_point_t offset;
38     int32_t w;              /**< Width of the image (Handled by the library)*/
39     int32_t h;              /**< Height of the image (Handled by the library)*/
40     uint32_t rotation;      /**< Rotation angle of the image*/
41     uint32_t scale_x;       /**< 256 means no zoom, 512 double size, 128 half size*/
42     uint32_t scale_y;       /**< 256 means no zoom, 512 double size, 128 half size*/
43     lv_point_t pivot;       /**< Rotation center of the image*/
44     uint32_t src_type : 2;  /**< See: lv_image_src_t*/
45     uint32_t cf : 5;        /**< Color format from `lv_color_format_t`*/
46     uint32_t antialias : 1; /**< Apply anti-aliasing in transformations (rotate, zoom)*/
47     uint32_t align: 4;      /**< Image size mode when image size and object size is different. See lv_image_align_t*/
48     uint32_t blend_mode: 4; /**< Element of `lv_blend_mode_t`*/
49 };
50 
51 
52 /**********************
53  * GLOBAL PROTOTYPES
54  **********************/
55 
56 /**********************
57  *      MACROS
58  **********************/
59 
60 #endif /* LV_USE_IMAGE != 0 */
61 
62 #ifdef __cplusplus
63 } /*extern "C"*/
64 #endif
65 
66 #endif /*LV_IMAGE_PRIVATE_H*/
67