wl_resource_set_implementation(res, &_e_screenshooter_interface, NULL, NULL);
}
-EINTERN Eina_Bool
-e_comp_wl_screenshooter_dump(tbm_surface_h tbm_surface)
-{
- E_Mirror *mirror = NULL;
- E_Comp_Wl_Video_Buf *vbuf = NULL;
- tdm_error err = TDM_ERROR_NONE;
- int count, i;
- Eina_Bool ret = EINA_FALSE;
-
- mirror = E_NEW(E_Mirror, 1);
- EINA_SAFETY_ON_NULL_RETURN_VAL(mirror, EINA_FALSE);
-
- mirror->e_output = e_output_find_by_index(0);
- EINA_SAFETY_ON_NULL_GOTO(mirror->e_output, done);
-
- mirror->tdm_output = mirror->e_output->toutput;
- EINA_SAFETY_ON_NULL_GOTO(mirror->tdm_output, done);
-
- err = tdm_output_get_layer_count(mirror->tdm_output, &count);
- EINA_SAFETY_ON_FALSE_GOTO(err == TDM_ERROR_NONE, done);
- EINA_SAFETY_ON_FALSE_GOTO(count >= 0, done);
-
- for (i = 0; i < count; i++)
- {
- tdm_layer *layer;
- tdm_layer_capability capability;
-
- layer = tdm_output_get_layer(mirror->tdm_output, i, &err);
- EINA_SAFETY_ON_FALSE_GOTO(err == TDM_ERROR_NONE, done);
-
- err = tdm_layer_get_capabilities(layer, &capability);
- EINA_SAFETY_ON_FALSE_GOTO(err == TDM_ERROR_NONE, done);
-
- if (capability & TDM_LAYER_CAPABILITY_PRIMARY)
- {
- mirror->tdm_primary_layer = layer;
- break;
- }
- }
- EINA_SAFETY_ON_NULL_GOTO(mirror->tdm_primary_layer, done);
-
- vbuf = e_comp_wl_video_buffer_create_tbm(tbm_surface);
- EINA_SAFETY_ON_NULL_GOTO(vbuf, done);
-
- e_comp_wl_video_buffer_clear(vbuf);
-
- ret = _e_tz_screenmirror_video_buffer_convert(mirror, vbuf);
- if (!ret)
- ERR("_e_tz_screenmirror_video_buffer_convert fail");
-
-done:
- if (mirror->ui_buffer_list)
- {
- Eina_List *l, *ll;
- E_Comp_Wl_Video_Buf *tmp = NULL;
-
- EINA_LIST_FOREACH_SAFE(mirror->ui_buffer_list, l, ll, tmp)
- e_comp_wl_video_buffer_unref(tmp);
- }
-
- if (vbuf)
- e_comp_wl_video_buffer_unref(vbuf);
-
- E_FREE(mirror);
-
- return ret;
-}
-
EINTERN int
e_comp_wl_screenshooter_init(void)
{