KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I would like to do offscreen rendering (in console environment without any WS) with FBOs. I know that it is necessary to create an OpenGL context, and at least a dummy window for any operation, therefore I did the following initialization: // Step 1 - Get the default display. eglDisplay = eglGetDisplay((EGLNativeDisplayType)0); // Step 2 - Initialize EGL. EGLint iMajorVersion, iMinorVersion; if (!eglInitialize(eglDisplay, &iMajorVersion, &iMinorVersion)) { printf("Error: eglInitialize() failed.\n"); goto cleanup; } // Step 3 - Make OpenGL ES the current API. eglBindAPI(EGL_OPENGL_ES_API); if (!TestEGLError("eglBindAPI")) { goto cleanup; } // Step 4 - Specify the required configuration attributes. EGLint pi32ConfigAttribs[5]; pi32ConfigAttribs[0] = EGL_SURFACE_TYPE; pi32ConfigAttribs[1] = EGL_WINDOW_BIT; pi32ConfigAttribs[2] = EGL_RENDERABLE_TYPE; pi32ConfigAttribs[3] = EGL_OPENGL_ES2_BIT; pi32ConfigAttribs[4] = EGL_NONE; // Step 5 - Find a config that matches all requirements. int iConfigs; if (!eglChooseConfig(eglDisplay, pi32ConfigAttribs, &eglConfig, 1, &iConfigs) || (iConfigs != 1)) { printf("Error: eglChooseConfig() failed.\n"); goto cleanup; } // Step 6 - Create a surface to draw to. EGLSurface eglSurface; eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, (EGLNativeWindowType)NULL, NULL); if (!TestEGLError("eglCreateWindowSurface")) goto cleanup; // Step 7 - Create a context. eglContext = eglCreateContext(eglDisplay, eglConfig, NULL, ai32ContextAttribs); if (!TestEGLError("eglCreateContext")) goto cleanup; // Step 8 - Bind the context to the current thread eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext); if (!TestEGLError("eglMakeCurrent")) goto cleanup; This type of initialization works on the target system, but if I draw something into the FBO, and after read it back (getReadPixels) always only get a black image. I have tried the same code above X11, where
Tags (comma-separated)
Save Edits
Cancel