On Mon, 20 Jun 2011 11:18:56 +0900 "Sung W. Park" <sung...@gmail.com> said:
in svn as it pretty much fixes things. comments here; 1. not totally into the idea of setting engine explicitly before u create the window :( if its not a gl engine this test cant really work and that config is controls system-wide for gl apps atm. this SHOULD work without the gl engine via a software mesa fallback so setting the engine kind of will hide that fact that that isnt done yet :) 2. thought i really don't like the resize callback i'll let it pass as this is some kind of bastard son of both efl and opengl and there isn't really a pure "one true way" and there is very little you can do to make both sides totally happy as there is a fundamental design philosophy difference between them in certain areas :( > Hi all, > > Upon reviewing the elm_glview, I've realized a few issues and mistakes that > i've made originally so I've made some changes/ updates to elm_glview > > 1.) GL Resource Deletion in ELM_GLView > > In order to delete GL resources, the current approach simply registered a > delete callback to the GLView object and handled resource deletion there. > Unfortunately, using the delete callback did not guarantee the glview > context to be > current. In order to guarantee that the current context was the glview > context, the make_current call needs to be called explicitly. Since we were > hiding all the > make current details in elm_glview, i've decided to add an API that registers > a delete callback function. I know that this may seem redundant since > there is already > a delete callback that you can register with glview objects. > Unfortunately, this is the > only option that we have apart from exposing make_current, which is > something that > went again what we are trying to do with elm_glview. > > Since adding delete callback alone seemed a little out of place, i've > taken the liberty > to add other callback functions to make it seem consistent. > > void elm_glview_init_func_set(Evas_Object *obj, Elm_GLView_Func func); > void elm_glview_del_func_set(Evas_Object *obj, Elm_GLView_Func func); > void elm_glview_resize_func_set(Evas_Object *obj, Elm_GLView_Func func); > > resize callback can be controversial as well but I want to argue that > adding this callback > makes the render function a lot cleaner. To handle resize > differently, the user in > render function needs to manually compare and see if the size has changed, and > then handle the cases. Doing all of this internally once makes the > developers life > a lot easier in my opinion. > > these callback functions do make the render function a lot cleaner. > You can check > out the updated test_glview.c or newly added test_glview_simple. > > 2.) Minor bug fixes/changes > > elm_glview_scale_policy_set() was supposed to be elm_glview_resize_policy_set > () but it somehow evaded our reviews. That has been fixed. > > Also, in _glview_resize, after updating the surface, it was explicitly > calling the > render function. It is actually unnecessary here and calling it here > will cause > problems if resize gets called before everything else is setup > properly. So that has > been commented out. > > 3.) test_glview & test_glview_simple > > elementary_test case for glview has been updated to reflect the api changes. > when you run the elmentary_test, you need to make sure that you set > ELM_ENGINE=gl as glview currently only runs on gl backend. > > test_glview runs the gears example. For testing purposes I've included a > simple glview test case that renders a triangle and changing background color. > > 4.) Attached Files: elm_glview_update.patch, test_glview_simple.c > - copy test_glview_simple.c to elementary/src/bin directory > - apply patch using patch -p0 elm_glview_update.patch > - Do make, make install > - run by > %ELM_ENGINE=gl elmentary_test > > > Comments and suggestions would be much appreciated. > > thanks a bunch! > Sung -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel