【问题标题】:How to use the openGL events handler ? [64 BITS]如何使用 openGL 事件处理程序? [64 位]
【发布时间】:2016-03-16 11:08:29
【问题描述】:

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

有人知道如何更换和使用吗?

谢谢

【问题讨论】:

  • “openGL 事件处理程序”...什么?比如...GLUT,也许吧?
  • 使用 GLUT 进行 OpenGL 用户输入的一个教程是 these course notes:网上还有很多。

标签: events opengl


【解决方案1】:

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

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

【讨论】:

  • 您能告诉我如何在我之前的代码中添加 GLUT 事件处理程序吗?
  • @ballain732 网上有很多关于如何使用 glut 的教程和文档。
【解决方案2】:

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

没有。因为它不存在。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多