summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Michael <cp.michael@samsung.com>2019-03-19 09:51:41 -0400
committerChristopher Michael <cp.michael@samsung.com>2019-03-21 14:00:15 -0400
commit1dd78ad7a551fefed496a93b34973e2a765b7379 (patch)
treebd1d199ad3eb64c888d66be10232e06bfbfdff42
parent865d0c2bc1d015d66ec3f794e38dd7b0be6d571a (diff)
evas drm: Don't use eng_output_resize or redraws clear
We don't need to use eng_output_resize in this engine as eng_output_update will take care of that. Also, don't use redraws_clear to handle buffer swapping. This is part one of software rotation fixes. ref T7690 @fix Differential Revision: https://phab.enlightenment.org/D8402
-rw-r--r--src/modules/evas/engines/drm/evas_engine.c26
1 files changed, 4 insertions, 22 deletions
diff --git a/src/modules/evas/engines/drm/evas_engine.c b/src/modules/evas/engines/drm/evas_engine.c
index 63719018ec..d72e4ef1cc 100644
--- a/src/modules/evas/engines/drm/evas_engine.c
+++ b/src/modules/evas/engines/drm/evas_engine.c
@@ -44,7 +44,7 @@ eng_output_setup(void *engine, void *einfo, unsigned int w, unsigned int h)
44 NULL, 44 NULL,
45 NULL, 45 NULL,
46 _outbuf_flush, 46 _outbuf_flush,
47 _outbuf_redraws_clear, 47 NULL,
48 _outbuf_free, 48 _outbuf_free,
49 ob->w, ob->h)) 49 ob->w, ob->h))
50 goto init_err; 50 goto init_err;
@@ -70,33 +70,16 @@ eng_output_info_setup(void *info)
70 einfo->render_mode = EVAS_RENDER_MODE_BLOCKING; 70 einfo->render_mode = EVAS_RENDER_MODE_BLOCKING;
71} 71}
72 72
73static void 73static int
74eng_output_resize(void *engine EINA_UNUSED, void *data, int w, int h) 74eng_output_update(void *engine EINA_UNUSED, void *data, void *einfo, unsigned int w, unsigned int h)
75{ 75{
76 Render_Engine *re = data; 76 Render_Engine *re = data;
77 Evas_Engine_Info_Drm *info; 77 Evas_Engine_Info_Drm *info;
78 78
79 info = re->generic.ob->info; 79 info = (Evas_Engine_Info_Drm *)einfo;
80 if (!info) return;
81
82 _outbuf_reconfigure(re->generic.ob, w, h, 80 _outbuf_reconfigure(re->generic.ob, w, h,
83 info->info.rotation, info->info.depth); 81 info->info.rotation, info->info.depth);
84 82
85 evas_common_tilebuf_free(re->generic.tb);
86 if ((re->generic.tb = evas_common_tilebuf_new(w, h)))
87 evas_common_tilebuf_set_tile_size(re->generic.tb, TILESIZE, TILESIZE);
88
89 re->generic.w = w;
90 re->generic.h = h;
91}
92
93static int
94eng_output_update(void *engine, void *data, void *einfo EINA_UNUSED, unsigned int w, unsigned int h)
95{
96 Render_Engine *re = data;
97
98 eng_output_resize(engine, data, w, h);
99
100 evas_render_engine_software_generic_update(&re->generic, 83 evas_render_engine_software_generic_update(&re->generic,
101 re->generic.ob, w, h); 84 re->generic.ob, w, h);
102 85
@@ -251,7 +234,6 @@ module_open(Evas_Module *em)
251 ORD(output_setup); 234 ORD(output_setup);
252 ORD(output_update); 235 ORD(output_update);
253 ORD(output_free); 236 ORD(output_free);
254 ORD(output_resize);
255 ORD(image_plane_assign); 237 ORD(image_plane_assign);
256 ORD(image_plane_release); 238 ORD(image_plane_release);
257 239