我想创建共享GLFW窗口,但GLFW无法创建第二个窗口。
我可以创建一个窗口,但不能创建两个窗口
这是我的密码。
我想在另一个线程中使用第二个窗口,这样我就可以共享它们的上下文。
# include "pch.h"
# include <iostream>
# include <gl\glew.h>
# include <glfw3.h>
int SCR_WIDTH = 1920;
int SCR_HEIGHT = 1080;
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// glfw window creation
// --------------------
GLFWwindow* sharedWindow = NULL;
GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", 0, sharedWindow);
if (window == NULL)
{
std::cout << "Failed to create the first GLFW window" << std::endl;
glfwTerminate();
return -1;
}
if (sharedWindow == NULL)
{
std::cout << "Failed to create the second GLFW window" << std::endl;
// glfwTerminate();
// return -1;
}
while (true)
{
}
std::cout << "Hello World!\n";
}
1条答案
按热度按时间kmbjn2e31#
share
是输入参数。请参阅glfwCreateWindow
。创建第一个窗口,并为第二个窗口第二次调用
glfwCreateWindow
:该窗口甚至可以在单独的线程中创建,但请注意,在创建第二个窗口时,您必须确保第一个窗口的OpenGL上下文不是当前的。