Я хочу поделиться контекстом главного окна GLFW в другом потоке, поэтому я пытаюсь поделиться контекстом главного окна.
#include <gl\glew.h>
#include <glfw3.h>
#include <thread>
int SCR_WIDTH = 800;
int SCR_HEIGHT = 600;
GLFWwindow *wnd = nullptr;
void wnd2(void)
{
GLFWwindow *wnd2 = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "window 2", nullptr, wnd);
if (wnd2 == nullptr)
{
std::cout << "New window Not created";
return;
}
else
std::cout << "New window created";
glfwMakeContextCurrent(wnd2);
// if i create a new window
//GLFWwindow* offscreen_context = glfwCreateWindow(800, 600, "", NULL, NULL);
//than i am able to create a new window
}
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
// --------------------
wnd = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", nullptr, nullptr);
if (wnd == nullptr)
{
std::cout << "window not created" << std::endl;
return -1;
}
glfwMakeContextCurrent(0); // have to disable the first to create the second window
std::thread wnd2thread(wnd2);
// Even if i try to set the main window context than also the secondary window is not created
//glfwMakeContextCurrent(wnd);
if (wnd == NULL)
{
std::cout << "Failed to create the first GLFW window" << std::endl;
glfwTerminate();
return -1;
}
while (true)
{
}
std::cout << "Hello World!\n";
}
Проблема, с которой я сталкиваюсь, заключается в том, что я могу создать только одно окнотолько.
Мне нужно отключить главное окно, чтобы создать другое окно в потоке.