如何使用 openGL 事件处理程序?[64位]



我正在学习如何使用 openGL,但我只找到使用 SDL 函数来管理窗口和事件的教程。

这是我在本教程中编写的代码:

#include <GL/gl.h>
#include <GL/glu.h>
#include <SDL/SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>
int main(int argc, char **argv)
{
  SDL_Init(SDL_INIT_VIDEO);
  SDL_WM_SetCaption("Mon premier programme OpenGL !",NULL);
  SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);
  bool continuer = true;
  SDL_Event event;
  while (continuer)
    {
      SDL_WaitEvent(&event);
      switch(event.type)
    {
        case SDL_QUIT:
          continuer = false;
    }
      glClear(GL_COLOR_BUFFER_BIT);
      glBegin(GL_TRIANGLES);
      glColor3ub(255,0,0);    glVertex2d(-0.75,-0.75);
      glColor3ub(0,255,0);    glVertex2d(0,0.75);
      glColor3ub(0,0,255);    glVertex2d(0.75,-0.75);
      glEnd();
      glFlush();
      SDL_GL_SwapBuffers();
    }
  SDL_Quit();
  return 0;

}

我可以使用 SDL 函数来管理 windox,但我会使用 openGL 事件处理程序。

有人知道如何更换以及如何使用它吗?

谢谢

OpenGL 没有事件处理程序。它侧重于绘图,而不是输入。

要处理窗口事件和输入,您需要使用操作系统工具,或者使用像 GLFW、GLUT 或 SDL 这样的库来帮助/抽象它们。

有人知道如何更换以及如何使用它吗?

不。因为它不存在。

OpenGL专注于一件事:将内容绘制到某个帧缓冲区。对于窗口帧缓冲,OpenGL没有创建或管理它的能力,并且完全依赖于操作系统的功能。SDL, GLUT, GLFW, Qt, ...以易于使用的方式收缩包装与操作系统交互的过程,具有跨平台API的可移植库。

最新更新