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

时间:2016-03-16 11:08:29

标签: events opengl

我正在学习如何使用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函数来管理windoxs,但我会使用openGL事件处理程序。

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

由于

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

  

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

没有。因为它不存在。

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