[osg-users] Synchronizing with textures uploads.

Altin Gjata altingjataj at gmail.com
Thu Mar 8 04:18:37 PST 2018

Hi Robert.

This has become such a big (psychological even) problem to me, that I'm ready to rewrite this whole thing from scratch if it need be.

I don't know what code to provide more. This is basically all I do. All I have left out are details on converting matrices from OpencCV to OpenGL, and using a circular_buffer to post true / false booleans that are read by a class that derives from GraphicsContext::SwapCallback to decide whether to allow or not swapping buffers.

I use (the default) DrawThreadPerContext for the moment.

Steeping through the code, It seems that uploading the image is done by applyTexImage_subload() called from within TextureRectangle::apply(state) called from a GraphicsThread. And this operation is triggered by renderingTraversals(). It just doesn't upload in time and the background rectangle drawn by this renderingTraversal() uses the previous image.

Is there any way I can trigger applyTexImage_subload() sooner?
Would it help if I used another camera that also uses the same ImageStream as texture and renders to a small texture, and set its rendering order before that of the camera that renders the background?

I don't know what else to do, other than presuming that this source file is cursed and start creating a new file and rewriting this part of the program from the beginning.

Thank you!


Read this topic online here:

More information about the osg-users mailing list