}
static tbm_surface_queue_h
-_virtual_hwc_window_get_tbm_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error)
+_virtual_hwc_window_get_tbm_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error, int flags)
{
tdm_virtual_hwc_window_data *hwc_window_data = NULL;
tbm_surface_queue_h tqueue = NULL;
height = hwc_window_data->info.src_config.size.v;
format = hwc_window_data->info.src_config.format;
- tqueue = tbm_surface_queue_create(NUM_BUFFERS, width, height, format, TBM_BO_SCANOUT);
+ tqueue = tbm_surface_queue_create(NUM_BUFFERS, width, height, format, flags);
if (error)
*error = TDM_ERROR_OPERATION_FAILED;
RETURN_VAL_IF_FAIL(tqueue != NULL, NULL);
virtual_hwc_get_client_target_buffer_queue(tdm_hwc *hwc, tdm_error *error)
{
tdm_virtual_hwc_data *hwc_data = hwc;
+ tdm_virtual_output_data *output_data = NULL;
+ tdm_virtual_voutput_data *voutput_data = NULL;
tbm_surface_queue_h tqueue = NULL;
if (error)
RETURN_VAL_IF_FAIL(hwc_data != NULL, NULL);
+ output_data = hwc_data->output_data;
+ RETURN_VAL_IF_FAIL(output_data != NULL, NULL);
+
+ voutput_data = output_data->voutput_data;
+ RETURN_VAL_IF_FAIL(voutput_data != NULL, NULL);
+
if (hwc_data->target_hwc_window == NULL) {
if (error)
*error = TDM_ERROR_OPERATION_FAILED;
return NULL;
}
- tqueue = _virtual_hwc_window_get_tbm_buffer_queue(hwc_data->target_hwc_window, error);
+ tqueue = _virtual_hwc_window_get_tbm_buffer_queue(hwc_data->target_hwc_window, error, voutput_data->target_buffer_queue_flag);
RETURN_VAL_IF_FAIL(tqueue, NULL);
if (error)