On Nov 22, 2013, at 6:57 PM, Ronie Salgado <ronies...@gmail.com> wrote:
> 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. Yes and igor would love to have the time to avoid this and only use and share one memory > > 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. There is a simple tutorial example. May be check on the Athens repo or on the mailing-list (I have to run now) > I believe that athens is a vector graphics API, exact API. the idea is to have different back end. One that is the default one (balloon), one with cairo and probably some others in the future. > 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. You should have a look at the VM code and the graphics primitive. VM guys will tell you where you can find the latest version of VMMaker for Pharo. > > Greetings, > Ronie Salgado