无法在GLFW C ++中创建窗口

时间:2017-07-29 04:46:55

标签: c++ glfw

如果您关心/有帮助,有些背景知识。我对编程和C ++非常了解,我曾尝试过几次学习它但却无法保持兴趣。因为我无法想到一个有趣的项目要做,因为我学习。最终我想到制作一个游戏引擎(一个菜鸟的愚蠢想法,但这将是一个很好的学习经验,我很感兴趣。)所以我搜索了一个关于制作一个想法的系列,并找到了TheChernoProject的系列,我在这里。

我正试图在GLFW和C ++中创建一个窗口,但它一直在失败,我不知道该怎么做。

Main.cpp的

#include "src\graphics\window.h"


int main() {

using namespace tmge;
using namespace graphics;

Window window("Test", 1280, 720);

while (!window.windowClosed()) {
    window.update();
}


return 0;
}

window.h中

#pragma once

#include <GLFW\glfw3.h>
#include <iostream>

namespace tmge { namespace graphics {

class Window {

private:
    GLFWwindow *privateWindow;
    int privateWidth, privateHeight;
    const char *privateTitle;
    bool privateWindowClosed();
public:
    Window(const char *title, int width, int height);
    ~Window();
    bool init();
    void update() const;
    bool windowClosed() const;
};


} }

Window.cpp

#include "window.h"

namespace tmge { namespace graphics {

Window::Window(const char *title, int width, int height) {
    privateTitle = title;
    privateWidth = width;
    privateHeight = height;
    if (!init()) {
        glfwTerminate();
    }
}

Window::~Window() {
    glfwTerminate();
}

bool Window::init() {
    if (!glfwInit) {
        std::cout << "GLFW initialaztion failed" << std::endl;
        return false;
    }
    privateWindow = glfwCreateWindow(privateWidth, privateHeight, privateTitle, NULL, NULL);
    if (!privateWindow) {
        std::cout << "Failed to create GLFW window" << std::endl;
        return false;
    }
    glfwMakeContextCurrent(privateWindow);
    return true;

}

bool Window::windowClosed() const{
    return glfwWindowShouldClose(privateWindow);
}

void Window::update() const{
    glfwPollEvents();
    glfwSwapBuffers(privateWindow);
}

} }

0 个答案:

没有答案