is EGL necessary for OpenVG?
I am confused by EGL spec. It mentioned that it was in interface between OpenVG and native windows system. Here is what I don't understanding:
1. Why cann't we just open the framebuffer driver for OpenVG application
and write to there directly?
2. Why "context" and "surface"s' exist are must for EGL and OpenVG?
Maybe I don't get the true meaning of "context" and "surface"...
Why cann't we just have either "surface" or "context" ?
3. For OpenVG, under what condition may we allocate EGL's
"Window surface", "PBuffers surface" or "Pixmap surface"?
Re: is EGL necessary for OpenVG?
Let myself answer my own question, if I am wrong, please correct me.
1. Yes, you may create "frame buffer" and let EGL create surface and display based on
target "frame buffer". All you need to know is understand EGL and find a way to
creat a link in between.
2. context : define openvg setting, such as RGB bits,etc...Both EGL and OpenVG would
create context structure, and there is a pointer to link OpenVG Context to EGL
surface: create drawable value, here "drawable" means color buffer,
including RGB buffer and mask buffer (or alpha buffer) . If one use GTK as window system, GTK created context will link to EGLsurface. So, one need both context and surface because they served for different need.
3. This is not easy to answer, it depends on what you would like to do, for example, if
one use opengl as underline rasterizer, it may create "PBuffer" and allow opengl to
tread it as "texture" and render to the surface. Not sure when "pixmem buffer will be
used here? "Window surface",for example, if one wish to render an openvg graphic on
GTK, this is the surface that maybe used.
Any feedback are welcome.