[英]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.