From: Junkyeong Kim Date: Tue, 8 Jan 2019 04:30:01 +0000 (+0900) Subject: virtual: treat unset buffer commit X-Git-Tag: accepted/tizen/unified/20190115.060027~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Flibtdm.git;a=commitdiff_plain;h=48923ff22e1e920d712b032650f5de932e18a477 virtual: treat unset buffer commit Change-Id: I41ad012b0fbbdc5ea22b6e1b50be38f8aa99c060 Signed-off-by: Junkyeong Kim --- diff --git a/backends/virtual/tdm_virtual_display.c b/backends/virtual/tdm_virtual_display.c index 2d407fe..e9e503f 100644 --- a/backends/virtual/tdm_virtual_display.c +++ b/backends/virtual/tdm_virtual_display.c @@ -459,6 +459,25 @@ virtual_output_commit(tdm_output *output, int sync, void *user_data) layer_data = output_data->primary_layer; + if (layer_data->display_buffer == NULL && layer_data->display_buffer_changed == 1) { + event_data = calloc(1, sizeof(tdm_virtual_event_data)); + if (!event_data) { + TDM_ERR("alloc failed"); + return TDM_ERROR_OUT_OF_MEMORY; + } + + event_data->type = TDM_VIRTUAL_EVENT_TYPE_COMMIT; + event_data->output_data = output_data; + event_data->user_data = user_data; + + ret = _tdm_virtual_display_wait_vblank(output_data, 3, event_data); + if (ret != TDM_ERROR_NONE) { + free(event_data); + return ret; + } + goto done; + } + if (voutput_data->vcommit_func) { if (layer_data->display_buffer_changed) { output_data->commit_user_data = user_data; @@ -496,6 +515,7 @@ virtual_output_commit(tdm_output *output, int sync, void *user_data) } } +done: layer_data->display_buffer_changed = 0; return TDM_ERROR_NONE;