2016-08-06 7 views
0

GLFWの助けを借りてOpenGLで空白ウィンドウを作成しようとしています。以下の私のコードオープンGLで空白のウィンドウを作成しようとすると、異常な出力が発生する

#include <stdio.h> 
#include <stdlib.h> 

#include <GL/glew.h> 

#include <glfw3.h> 
GLFWwindow* window; 

#include <glm/glm.hpp> 
using namespace glm; 

int main(void) 
{ 

    glfwInit(); 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 
    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); 
    window = glfwCreateWindow(800,600,"learnopengl",NULL,NULL); 
    if (window == NULL) 
    { 
     fprintf(stderr,"there is a problem with window creation\n"); 
     glfwTerminate(); 
     return -1; 
    } 
    glfwMakeContextCurrent(window); 

    glewExperimental = GL_TRUE; 
    if (glewInit() != GLEW_OK) 
    { 
     fprintf(stderr,"Failed to initialize GLEW\n"); 
     return -1; 
    } 
    int width, height; 
    glfwGetFramebufferSize(window,&width,&height); 

    glViewport(0,0,width,height); 

while(!glfwWindowShouldClose(window)) 
{ 
    glfwPollEvents(); 
    glfwSwapBuffers(window); 
} 


    glfwTerminate(); 
} 

ですが、私は黒の空白の代わりに上記のコードを実行しようとすると、それは、新しく作成されたウィンドウ内の私の現在の画面の例を示します。

+0

OpenGLを初めて起動したときも同じ問題がありました。それは、欠けている依存関係や古いバージョンのものが残っていた。私はそれがどれだったかを正確に覚えていないが、正しい方向に向けるべきである。 – RunOrVeith

答えて

5

なぜこのコードが空白のウィンドウになると思われますか?

仕様に従って、バッファを交換すると、バックバッファの内容はとなり、未定義になります(当初はもちろん未定義です)。結果として、あなたが得るべき出力も未定義であり、基本的に何かが現れるかもしれません。

定義済みの出力が必要な場合は、レンダーループにglClear(GL_COLOR_BUFFER_BIT)を追加します。

関連する問題