我正在学习如何使用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事件处理程序。
有人知道如何更换以及如何使用它吗?
由于
答案 0 :(得分:4)
OpenGL没有事件处理程序。它侧重于绘图,而不是输入。
要处理窗口事件和输入,您需要使用操作系统工具,或使用GLFW,GLUT或SDL等帮助/抽象它们的库。
答案 1 :(得分:1)
有人知道如何更换以及如何使用它吗?
没有。因为它不存在。
OpenGL专注于一件事:将内容绘制到某些帧缓冲区。对于窗口框架缓冲区,OpenGL无法创建或管理它,并且完全依赖于操作系统功能。 SDL,GLUT,GLFW,Qt,...以易于使用的方式收缩包装与OS交互的过程,具有跨平台API的可移植库。