我在Windows上使用Visual Studio 2008的简单程序。
在我的代码中,我使用 gl 函数,即 #include GLES2/gl2.h 以及 #include EGL/egl.h
在代码中,我使用 EGL 初始化上下文。 如下所示。
它创建一个窗口和CreateEGLContext。
我没有在屏幕上显示我的结果。 而是存储在内存中,所以我不会交换显示和表面缓冲区。
我的问题你我想从这段代码中删除 egl.h 怎么可能。
谁能给我任何想法。提前谢谢你
GLboolean CreateWindow1 ( ESContext *esContext, const char* title, GLint width, GLint height, GLuint flags )
{
GLuint attribList[] =
{
EGL_RED_SIZE, 5,
EGL_GREEN_SIZE, 6,
EGL_BLUE_SIZE, 5,
EGL_ALPHA_SIZE, (flags & ES_WINDOW_ALPHA) ? 8 : EGL_DONT_CARE,
EGL_DEPTH_SIZE, (flags & ES_WINDOW_DEPTH) ? 8 : EGL_DONT_CARE,
EGL_STENCIL_SIZE, (flags & ES_WINDOW_STENCIL) ? 8 : EGL_DONT_CARE,
EGL_SAMPLE_BUFFERS, (flags & ES_WINDOW_MULTISAMPLE) ? 1 : 0,
EGL_NONE
};
if ( esContext == NULL )
{
return GL_FALSE;
}
esContext->width = width;
esContext->height = height;
if ( !WinCreate ( esContext, title) )
{
return GL_FALSE;
}
if ( !CreateEGLContext ( esContext->hWnd, &esContext->eglDisplay, &esContext->eglContext, &esContext->eglSurface,
attribList) )
{
return GL_FALSE;
}
return GL_TRUE;
}
我的答案是我假设的解决方案。 或者,如果我们愿意,我们可以创建自己的框架或使用任何其他框架:)
@Nicol Bolas:非常感谢您的编辑。我将OpenGL添加到我的问题中,因为做OpenGL的人理解OpenGL ES,因为它是OpenGL的子APL。我建议你做更好的编辑,这会有所帮助。在您多次编辑之前,我失去了发布问题的能力
EGL在OpenGL ES 2.0(和其他Khronos图形)之间提供了一个"粘合"层API)和计算机上运行的本机窗口系统,例如X Window 系统常见于 GNU/Linux 系统、Microsoft Windows 或Mac OS X的Quartz。在 EGL 确定哪些类型的绘图曲面之前,或底层系统的任何其他特征,它需要以打开与窗口系统的通信通道。由于每个窗口系统都有不同的语义,因此 EGL 提供了一个基本的不透明类型(EGLDisplay),封装了所有系统用于与本机窗口系统接口的依赖项。第一个任何使用 EGL 的应用程序都需要执行的操作是创建和初始化与本地 EGL 显示器的连接。