1 /** 2 * @file lv_draw_sdl_composite.h 3 * 4 */ 5 6 #ifndef LV_DRAW_SDL_COMPOSITE_H 7 #define LV_DRAW_SDL_COMPOSITE_H 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 /********************* 14 * INCLUDES 15 *********************/ 16 17 #include "../../lv_conf_internal.h" 18 19 #include LV_GPU_SDL_INCLUDE_PATH 20 21 #include "lv_draw_sdl.h" 22 #include "../../misc/lv_area.h" 23 #include "../../misc/lv_color.h" 24 25 /********************* 26 * DEFINES 27 *********************/ 28 29 /********************** 30 * TYPEDEFS 31 **********************/ 32 33 typedef enum lv_draw_sdl_composite_texture_id_t { 34 LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM0, 35 LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, 36 LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0, 37 LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET1, 38 } lv_draw_sdl_composite_texture_id_t; 39 40 /********************** 41 * GLOBAL PROTOTYPES 42 **********************/ 43 44 /** 45 * Begin drawing with mask. Render target will be switched to a temporary texture, 46 * and drawing coordinates may get clipped or translated 47 * @param coords_in Original coordinates 48 * @param clip_in Original clip area 49 * @param extension Useful for shadows or outlines, can be NULL 50 * @param coords_out Translated coords 51 * @param clip_out Translated clip area 52 * @param apply_area Area of actual composited texture will be drawn 53 * @return true if there are any mask needs to be drawn, false otherwise 54 */ 55 bool lv_draw_sdl_composite_begin(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords_in, const lv_area_t * clip_in, 56 const lv_area_t * extension, lv_blend_mode_t blend_mode, lv_area_t * coords_out, 57 lv_area_t * clip_out, lv_area_t * apply_area); 58 59 void lv_draw_sdl_composite_end(lv_draw_sdl_ctx_t * ctx, const lv_area_t * apply_area, lv_blend_mode_t blend_mode); 60 61 SDL_Texture * lv_draw_sdl_composite_texture_obtain(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_composite_texture_id_t id, 62 lv_coord_t w, lv_coord_t h); 63 64 /********************** 65 * MACROS 66 **********************/ 67 68 #ifdef __cplusplus 69 } /*extern "C"*/ 70 #endif 71 72 #endif /*LV_DRAW_SDL_COMPOSITE_H*/ 73