我正在遵循一个相当简单的教程,所有文件都可以编译,并且在当前代码中我使用的是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制作的。我不知道为什么会这样并且没有错误发生。
如果任何人都有可能很好的解决方法,谢谢。
答案 0 :(得分:0)
已修复: 很简单,我已经在项目中添加了额外的文件。我需要从一个空项目中进行构建,希望这可以在将来对某人有所帮助。