mirror of
https://github.com/zlgopen/awtk.git
synced 2025-05-08 19:44:45 +08:00
improve mutable_image
This commit is contained in:
parent
0e744552bc
commit
57e7c2e10e
@ -1,5 +1,8 @@
|
||||
# 最新动态
|
||||
|
||||
2025/04/17
|
||||
* 修改mutable_image的need_redraw的机制(感谢智明提供补丁)
|
||||
|
||||
2025/04/16
|
||||
* 完善tk_swap(感谢兆坤提供补丁)。
|
||||
* 修复nanovg_plus处理vgcanvas_paint图片的时候有概率图像异常的问题和增加获取当前画布宽高以及修复画弧为360的时候变成0度的问题(感谢智明提供补丁)
|
||||
|
@ -75,12 +75,12 @@ ret_t mutable_image_on_paint_self(widget_t* widget, canvas_t* canvas) {
|
||||
mutable_image_t* mutable_image = MUTABLE_IMAGE(widget);
|
||||
ENSURE(mutable_image);
|
||||
|
||||
if (mutable_image->need_redraw != NULL &&
|
||||
!mutable_image->need_redraw(mutable_image->need_redraw_ctx)) {
|
||||
if (!mutable_image->is_need_redraw) {
|
||||
bitmap = mutable_image->user_image != NULL ? mutable_image->user_image : mutable_image->image;
|
||||
} else {
|
||||
bitmap = mutable_image->user_image != NULL ? mutable_image->user_image
|
||||
: mutable_image_prepare_image(widget, canvas);
|
||||
mutable_image->is_need_redraw = FALSE;
|
||||
}
|
||||
|
||||
if (bitmap == NULL) {
|
||||
@ -190,6 +190,7 @@ static ret_t mutable_image_invalidate(const timer_info_t* info) {
|
||||
|
||||
if (mutable_image->need_redraw == NULL ||
|
||||
mutable_image->need_redraw(mutable_image->need_redraw_ctx)) {
|
||||
mutable_image->is_need_redraw = TRUE;
|
||||
widget_invalidate_force(WIDGET(info->ctx), NULL);
|
||||
}
|
||||
|
||||
|
@ -77,6 +77,7 @@ typedef struct _mutable_image_t {
|
||||
image_base_t image_base;
|
||||
|
||||
/*private*/
|
||||
bool_t is_need_redraw;
|
||||
uint32_t timer_id;
|
||||
void* prepare_image_ctx;
|
||||
mutable_image_prepare_image_t prepare_image;
|
||||
@ -110,7 +111,7 @@ widget_t* mutable_image_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h)
|
||||
/**
|
||||
* @method mutable_image_set_need_redraw
|
||||
* 设置need_redraw回调函数。
|
||||
*
|
||||
* 备注:该函数不负责更新界面数据,只是询问刷新时机同时更新控件脏矩形。(需要配合 mutable_image_set_prepare_image 来设置图片数据)
|
||||
* 缺省每16ms刷新一次。但有时只是在变化时刷新,所以提供一个回调函数由用户决定是否需要重绘。
|
||||
*
|
||||
* @param {widget_t*} widget mutable_image对象。
|
||||
|
Loading…
x
Reference in New Issue
Block a user