diff options
-rw-r--r-- | EGL/tizen/yagl_tizen_window.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/EGL/tizen/yagl_tizen_window.c b/EGL/tizen/yagl_tizen_window.c index fe2ac39..9e65770 100644 --- a/EGL/tizen/yagl_tizen_window.c +++ b/EGL/tizen/yagl_tizen_window.c @@ -52,6 +52,7 @@ static int yagl_tizen_window_get_buffer(struct yagl_native_drawable *drawable, tbm_bo bo; tbm_surface_h tbm_surface; int i; + tpl_bool_t invalid_surface; YAGL_LOG_FUNC_SET(yagl_tizen_window_get_buffer); @@ -64,6 +65,8 @@ static int yagl_tizen_window_get_buffer(struct yagl_native_drawable *drawable, return 0; } + invalid_surface = tpl_surface_validate(window->surface) == TPL_FALSE; + tbm_surface = tpl_surface_dequeue_buffer(window->surface); if (tbm_surface == NULL) { YAGL_LOG_ERROR("can't get buffer for %p", window->surface); @@ -74,7 +77,7 @@ static int yagl_tizen_window_get_buffer(struct yagl_native_drawable *drawable, width = tbm_surface_get_width(tbm_surface); height = tbm_surface_get_height(tbm_surface); - if ((window->width != width) || (window->height != height)) { + if (invalid_surface || (window->width != width) || (window->height != height)) { for (i = 0; i < YAGL_TIZEN_MAX_COLOR_BUF; i++) { if (window->color_buffers[i].locked && window->back != &window->color_buffers[i]) { /* |