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


Reply via email to