perf(layer): cache the layer_type

fixes #3334
This commit is contained in:
Gabor Kiss-Vamosi
2022-05-07 22:01:19 +02:00
parent e577b7a616
commit ac2e2f132e
9 changed files with 53 additions and 29 deletions

View File

@@ -394,16 +394,11 @@ lv_coord_t _lv_obj_get_ext_draw_size(const lv_obj_t * obj)
else return 0;
}
lv_intermediate_layer_type_t _lv_obj_is_intermediate_layer(const lv_obj_t * obj)
lv_layer_type_t _lv_obj_get_layer_type(const lv_obj_t * obj)
{
if(lv_obj_get_style_transform_angle(obj, 0) != 0) return LV_INTERMEDIATE_LAYER_TYPE_TRANSFORM;
if(lv_obj_get_style_transform_zoom(obj, 0) != 256) return LV_INTERMEDIATE_LAYER_TYPE_TRANSFORM;
if(lv_obj_get_style_opa(obj, 0) != LV_OPA_COVER) return LV_INTERMEDIATE_LAYER_TYPE_SIMPLE;
#if LV_DRAW_COMPLEX
if(lv_obj_get_style_blend_mode(obj, 0) != LV_BLEND_MODE_NORMAL) return LV_INTERMEDIATE_LAYER_TYPE_SIMPLE;
#endif
return LV_INTERMEDIATE_LAYER_TYPE_NONE;
if(obj->spec_attr) return obj->spec_attr->layer_type;
else return LV_LAYER_TYPE_NONE;
}
/**********************