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;
}
}
+done:
layer_data->display_buffer_changed = 0;
return TDM_ERROR_NONE;