Hello, I want to know about the Pharo graphic system architecture, I whould like to know if there's some documentation explaining his inner works.
For NBOpenGL and Roassal 3D in particular, I'm having some flickering, which I think is related to the way that the OpenGL framebuffer is transferred into a pharo window. In NBOpenGL, rendering is done in a offscreen FBO, whose content is transferred into main memory y blitted into a pharo window. The pharo window of course must be blitted or renderer into the screen, which means anothere transfer into the GPU. In other words, we are a GPU->CPU->GPU memory roundtrip. The consequences of this are the lost of performance, the lost of double-buffering and which is more important, the lost v-sync. The lack of v-sync is seen in the way of tearing, which is more appreciated when moving on the X-axis in a 3d view, such as in the Roassal3D example in R3Example>>city. I have heard that in pharo 3, all of the graphics are being moving into Athens, a new graphics, for which I donr't know where's the documentation. I believe that athens is a vector graphics API, which several backends as cairo, which also has an opengl backend. I would like to share that OpenGL context to avoid that round-trip if possible, or use a native window for the OpenGL stuff, but to that I need to know how pharo graphics are done. Greetings, Ronie Salgado
