簡體   English   中英

在 C++ 中創建 GLFW OpenGL Window 時遇到問題

[英]Trouble Creating a GLFW OpenGL Window in C++

這是我正在處理的當前代碼:

int main() {

    glfwInit();

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

    GLFWwindow *window = glfwCreateWindow(WIDTH, HEIGHT, "OpenGL", NULL, NULL);

    if (nullptr == window) {
        std::cout << "Failed to create GLFW Window" << std::endl;
        glfwTerminate();

        return EXIT_FAILURE;
    }

在運行時,未創建 window,我收到失敗消息。 當我定義它時,我不明白為什么 window 是一個空指針。 我錯過了什么嗎? 謝謝您的幫助。

根據 GLFW 文檔,如果請求的GLFW_OPENGL_ANY_PROFILE上下文版本小於 3.2(並且 GLFW 有一個與平台無關的 check.CreateWindow 內置glfwCreateWindow ,則GLFW_OPENGL_PROFILE window 提示值為

請參閱: https://www.glfw.org/docs/3.3/window_guide.html#GLFW_OPENGL_PROFILE_hint

GLFW_OPENGL_PROFILE指定要為其創建上下文的 OpenGL 配置文件。 可能的值是 GLFW_OPENGL_CORE_PROFILE 或 GLFW_OPENGL_COMPAT_PROFILE 之一,或 GLFW_OPENGL_ANY_PROFILE 不請求特定配置文件。 如果請求低於 3.2 的 OpenGL 版本,則必須使用 GLFW_OPENGL_ANY_PROFILE。 如果請求 OpenGL ES,則忽略此提示。

特別是部分:“如果請求低於 3.2 的 OpenGL 版本,則必須使用 GLFW_OPENGL_ANY_PROFILE。”

在您的情況下,您將收到 GLFW 錯誤。 特別是, 正是這個- 無論平台/操作系統如何,如果您通過glfwSetErrorCallback()設置了 GLFW 錯誤處理程序 function ,您會看到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM