AnsweredAssumed Answered

OpenVG MQX Vybrid - buffer-handling / behaviour of eglMakeCurrent

Question asked by Sebastian Waldraff on Jul 15, 2014
Latest reply on Aug 7, 2014 by Andre Silva

Hi,

 

My system includes the following components:

- Freescale MQX4.1

- Freescale Vybrid VF522

- OpenVG 0.7.0

 

I want to use OpenVG to render into 2 different layers. At the moment my solution is something like that (using layer 0 and layer 3):

...

fbdisp0 = fbws_open_display(0, &buf_info0);

fbdisp3 = fbws_open_display(3, &buf_info0);

 

fbws_create_window(fbdisp0, 0, 0, info.width, info.height);

fbws_create_window(fbdisp3, 0, 0, info.width, info.height);

 

eglBindAPI(EGL_OPENVG_API);

....

eglCreateContext(disp0, cfg[i], ...);

eglCreateContext(disp3, cfg[i], ...);

eglCreateWindowSurface(disp0, ....);

eglCreateWindowSurface(disp3, ....);

....

while(1)

{

     eglMakeCurrent(disp0, surf0, surf0, ctx0);

     .... calling vg-functions to render to layer 0.....

     eglSwapbuffers(disp0, surf0);

 

     eglMakeCurrent(disp3, surf3, surf3, ctx3);

     .... calling vg-functions to render to layer .....

     eglSwapbuffers(disp3, surf3);

}

 

The framebuffer-pointer from the single DCU-layer is switched correctly : buffer[0] > buffer[1] > buffer[2] > buffer[0] > buffer[1] .....

But the OpenVG-Library always renders his data to buffer[0].

The problem is still there when I only use 1 context, 1 layer, ... but using eglMakeCurrent.

 

Any hints ?

 

Regards

Sebastian

Outcomes