Hello Carsten,

thanks for the quick reply!
..hmm, I think thats what glarea is already doing, and rendering most
scenes works perfectly.
It is only when using a stage that the gtk fbo get unbound.

I thought I could rebind them on renderLeave of the stage, but subclassing
it is tricky ;)
Any hints on how to do this without necessarly registering a new type in
OpenSG?
I just want to override the renderLeave function.

Maybe is there another way by messing with the render action?
I'm not sure..

best regards,
Victor

On Thu, Dec 10, 2020 at 11:18 PM Carsten Neumann <
carsten.p.neum...@gmail.com> wrote:

> Hello Victor,
>
> hmm, I can't really claim to have any understanding of how this works any
> longer, but a quick look at
> Source/System/Window/FrameBufferObjects/OSGFrameBufferObject.cpp:740
> suggests that it always binds the default framebuffer (i.e.
> glBindFramebuffer(0)) when deactivating an FBO - it doesn't look like there
> is a customization point for this behaviour.
> Can you perform all your OpenSG rendering into an FBO and when it has
> completed manually blit to the GtkGLArea? It's a bit unnecessary work
> performing that extra copy, but may be the quickest way to get it running.
>
> Cheers,
> Carsten
>
> On Thu, Dec 10, 2020 at 3:24 PM Victor Haefner <victor.haef...@gmail.com>
> wrote:
>
>> Hello everyone,
>>
>> I just ported my application from Gtk2 to Gtk3.
>> Until now I used gtkglext to render with OpenSG into a widget.
>> There is a gtk3 port of gtkglext, but I had artifacts that I couldn't get
>> rid of.
>> So I tried GtkGLArea, it works, but I have a problem when using
>> framebuffers (for example for texture rendering).
>> GtkGLArea does not render directly to the window but instead to a
>> framebuffer and later cairo drawns the framebuffer to the widget vie a
>> shared GL context..
>> When I use a framebuffer from OpenSG then once the rendering to it is
>> done, OpenSG resets the buffer with glBindFramebuffer(0) if I recall
>> correctly.
>> Normally this would be fine, but with the GtkGLArea it results in a black
>> window.
>> Instead It would need to bind to the framebuffers from the gtkglarea.
>> There is a convenience function to do this, how can I tell OpenSG to call
>> it after using a framebuffer?
>>
>> best regards,
>> Victor
>> _______________________________________________
>> Opensg-users mailing list
>> Opensg-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/opensg-users
>>
> _______________________________________________
> Opensg-users mailing list
> Opensg-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/opensg-users
>
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to