gpt4 book ai didi

c - 桌面上没有 egl 的 Opengl es 2.0 (windows)

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:22 26 4
gpt4 key购买 nike

我在 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) 和在您的计算机上运行的 native 窗口系统,例如X 窗口系统常见于 GNU/Linux 系统、Microsoft Windows 或Mac OS X 的 Quartz。在 EGL 可以确定绘图表面的类型之前,或底层系统的任何其他特性,它需要打开与窗口系统的通信 channel 。因为每个窗口系统都有不同的语义,EGL 提供了一个基本的不透明类型——EGLDisplay——封装了所有系统与 native 窗口系统接口(interface)的依赖项。首先使用 EGL 的任何应用程序需要做的操作是创建和初始化与本地 EGL 显示的连接。

关于c - 桌面上没有 egl 的 Opengl es 2.0 (windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11290093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com