I am new to the use of VBOs and I am trying to use them to render an object that was already rendered by another application. I mean, a first application displays the object in its window and then I would like to display that same object again in my own window.
I read that it was possible to use glXCreateContext() to create a new rendering context that will share VBOs with a preexisting one but I saw that “all rendering contexts that share a single display-list space must themselves exist in the same address space”. What does that mean exactly ?
If I manage to get the GLXContext of the first application and use it to create a new glx rendering context with glXCreateContext, will I be able to use the VBOs that were created by the first application ?
In practical terms sharing address space means that you are able to pass a pointer from application A to application B and B is then able to read the value that A has written there previously. Typically different applications run in different OS processes which do not share address space, they are isolated from each other by the OS. This is in contrast to threads of a single application, which all have access to the same shared address space.
Thank you for your answer, it’s more clear now !
In fact I call the first application inside the second one so I guess they share the same address space.
If the “applications” are distinct programs, they won’t share the same address space.
My question was kind of abstract : the first “application” is OpenSceneGraph, it’s an API for 3D visualization, the second one is the software I usually use for 3D visualisation.
I call OpenSceneGraph rendering functions inside the draw implementation of my software.