QNX eglGetConfigs源码范例
时间: 2023-07-05 08:13:51 浏览: 177
以下是QNX操作系统中eglGetConfigs函数的源码范例:
```C
EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)
{
EGLBoolean rc = EGL_FALSE;
if (!num_config)
{
_EGL_POST_ERROR(EGL_BAD_PARAMETER, "eglGetConfigs: num_config is NULL");
return EGL_FALSE;
}
if (configs == NULL && config_size > 0)
{
_EGL_POST_ERROR(EGL_BAD_PARAMETER, "eglGetConfigs: configs is NULL and config_size is > 0");
return EGL_FALSE;
}
if (config_size < 0)
{
_EGL_POST_ERROR(EGL_BAD_PARAMETER, "eglGetConfigs: invalid config_size");
return EGL_FALSE;
}
if (dpy == EGL_NO_DISPLAY)
{
_EGL_POST_ERROR(EGL_BAD_DISPLAY, "eglGetConfigs: invalid display");
return EGL_FALSE;
}
if (!dpy->initialized)
{
_EGL_POST_ERROR(EGL_NOT_INITIALIZED, "eglGetConfigs: display not initialized");
return EGL_FALSE;
}
if (dpy->num_configs <= 0)
{
*num_config = 0;
return EGL_TRUE;
}
if (configs)
{
if (config_size < dpy->num_configs)
{
_EGL_POST_ERROR(EGL_BAD_PARAMETER, "eglGetConfigs: configs is too small");
return EGL_FALSE;
}
memcpy(configs, dpy->configs, sizeof(EGLConfig) * dpy->num_configs);
}
*num_config = dpy->num_configs;
return EGL_TRUE;
}
```
该函数的作用是获取EGL显示的配置列表。输入参数包括EGLDisplay,配置数组和配置数组大小。num_config参数返回实际获取的配置数量。函数返回EGL_TRUE表示成功,EGL_FALSE表示失败。
该函数的实现包括一系列的参数有效性检查和错误处理,确保了函数的安全性和正确性。在获取配置列表时,如果配置数组大小不足,则返回EGL_FALSE。如果配置数组为空,则只返回实际配置数量,不进行数据复制操作。
阅读全文