[Solved] Drawing while ci::gl::ScopedFramebuffer is active still results in on-screen rendering?

#1

Hey Embers,

I’m super confused right now. I have an application with two windows. The secondary window functions as a visual output window into which I’m rendering a series of stacked generated visuals. I’m in the process of trying to simplify the code. Basically I have a number of FBO’s which are sized 1920x1080, but I only render into the portion befitting the size of this secondary window.

However, in this rewriting process I’ve come across something I can’t understand at all. I’m rendering output into an FBO along these lines

ci::gl::ScopedFramebuffer scpFbo( mFbo );
mModelBatchRef->draw();

and yet the batch output still appears in this secondary window. I’m completely stumped. Isn’t the scoped fbo intended to capture any and all writing of graphics?

I’m certain the mModelBatchRef is actually responsible for the rendering, because if I remove it, the output in the window vanishes.

So confused right now O_o

Cheers,
Gazoo

#2

D’Uh… It just occurred to me that if I render the output on the draw call for the secondary window, but the FBO was created for the first window, then I think this kind of stuff can happen. :neutral_face:

#3

Pretty sure it’s due to the secondary window, etc. So yeah. Don’t forget, you can’t share FBO’s between windows, but you can share textures.