【发布时间】:2014-01-05 03:17:02
【问题描述】:
我正在使用 SDL2.00 和 OpenGL 来创建程序。该程序目前不应该做任何事情,它只是一个测试平台。但是我遇到了一个问题。当我使用 SDL_CreateWindow 创建窗口时,窗口进入忙碌状态并停止响应。程序流程并没有真正受此影响,但窗口本身无法正常工作。它所做的只是显示一个白色的空白窗口并且不接受任何输入,不能调整大小,不能移动,不能退出。我将附上代码,但我怀疑它是否与代码相关,因为我已经使用 SDL 制作了一些程序,它们似乎工作得很好。
使用 VS2013 SDL2.00 OpenGL
=========主=========
#include "stdafx.h"
void init()
{
glClearColor(0.0, 0.0, 0.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, 640.0 / 480.0, 1.0, 500.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(0.0, 2.0, -5.0);
glVertex3f(-2.0, -2.0, -5.0);
glVertex3f(2.0, -2.0, -5.0);
glEnd();
}
int main(int argc, char* argv[]){
SDL_Init(SDL_INIT_VIDEO);
SDL_Window * window;
window = SDL_CreateWindow("OpenGLTest", 300, 300, 640, 480, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
init();
while (true){
display();
SDL_GL_SwapWindow(window);
}
return 0;
}
=========stdafx======
#pragma once
#include <iostream>
#include <SDL.h>
#include <Windows.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#define PI 3.14159265
using namespace std;
【问题讨论】:
-
您对此进行了多长时间的调试?你进入你的主循环了吗?你进入你的绘图循环了吗?