On Tue, 19 Apr 2011 10:33:07 +0900 "Sung W. Park" <sung...@gmail.com> said:

thanks! in svn it is!

> ok, i'm attaching a new patch.
> 
> the patch basically checks to see if the current context is evas' gl context
> and if it is, it'll call evas_gl_common_context_flush().  I think this
> is the proper
> way to go.  :-)
> 
> cheers,
> sung
> 
> On Mon, Apr 18, 2011 at 6:39 PM, Sung W. Park <sung...@gmail.com> wrote:
> > well, you're actually right.  I was a little concerned about that aspect but
> > now that you
> > point it out, it makes sense with multiple windows.
> > The real issue is that we have is evas_gl butting in and changing the
> > currrent context that evas isn't aware of.  the proper way to resolve
> > this would be for evas_gl_make_current to do a
> > evass_gl_common_context_flush().
> > the fix was a little hacky i admit..
> > I'll go ahead and fix evas_gl and send another patch.  =)
> > On Mon, Apr 18, 2011 at 3:50 PM, Carsten Haitzler <ras...@rasterman.com>
> > wrote:
> >>
> >> On Wed, 13 Apr 2011 12:23:22 +0900 "Sung W. Park" <sung...@gmail.com>
> >> said:
> >>
> >> that patch seems wrong. if you are changing target window... and you have
> >> a
> >> previous window.. it flushes the gl render queue for the previous window
> >> target
> >> (or if the flush/use of the window) is flushed. you move the flush to
> >> AFTER
> >> setting the new context info (like new surfaces for read/write). that
> >> seems
> >> wrong.
> >>
> >> > Hi all,
> >> >
> >> > I've been toying around with creating a simple GLView smart object that
> >> > allows users do GL rendering simply.  Eventually, I would like to see
> >> > this
> >> > as an Elementary widget called GLView.  The idea behind this is that
> >> > if evas_gl provides the low level stuff, GLView gives the simplified
> >> > user-version.
> >> > I'll start another email thread later on this topic.
> >> >
> >> > The reason why I'm mentioning the above is because while working on
> >> > GLView,
> >> > I've noticed an interesting behavior.  (You can see this by
> >> > compiling/running the
> >> > program that I'm attaching.)  I'm drawing a simple blended Triangle in
> >> > the middle
> >> > of the GLView object and what i'm getting is a smaller inverted red
> >> > triangle
> >> > on the top left corner of the GLView object.  Obviously, something was
> >> > messing
> >> > with the state of my GL code.
> >> >
> >> > I've tracked this issue down to eng_window_use() in evas_x_main.c under
> >> > gl_x11
> >> > module.  In the code,
> >> > _________________
> >> > void
> >> > eng_window_use(Evas_GL_X11_Window *gw)
> >> > {
> >> >    if ((_evas_gl_x11_window != gw) || (force_use))
> >> >      {
> >> >         if (_evas_gl_x11_window)
> >> >           {
> >> >
> >> >  evas_gl_common_context_use(_evas_gl_x11_window->gl_context);
> >> >
> >> >  evas_gl_common_context_flush(_evas_gl_x11_window->gl_context);
> >> >           }
> >> >       _evas_gl_x11_window = gw;
> >> >        if (gw)
> >> >          {
> >> >        ....
> >> >        // Make Current Stuff..
> >> > _________________
> >> >
> >> > I've noticed that evas_gl_common_context_flush() gets called before it
> >> > does
> >> > MakeCurrent().  When the evas_gl_common_context_flush() gets called, it
> >> > resets
> >> > some shader stuff and does GL calls that tell the context to use the
> >> > particular shaders.  This explains why my GLView was picking on what
> >> > seemed
> >> > to be the MVP matrix states that Evas was using.
> >> >
> >> > Instead, what I think should happen is that the flush should be called
> >> > after
> >> > MakeCurrent happens.  Otherwise, you're not guaranteeing that your GL
> >> > calls
> >> > are being applied to the proper context. I've tried that and it seems to
> >> > address the
> >> > problem.
> >> >
> >> > You can try running the glview program that I'm attaching before you
> >> > apply
> >> > the patch and also try running it after you apply the patch.
> >> >
> >> > Let me know if this seems reasonable or I'm missing something somewhere.
> >> >
> >> > Thanks!
> >> >
> >> > cheers,
> >> > Sung
> >>
> >>
> >> --
> >> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> >> The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >>
> >
> >


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to