Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用OpenGL渲染一个QMainWindow的两个QWidget?_C++_Qt_Opengl_Qwidget_Hwnd - Fatal编程技术网

C++ 如何使用OpenGL渲染一个QMainWindow的两个QWidget?

C++ 如何使用OpenGL渲染一个QMainWindow的两个QWidget?,c++,qt,opengl,qwidget,hwnd,C++,Qt,Opengl,Qwidget,Hwnd,在Qt5.13的一个窗口中有两个小部件,一个小部件应该渲染预览,而另一个小部件应该使用另一个相机渲染。我们使用EGL。我应该为主线程中使用的每个QWidget/HWND创建一个OpenGL上下文,并呈现给两个HWND,还是两个子线程各自负责每个上下文?我们需要共享OpenGL资源(着色器/纹理)。这里有一个关于EGL和OpenGL上下文的讨论。我没有这方面的经验 egl编程,但在qt桌面应用程序中,可以在两个不同的视图上共享相同的上下文,在一个视图上使用不同的摄像头。这里讨论了egl和openg

在Qt5.13的一个窗口中有两个小部件,一个小部件应该渲染预览,而另一个小部件应该使用另一个相机渲染。我们使用EGL。我应该为主线程中使用的每个QWidget/HWND创建一个OpenGL上下文,并呈现给两个HWND,还是两个子线程各自负责每个上下文?我们需要共享OpenGL资源(着色器/纹理)。

这里有一个关于EGL和OpenGL上下文的讨论。我没有这方面的经验 egl编程,但在qt桌面应用程序中,可以在两个不同的视图上共享相同的上下文,在一个视图上使用不同的摄像头。

这里讨论了egl和opengl上下文。我没有这方面的经验
egl编程,但在qt桌面应用程序中,在两个不同的视图上共享相同的上下文,在一个视图上使用不同的摄像头。

您解决了问题吗?@JerikcXIONG是的。需要为每个小部件创建一个线程。只需在两个单独的小部件中获得两个HWND,并在两个线程中使用EGL创建两个单独的OpenGL上下文。所有与EGL和OpenGL相关的操作都必须在小部件的thread.Cool中。您有任何示例代码吗@heLomaN@JerikcXIONG下面是一个关于将EGL与HWND结合使用的博客。很抱歉没有公开演示代码,但只需创建一个std::thread并在其中执行某些操作。您解决了问题吗?@JerikcXIONG是的。需要为每个小部件创建一个线程。只需在两个单独的小部件中获得两个HWND,并在两个线程中使用EGL创建两个单独的OpenGL上下文。所有与EGL和OpenGL相关的操作都必须在小部件的thread.Cool中。您有任何示例代码吗@heLomaN@JerikcXIONG下面是一个关于将EGL与HWND结合使用的博客。很抱歉没有公开的演示代码,只需创建一个std::thread并在其中执行一些操作。