Page MenuHomePhabricator

evas proxy: use part of source

Authored by kimcinoo on Nov 5 2019, 6:11 PM.



This makes a proxy object use a selective region of a source object.
This is useful when the source is too big to allocate a proxy surface.
This will be used by elm_scroller to solve following issue.

If size of elm_sclloer content is too big, then the proxy of
elm_scroller to show loop effect does not work. Because
evas_gl_common_image_surface_new does not allow
bigger size surface than max_texture_size

Test Plan

[Sample code]


Diff Detail

rEFL core/efl
No Linters Available
No Unit Test Coverage
Build Status
Buildable 14386
Build 9908: arc lint + arc unit
kimcinoo created this revision.Nov 5 2019, 6:11 PM
kimcinoo requested review of this revision.Nov 5 2019, 6:11 PM
kimcinoo edited the summary of this revision. (Show Details)Nov 5 2019, 6:18 PM
kimcinoo edited the test plan for this revision. (Show Details)
kimcinoo edited the summary of this revision. (Show Details)
cedric added a comment.Nov 6 2019, 9:37 AM

That's neat. Could we have a test for expedite too?

Sure to expedite.

kimcinoo updated this revision to Diff 26728.Nov 6 2019, 9:46 PM
kimcinoo edited the summary of this revision. (Show Details)
kimcinoo edited the test plan for this revision. (Show Details)

Remove unnecessary change

Hermet requested changes to this revision.Nov 11 2019, 4:35 PM

Please check comments.


My gut says, this will occur maintaining burden issue.

Hopefully you considered below points:

  • We actually have evas_object_image_fill_set().
  • How user know the maximum size limitation and if they still need to view full region of content?
  • What if source object size is continuously changeable??
This revision now requires changes to proceed.Nov 11 2019, 4:35 PM
kimcinoo abandoned this revision.Nov 11 2019, 4:50 PM

I would like to use D10626 instead of this which could occur maintaining burden issue later.


Thank you for your comment.

  1. I would like to use evas_object_load_region_set and evas_object_image_fill_set. The will make it work.
  2. User does not know the maximum size limitation. If the full region of content is bigger than max, then we cannot support it on current status. I read following comment from elm_scroller.c. It seems that there would be another solution to show full region of content.
/* Since Proxy has the texture size limitation problem, we set a key value
   for evas works in some hackish way to avoid this problem. This hackish
   code should be removed once evas supports a mechanism like a virtual
   texture. */
evas_object_image_fill_set(proxy, 0, 0, cw, ch);
  1. If the source object size is changed, then user should handle it.