EGL_ANDROID_framebuffer_target

Supported Hardware

Series6, Series6XE, Series6XT

Valid APIs

EGL 1.4

Descriptions

Android supports a number of different ANativeWindow implementations that can be used to create an EGLSurface. One implementation, which is used to send the result of performing window composition to a display, may have some device-specific restrictions. Because of this, some EGLConfigs may be incompatible with these ANativeWindows. This extension introduces a new boolean EGLConfig attribute that indicates whether the EGLConfig supports rendering to an ANativeWindow for which the buffers are passed to the HWComposer HAL as a framebuffer target layer.

Note

This extension is written against the wording of the EGL 1.4 Specification

Registry Link

https://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt

Example

// Set up the config attributes, specifying that we want a config which 
// supports rendering to an ANativeWindow for which the buffers are passed 
// to the HWComposer HAL as a framebuffer target layer. 
EGLint configAttribs[] =  
{ 
	EGL_SURFACE_TYPE, EGL_WINDOW_BIT, 
	EGL_RENDERABLE_TYPE , EGL_OPENGL_ES2_BIT, 
	EGL_FRAMEBUFFER_TARGET_ANDROID, EGL_TRUE, 
	EGL_NONE 
}; 
// Choose an appropriate configuration - just get the first available one that matches in this case 
EGLint iConfigs; 
EGLConfig eglConfig; 
eglChooseConfig(eglDisplay, configAttribs, &eglConfig, 1, &iConfigs); 
//the buffer will be passed to the HWComposer HAL as a framebuffer target layer 
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, (EGLNativeWindowType)nativeWindow, NULL);