1

我有一个使用 Visual Studio 2008 在 Windows 上的简单程序。

在我的代码中,我使用 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。我建议您进行更好的编辑,这会有所帮助。在您进行多次编辑之前,我失去了发布问题的能力

4

1 回答 1

1

EGL 在 OpenGL ES 2.0(和其他 Khronos 图形 API)和计算机上运行的本机窗口系统(如 GNU/Linux 系统、Microsoft Windows 或 Mac OS X 的 Quartz 上常见的 X 窗口系统)之间提供了一个“粘合”层。在 EGL 可以确定绘图表面的类型或底层系统的任何其他特性之前,它需要打开与窗口系统的通信通道。因为每个窗口系统都有不同的语义,EGL 提供了一种基本的不透明类型——EGLDisplay——它封装了所有系统依赖项,用于与本地窗口系统交互。任何使用 EGL 的应用程序需要做的第一个操作是创建和初始化与本地 EGL 显示的连接。

于 2012-07-02T08:56:36.043 回答