OpenVG MQX Vybrid - buffer-handling / behaviour of eglMakeCurrent

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

OpenVG MQX Vybrid - buffer-handling / behaviour of eglMakeCurrent

ソリューションへジャンプ
1,291件の閲覧回数
slw
Contributor III

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

ラベル(2)
1 解決策
807件の閲覧回数
andre_silva
NXP Employee
NXP Employee

I contacted the Vybrid team and as you said, it is not supported. The solution can be provided, but in this case, customer needs to sign up for a special service.

regards,

Andre

元の投稿で解決策を見る

0 件の賞賛
返信
4 返答(返信)
807件の閲覧回数
slw
Contributor III

Update:

When I change my code in the main-loop to that:

while(1)

{

     eglMakeCurrent(disp0, surf0, surf0, ctx0)

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

     eglSwapbuffers(disp0, surf0)

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

     eglSwapbuffers(disp0, surf0);

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

     eglSwapbuffers(disp0, surf0);

     eglMakeCurrent(disp3, surf3, surf3, ctx3)

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

     eglSwapbuffers(disp3, surf3)

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

     eglSwapbuffers(disp3, surf3);

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

     eglSwapbuffers(disp3, surf3);

}

then the 2 layers are shown correctly. It seems that eglMakeCurrent always resets the internal draw-buffer-index to 0.

Is this an error inside eglMakeCurrent-function or is it possible to set the internal draw-buffer-index ?

Regards

Sebastian

0 件の賞賛
返信
807件の閲覧回数
karina_valencia
NXP Apps Support
NXP Apps Support

timesyssupport can you attend this case?

0 件の賞賛
返信
807件の閲覧回数
timesyssupport
Senior Contributor II

Unfortunately, we are not supporting OpenVG on this Vybrid part. Does the Freescale Vybrid team have any comment?

Thanks,

Timesys Support

0 件の賞賛
返信
808件の閲覧回数
andre_silva
NXP Employee
NXP Employee

I contacted the Vybrid team and as you said, it is not supported. The solution can be provided, but in this case, customer needs to sign up for a special service.

regards,

Andre

0 件の賞賛
返信