eglCreateWindowSurface 参数
时间: 2024-01-20 21:03:05 浏览: 241
`eglCreateWindowSurface`是EGL函数之一,它用于创建窗口表面。它的参数包括:
- `display`:EGL显示连接的句柄,由`eglGetDisplay`获取。
- `config`:用于创建窗口表面的EGL配置。
- `window`:与窗口表面相关联的本地窗口句柄,可以是`ANativeWindow`、`EGLNativeWindowType`或`EGLNativePixmapType`类型。
- `attrib_list`:窗口表面属性列表,以`EGL_NONE`结尾。
示例代码:
```c++
EGLDisplay display;
EGLConfig config;
EGLSurface surface;
EGLContext context;
// 初始化EGL显示连接
display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(display, 0, 0);
// 获取EGL配置
EGLint config_attribs[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_NONE
};
EGLint num_configs;
eglChooseConfig(display, config_attribs, &config, 1, &num_configs);
// 创建本地窗口句柄,可以是ANativeWindow或其他类型
ANativeWindow* window = ...;
// 创建窗口表面
EGLint surface_attribs[] = {
EGL_NONE
};
surface = eglCreateWindowSurface(display, config, window, surface_attribs);
// 创建EGL上下文
EGLint context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attribs);
// 将窗口表面与EGL上下文绑定
eglMakeCurrent(display, surface, surface, context);
```
在这个示例中,我们首先初始化EGL显示连接,然后获取EGL配置。然后,我们创建本地窗口句柄,可以是ANativeWindow或其他类型。接下来,我们使用`eglCreateWindowSurface`函数创建窗口表面,并使用`eglCreateContext`函数创建EGL上下文。最后,我们将窗口表面与EGL上下文绑定,以便进行渲染。
阅读全文