static void setup_elm(struct eplay* ep) { Evas* e; Evas_Engine_Info_Buffer *einfo; int w = ep->overlay[0].width; int h = ep->overlay[0].height; elm_config_engine_set("ews"); elm_config_scale_set(2.0); ecore_evas_ews_engine_set("buffer", NULL); ecore_evas_ews_setup(0, 0, w, h); // printf("%s:%i\n", __FUNCTION__, __LINE__); e = ecore_evas_ews_evas_get(); // printf("%s:%i: %p\n", __FUNCTION__, __LINE__, e); // ep->ee = ecore_evas_ews_ecore_evas_get(); //printf("ee: %p, %p, %p\n", ep->ee, ecore_evas_get(ep->ee), e); einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(e); einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32; einfo->info.dest_buffer = ep->overlay[0].data; einfo->info.dest_buffer_row_bytes = w * 4; einfo->info.use_color_key = 0; einfo->info.alpha_threshold = 0; einfo->info.func.new_update_region = NULL; einfo->info.func.free_update_region = NULL; einfo->info.func.switch_buffer = eplay_switch_overlay_buffer; einfo->info.switch_data = ep; evas_engine_info_set(e, (Evas_Engine_Info *)einfo); ecore_evas_alpha_set(ecore_evas_ews_ecore_evas_get(), EINA_TRUE); }
E_API void e_scale_update(void) { char buf[128]; if (e_config->scale.use_dpi) { #ifndef HAVE_WAYLAND_ONLY if (e_comp->comp_type == E_PIXMAP_TYPE_X) e_scale = (double)ecore_x_dpi_get() / (double)e_config->scale.base_dpi; #endif #ifdef HAVE_WAYLAND /* FIXME: This needs to get the DPI from a given output */ if (e_comp->comp_type == E_PIXMAP_TYPE_WL) { e_scale = (double)ecore_wl2_output_dpi_get(NULL) / (double)e_config->scale.base_dpi; } #endif if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; } else if (e_config->scale.use_custom) { e_scale = e_config->scale.factor; if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; } elm_config_scale_set(e_scale); elm_config_all_flush(); edje_scale_set(e_scale); snprintf(buf, sizeof(buf), "%1.3f", e_scale); e_util_env_set("E_SCALE", buf); e_hints_scale_update(); }