forked from enlightenment/efl
ecore-evas-drm: Update ecore_evas_drm for recent evas gl_drm changes
Summary: Previous Ecore_Evas drm code would create the gbm device and surface inside the gl_drm function. As these are now handled inside the evas-gl-drm engine itself, this code is not needed here. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
ee593050f1
commit
39c28cbe8e
|
@ -360,6 +360,12 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS
|
|||
/* try to init drm */
|
||||
if (_ecore_evas_drm_init(device) < 1) return NULL;
|
||||
|
||||
if (!ecore_drm_device_software_setup(dev))
|
||||
{
|
||||
ERR("Could not setup device for software");
|
||||
goto soft_err;
|
||||
}
|
||||
|
||||
/* try to load gl libary, gbm libary */
|
||||
/* Typically, gbm loads the dri driver However some versions of Mesa
|
||||
* do not have libglapi symbols linked in the driver. Because of this,
|
||||
|
@ -427,9 +433,16 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS
|
|||
evas_data_attach_set(ee->evas, ee);
|
||||
evas_output_method_set(ee->evas, method);
|
||||
|
||||
/* FIXME: Support initial rotation ?? */
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
if ((ee->rotation == 90) || (ee->rotation == 270))
|
||||
{
|
||||
evas_output_size_set(ee->evas, h, w);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, h, w);
|
||||
}
|
||||
else
|
||||
{
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
}
|
||||
|
||||
if (ee->can_async_render)
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
|
||||
|
@ -437,6 +450,8 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS
|
|||
|
||||
if ((einfo = (Evas_Engine_Info_GL_Drm *)evas_engine_info_get(ee->evas)))
|
||||
{
|
||||
Ecore_Drm_Output *output;
|
||||
|
||||
einfo->info.depth = 32;
|
||||
einfo->info.destination_alpha = ee->alpha;
|
||||
einfo->info.rotation = ee->rotation;
|
||||
|
@ -444,24 +459,22 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS
|
|||
if ((num = getenv("EVAS_DRM_VSYNC")))
|
||||
{
|
||||
if (!atoi(num))
|
||||
einfo->vsync = EINA_FALSE;
|
||||
einfo->info.vsync = EINA_FALSE;
|
||||
else
|
||||
einfo->vsync = EINA_TRUE;
|
||||
einfo->info.vsync = EINA_TRUE;
|
||||
}
|
||||
else
|
||||
einfo->vsync = EINA_TRUE;
|
||||
einfo->info.vsync = EINA_TRUE;
|
||||
|
||||
einfo->info.fd = ecore_drm_device_fd_get(dev);
|
||||
einfo->info.dev = dev;
|
||||
einfo->info.format = format;
|
||||
einfo->info.flags = flags;
|
||||
|
||||
if (einfo->info.fd)
|
||||
einfo->info.gbm = gbm_create_device(einfo->info.fd);
|
||||
if (einfo->info.gbm)
|
||||
if ((output = ecore_drm_device_output_find(dev, x, y)))
|
||||
{
|
||||
einfo->info.surface =
|
||||
gbm_surface_create(einfo->info.gbm, w, h, format, flags);
|
||||
einfo->info.conn_id = ecore_drm_output_connector_id_get(output);
|
||||
einfo->info.crtc_id = ecore_drm_output_crtc_id_get(output);
|
||||
einfo->info.buffer_id = ecore_drm_output_crtc_buffer_get(output);
|
||||
}
|
||||
|
||||
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
||||
|
@ -476,7 +489,7 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS
|
|||
goto eng_err;
|
||||
}
|
||||
|
||||
ee->prop.window = einfo->info.output;
|
||||
ee->prop.window = einfo->info.buffer_id;
|
||||
|
||||
_ecore_evas_register(ee);
|
||||
ecore_evas_input_event_register(ee);
|
||||
|
@ -497,9 +510,9 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS
|
|||
|
||||
eng_err:
|
||||
ecore_evas_free(ee);
|
||||
soft_err:
|
||||
ee_err:
|
||||
_ecore_evas_drm_shutdown();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue