c++ - Share an EGLImage Between Different Applications / Processes on Embedded Linux / ARM -
i'm designing egl 1.4/opengl es 2.0 applications in c++ on embedded linux/arm platform doesn't have windowing system.
basically, want share textures/renderbuffers between independent applications -- let's phone call them app "a" , app "b".
to so, first thought of downloading render buffer using glreadpixels() (from app a) in buffer in shared memory opening shared memory app b , upload the buffer using glteximage2d() or gltexsubimage2d() .
after initial testing, turned out quite unefficient/slow method. decided utilize platform's egl/gles extensions (as returned eglquerystring() , glgetstring()) include:
my objective create eglimage in app (e.g. gl texture, using eglimagekhr sharedeglimage = eglcreateimagekhr(dpy, ctx, egl_gl_texture_2d_khr, textureid, imageattributes) ) share sharedeglimage app b can mapped pixel info of 1 of app b's own gl textures using gleglimagetargettexture2does() .
however, of egl/gl abstractions, eglimage opaque construction (i.e. void* ), wouldn't create sense map shared memory in order share across processes. hence question:
is there way share eglimage across independent processes ?
thanks !
on android, need create utilize of gralloc. gralloc allocated memory sharable across processes since surface flinger uses.
this come huge health warning these apis private platform , may not portable between devices or versions.
edit: link implementation , not terribly helpful.
c++ opengl-es-2.0 embedded-linux egl
No comments:
Post a Comment