Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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();
}