canvas render: stop render_pre/post cb if it didn't render.
authorHermet Park <hermetpark@gmail.com>
Thu, 12 Jul 2018 13:14:32 +0000 (09:14 -0400)
committerSangHyeon Jade Lee <sh10233.lee@samsung.com>
Wed, 1 Aug 2018 06:11:16 +0000 (15:11 +0900)
commit9f5432a8c7253d56ee1b87bd07c7417741f65311
treedd78f3c782948277a1ff37a1b94ce88d49cb80c0
parente520e4afaf99ad48f1e8dc546f1af8e2cbd4f1c0
canvas render: stop render_pre/post cb if it didn't render.

Summary:
Basically, render_pre/post should be called only if rendering happens.
Unfortunately, this behavior had been broken by some mistakes.

As far as I understand after reading history carefully,
this issue introduced for fixing unpair of pre/post cbs.

In case of async render, the post callback would be triggered in
evas_render_pipe_wakeup(), it means POST callbake shouldn't be tiggered in
evas_render_updates_internal(). If that post callback were removed in
evas_render_updates_internal(), then in case of sync_render,
POST callback won't be triggered. So previously, the PRE/POST couldn't get
paired.

I guess cedric put a mistake that nothing2rendering which brought
the pre/post pair issue, even he said that patch fix the unpair of them.
(But actually that patch brought the issue!)

See this: dc841ed9b2ccf880df2d7590ea46d95e03e8752f

Whatever it was intented or not, that patch totally insane, even
non-descripting.

If we just trigger post cb only if sync render or no_rendered case,
We could make satisfication for both cases.

@fix

Reviewers: #committers, devilhorns, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6573

Change-Id: I267072faf71838b0ff4902b5c45e499a3f2af423