c ++ VS17-GL窗口为空白,标题为解决方案名称

时间:2019-01-22 00:04:43

标签: c++ opengl glfw glew glm-math

我正在遵循一个相当简单的教程,所有文件都可以编译,并且在当前代码中我使用的是openGL,glew和glfw。窗口显示不正确,我什至不显示。我有我的main.cpp:

#include "stdafx.h"
#include "Libs.h"
int main(int argc, char **argv) { 

    glfwInit();

const int WINDOW_WIDTH = 640;
const int WINDOW_HEIGHT = 480;
int FRAME_BUFFER_WIDTH = 0;
int FRAME_BUFFER_HEIGHT = 0;

glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 

GLFWwindow* window = glfwCreateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "Custom Name", NULL, NULL);

glfwGetFramebufferSize(window, &FRAME_BUFFER_WIDTH, &FRAME_BUFFER_HEIGHT);
glViewport(0, 0, FRAME_BUFFER_WIDTH, FRAME_BUFFER_HEIGHT);

glfwMakeContextCurrent(window);

glewExperimental = GL_TRUE;

if (glfwInit() != GLEW_OK) {
    std::cout << "GLFW INIT != GL_OK \n";
    glfwTerminate();
}

//Main loop

while (!glfwWindowShouldClose(window)) {

    glfwPollEvents();

    glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

    glfwSwapBuffers(window);
    glFlush();
}

glfwTerminate();
return 1;

}

和我的Libs.h

#pragma once

#include <iostream>
#include <glew.h>
#include <glfw3.h>
#include <glm.hpp>
#include <vec2.hpp>
#include <vec3.hpp>
#include <vec4.hpp>
#include <mat4x4.hpp>
#include <gtc/matrix_transform.hpp>
#include <gtc/type_ptr.hpp>
#include <SOIL2.h>

整个程序编译正常,并且打开时没有任何错误。我在Visual Studio中运行时看不到正在显示的任何控制台文本(std :: cout)。 问题是当它打开时,窗口显示如下:Window that's displayed

如您所见,窗口完全空白,没有绿色(应该是绿色)。另外,窗口名称是我的解决方案名称,而不是我提供的名称(“自定义名称”)。最后,窗口的图标是一个包,我认为这不是GL,而是Visual Studio制作的。我不知道为什么会这样并且没有错误发生。

如果任何人都有可能很好的解决方法,谢谢。

1 个答案:

答案 0 :(得分:0)

已修复: 很简单,我已经在项目中添加了额外的文件。我需要从一个空项目中进行构建,希望这可以在将来对某人有所帮助。