The Khronos Group - a non-profit industry consortium to develop, publish and promote open standard, royalty-free media authoring and acceleration standards for desktop and handheld devices, combined with conformance qualification programs for platform and device interoperability.

If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

is EGL necessary for OpenVG?

Dear Sir,
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
context.
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.