}
}
+E_API Eina_Bool
+e_desk_zoom_get(E_Desk *desk, double *zoomx, double *zoomy, int *cx, int *cy)
+{
+ E_Zone *zone = NULL;
+ E_Output *eout = NULL;
+ Eina_Bool res = EINA_FALSE;
+
+ E_OBJECT_CHECK_RETURN(desk, EINA_FALSE);
+ E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, EINA_FALSE);
+
+ if (e_config->use_pp_zoom)
+ {
+ if (e_comp_screen_pp_support())
+ {
+ zone = desk->zone;
+ eout = e_output_find(zone->output_id);
+ if (!eout)
+ {
+ ERR("e_desk_zoom_set: fail get eout");
+ return res;
+ }
+
+ res = e_output_zoom_get(eout, zoomx, zoomy, cx, cy);
+ return res;
+ }
+ }
+
+ if (e_config->use_desk_smart_obj)
+ {
+ E_DESK_SMART_DATA_GET(desk->smart_obj, sd);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE);
+
+ if (zoomx) *zoomx = sd->zoom.ratio_x;
+ if (zoomy) *zoomy = sd->zoom.ratio_y;
+ if (cx) *cx = sd->zoom.center_x;
+ if (cy) *cy = sd->zoom.center_y;
+
+ res = EINA_TRUE;
+ }
+
+ return res;
+}
+
E_API void
e_desk_zoom_unset(E_Desk *desk)
{
E_API void e_desk_geometry_set(E_Desk *desk, int x, int y, int w, int h);
E_API void e_desk_zoom_set(E_Desk *desk, double zoomx, double zoomy, int cx, int cy);
+E_API Eina_Bool e_desk_zoom_get(E_Desk *desk, double *zoomx, double *zoomy, int *cx, int *cy);
E_API void e_desk_zoom_unset(E_Desk *desk);
E_API void e_desk_smart_member_add(E_Desk *desk, Evas_Object *obj);
return EINA_TRUE;
}
+EINTERN Eina_Bool
+e_output_zoom_get(E_Output *output, double *zoomx, double *zoomy, int *cx, int *cy)
+{
+ E_Output *output_primary = NULL;
+
+ if (!e_comp_screen_pp_support())
+ {
+ WRN("Comp Screen does not support the Zoom.");
+ return EINA_FALSE;
+ }
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
+
+ output_primary = e_comp_screen_primary_output_get(e_comp->e_comp_screen);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(output_primary, EINA_FALSE);
+
+ if (output != output_primary)
+ {
+ ERR("Only Primary Output can support the Zoom.");
+ return EINA_FALSE;
+ }
+
+ if (zoomx) *zoomx = output->zoom_conf.zoomx;
+ if (zoomy) *zoomy = output->zoom_conf.zoomy;
+ if (cx) *cx = output->zoom_conf.init_cx;
+ if (cy) *cy = output->zoom_conf.init_cy;
+
+ return EINA_TRUE;
+}
+
EINTERN void
e_output_zoom_unset(E_Output *output)
{
EINTERN E_Plane * e_output_default_fb_target_get(E_Output *output);
EINTERN Eina_Bool e_output_fake_config_set(E_Output *output, int w, int h);
EINTERN Eina_Bool e_output_zoom_set(E_Output *output, double zoomx, double zoomy, int cx, int cy);
+EINTERN Eina_Bool e_output_zoom_get(E_Output *output, double *zoomx, double *zoomy, int *cx, int *cy);
EINTERN void e_output_zoom_unset(E_Output *output);
EINTERN Eina_Bool e_output_capture(E_Output *output, tbm_surface_h surface, Eina_Bool auto_rotate, Eina_Bool sync, E_Output_Capture_Cb func, void *data);
EINTERN Eina_Bool e_output_stream_capture_queue(E_Output *output, tbm_surface_h surface, E_Output_Capture_Cb func, void *data);