Hi,
I want to make usage of the PBuffer surface to implement some off-screen rendering. (No render to texture). I have to use PBuffer because of some kind of abstraction, where we do not have access to the final window. The PBuffer content will copied into a bitmap container where it will finally blitted into a window screen.
I already had some problems with the GLES 1.1 emulation win32 sdk, but finally found a workaround by creating an invisible window, call eglMakeCurrent to that surface and creating afterwards a Pbuffer surface. (I was already confused, why I have to do this. But PBuffer creation without a window surface always failed).
Now I switched to the latest GLES 2.0 emulation win32 sdk (OGLES2_WINDOWS_PCEMULATION_2.06.26.0649) and the same config attrib list (only extended by the EGL_RENDERABLE_TYPE to use EGL_OPENGL_ES2_BIT) does not return a
valid configuration, that supports PBuffer surfaces.
Here is the attribute list, I want to query:
static const EGLint configAttribs[] = {
EGL_BUFFER_SIZE, 32,
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_DEPTH_SIZE, 16,
EGL_COLOR_BUFFER_TYPE, EGL_RGB_BUFFER,
EGL_STENCIL_SIZE, EGL_DONT_CARE,
#if defined (GLES
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
#elif defined (GLES2)
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
#endif
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT | EGL_WINDOW_BIT,
EGL_NONE
};
[/CODE]
Any idea whats going wrong here?
It would be also nice to know, why I have to create a window surface before I am allowed to create a PBuffer surface with the GLES 1.1 sdk.
Some additional infos, I am using an ATI Radeon HD 5450 and use only the emulation sdks at the moment.
Regards
<br> static const EGLint configAttribs[] = {<br> EGL_BUFFER_SIZE, 32,<br> EGL_RED_SIZE, 8,<br> EGL_GREEN_SIZE, 8,<br> EGL_BLUE_SIZE, 8,<br> EGL_ALPHA_SIZE, 8,<br> EGL_DEPTH_SIZE, 16,<br> EGL_COLOR_BUFFER_TYPE, EGL_RGB_BUFFER,<br> EGL_STENCIL_SIZE, EGL_DONT_CARE,<br>#if defined (GLES <br> EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,<br>#elif defined (GLES2)<br> EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,<br>#endif <br> EGL_SURFACE_TYPE, EGL_PBUFFER_BIT | EGL_WINDOW_BIT,<br> EGL_NONE<br> };<br>
Any idea whats going wrong here?
It would be also nice to know, why I have to create a window surface before I am allowed to create a PBuffer surface with the GLES 1.1 sdk.
Some additional infos, I am using an ATI Radeon HD 5450 and use only the emulation sdks at the moment.
Regards