diff --git a/src/draw/lv_draw.c b/src/draw/lv_draw.c index 1789e7477..a00c99eaa 100644 --- a/src/draw/lv_draw.c +++ b/src/draw/lv_draw.c @@ -391,7 +391,7 @@ void * lv_draw_layer_alloc_buf(lv_layer_t * layer) } /*Set the stride also for static allocated buffers as well as for new dynamically allocated*/ - layer->buf_stride = stride; + if(layer->buf_stride == 0) layer->buf_stride = stride; /*Make sure the buffer address is aligned in case of already allocated buffers*/ return lv_draw_buf_align(layer->buf, layer->color_format); diff --git a/src/widgets/canvas/lv_canvas.c b/src/widgets/canvas/lv_canvas.c index 5d02045ba..fea90b0e4 100644 --- a/src/widgets/canvas/lv_canvas.c +++ b/src/widgets/canvas/lv_canvas.c @@ -354,7 +354,7 @@ void lv_canvas_init_layer(lv_obj_t * obj, lv_layer_t * layer) layer->color_format = header->cf; layer->buf_area = canvas_area; layer->_clip_area = canvas_area; - layer->buf_stride = lv_draw_buf_width_to_stride(lv_area_get_width(&layer->buf_area), layer->color_format); + layer->buf_stride = header->stride; } void lv_canvas_finish_layer(lv_obj_t * canvas, lv_layer_t * layer)