繁体   English   中英

OpenGL白色空白屏幕,但无响应

[英]OpenGL white blank screen and not responding

我将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;

您忘记了处理所有事件,因此SDL窗口只是在等待,在等待和在等待,从而“无响应” -简单地添加即可解决问题!

while (true) {
    SDL_PumpEvents();

    display();
    SDL_GL_SwapWindow(window);
}

您还可以通过调用SDL_PollEvent(SDL_Event *event)的循环手动拉出所有SDL_PollEvent(SDL_Event *event)

SDL_Event event;

while (SDL_PollEvent(&event)) {
    // Process the event...
}

维基

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM