c ++ VS17 - окно GL пустое, а заголовок - это имя решения

Я следую довольно простому руководству, и все файлы компилируются, и я использую 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>

Все компилируется и открывается без ошибок. Я не вижу текст консоли, который я показываю (std :: cout), когда я работаю в Visual Studio. Проблема в том, что при открытии окно отображается следующим образом: Отображаемое окно

Как видите, окно полностью пустое и нет зеленого цвета (который должен быть). Кроме того, имя окна - это имя моего решения, а не то, которое я ему дал («Пользовательское имя»). Наконец, значок окна - это пакет, что, как мне кажется, означает, что это делает не GL, а Visual Studio. Я понятия не имею, почему это происходит, и никаких ошибок не возникает.

Если у кого-то есть возможное исправление, это было бы здорово, спасибо.


person Blake    schedule 22.01.2019    source источник
comment
Я не использовал это раньше, но я уверен, что cout не будет печатать в созданном вами окне. Кроме того, я вспоминаю, что в VS возникла проблема с небольшими программами, когда консоль открывалась, программа запускалась и консоль закрывалась в течение миллисекунд после завершения программы. Попробуйте добавить ошибку в конец main, чтобы убедиться, что это не то, что происходит.   -  person Umer Amjad    schedule 22.01.2019
comment
Вроде ничего не делал, консоль не появлялась.   -  person Blake    schedule 22.01.2019


Ответы (1)


Исправлено: довольно просто, я создал свой проект с уже существующими дополнительными файлами. Мне нужно было сделать это из пустого проекта, надеюсь, это поможет кому-то в будущем.

person Blake    schedule 22.01.2019