EGL/OpenGL ES - Rendering Frames to Program Memory

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

EGL/OpenGL ES - Rendering Frames to Program Memory

1,993件の閲覧回数
jinshil
Contributor I

I would like to render Open GL frames to client memory so I can use the pixel data in other APIs, and I need to do this very quickly.

The bottleneck for me is getting the pixel data from Open GL to program memory.  I've tried the following methods with success, but they are all too slow (about 70ms per frame):

glReadPixels

eglCopyBuffers

eglLockSurfaceKHR() followed by eglQuerySurface() w/ EGL_BITMAP_POINTER_KHR

I see there are other APIs like glTexDirectVIV and EGL Images (as documented at Using OpenGL ES to Accelerate Apps with Legacy 2D GUIs | Intel® Software ) but I haven't been able to get them to work because they all seem to be designed for pushing data from program memory to Open GL, but not from Open GL to program memory.

I've also tried using a Pixmap Surface, but that also seems to be one-way (e.g. program memory to OpenGL); I just get a black pixmap after drawing my scene.  I tried using glFlush() and glFinish() to ensure the OpenGL pipeline was finished, but that resulted in a program crash at the glFinish() call.

What's the fastest way to render an OpenGL frame to program memory so it can be used in other APIs?

I'm using Windows Embedded Compact 2013 on an iMX6DL board.

ラベル(2)
0 件の賞賛
返信
1 返信

1,440件の閲覧回数
CarlosCasillas
NXP Employee
NXP Employee

Deactivated user​, are you able to help here?

0 件の賞賛
返信