我正在学习如何使用 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的可移植库。