diff --git a/src/bin/engine_drm.c b/src/bin/engine_drm.c new file mode 100644 index 0000000..9c840b9 --- /dev/null +++ b/src/bin/engine_drm.c @@ -0,0 +1,47 @@ +#include "main.h" + +#include + +Eina_Bool +engine_drm_args(const char *engine __UNUSED__, int width, int height) +{ + Evas_Engine_Info_Drm *einfo; + + evas_output_method_set(evas, evas_render_method_lookup("drm")); + einfo = (Evas_Engine_Info_Drm *)evas_engine_info_get(evas); + if (!einfo) + { + printf("Evas does not support the Drm Enginge\n"); + return EINA_FALSE; + } + + /* setup drm props in such a way so that evas itself will handle doing + * the drm card init, etc, etc because we are not using ecore_evas here */ + einfo->info.fd = -1; + einfo->info.tty = -1; + einfo->info.output = -1; + einfo->info.plane = -1; + einfo->info.rotation = 0; + einfo->info.depth = 32; + einfo->info.destination_alpha = EINA_FALSE; + + if (!evas_engine_info_set(evas, (Evas_Engine_Info *)einfo)) + { + printf("Evas could not setup the information for the Drm Engine\n"); + return EINA_FALSE; + } + + return EINA_TRUE; +} + +void +engine_drm_loop(void) +{ + +} + +void +engine_drm_shutdown(void) +{ + +} diff --git a/src/bin/engine_drm.h b/src/bin/engine_drm.h new file mode 100644 index 0000000..a031a9b --- /dev/null +++ b/src/bin/engine_drm.h @@ -0,0 +1,8 @@ +#ifndef ENGINE_DRM_H +#define ENGINE_DRM_H + +Eina_Bool engine_drm_args(const char *engine, int width, int height); +void engine_drm_loop(void); +void engine_drm_shutdown(void); + +#endif