[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] Why is it not up to the user to create GL context?

On Fri, 15 Dec 2006 19:17:53 +0100 (CET) centipede@takhis.net babbled:

> Hello again, and sorry for going silent. I had no internet access the last
> three weeks. What's wrong with santa? I have been so nice during the year.
> Thanks for the very elaborate answers on previous questions (which for my
> part boiled pretty much down to "Ok, I'll just wait and see the outcome").
> Anyway, first question to reopen the discussion of embedding OpenGL is
> this:
> Why is creation of OpenGL rendering context handled by Evas (or whoever it
> is) itself? The user has a fine control of creation of X11 resources,
> therefore in my eyes it would seem a natural extension to this frame of
> mind that the user can control how GL resources should be handled also.

because a gl context is global. evas has no idea what the current context color
is, texture, multitexture mode, currently bound fragment shader, etc. etc. etc.

because it is a state engine that you change the state of - if evas comes in
not knowing the state when drawing, it will have to either reset every possible
known state value each time, or, as it does currently, manage its own state.

> My motivation for asking lies in the concept I proposed last I wrote,
> namely a video-processing framework based on a shared OpenGL context (i.e.
> indirect rendering which will make it possible to use textures,
> shader-programs etc shared between processes).

ok. now to this. the problem with this is that evas is meant to be INDEPENDENT
of its rendering engine at the api level. i am very loathe to expose the engine
to the evas api if i can. this means an evas program can change engines at will
and "just work" (tm).

what you want is basically evas as a gl front-end for yourself, not as a
display independent canvas. now there is nothing wrong with that - but it is
not one of the goals of evas to do that. that is why you will not find the gl
context exposed and find it very hard to get TO internals. it's all nicely
abstracted away. now i do know what you want - you want to be able to place a
gl rendered scene (3d maybe) in a canvas. if its 3d you want - then we are
talking major nasty work as we then need to expose EVERY engine, all the engine
capabilities and ways in and out of that sanely. if its just 2d - maybe its
something that needs to go into evas anyway. i have been considering filter
objects for example that would provide filtering like gaussian blur, sharpen,
etc. etc. so maybe what you want is somewhere on the todo in a more generic way?

> Thanks, Rene Jensen
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster@rasterman.com
Tokyo, Japan (東京 日本)