2017-08-24 82 views
-1

我在C#中有一个OpenGL程序,但我也想从C++ DLL执行OpenGL函数。 我的C++库所做的更改是否会对C#程序生效?我可以同时使用多种语言的OpenGL吗?

编辑: 为了更清楚起见,我想分享两种语言的OpenGL相同的上下文。

我是从我的C#代码中使用OpenGL的C++的函数。

+2

这似乎是一个坏主意。将UI和图形保存在一个应用程序中,并让该应用程序处理与用户界面和图形相关的所有内容。然后,您可以将密集的*非* UI /图形工作卸载到C++库。 –

+0

是的,我不会这样做。这只是好奇心。可能吗? –

+0

您是否希望C++和C#共享opengl上下文,或者让两个上下文在同一个应用程序中以不同的语言并行生活? – Frank

回答

4

当前OpenGL上下文是线程局部全局状态。

这意味着只要C++和C#代码在同一个线程中执行,那么在任何一个中发布的OpenGL命令都是兼容的。但是,如果您正在处理多个/不同的线程,则需要使用wglMakeCurrent()激活C++中的OpenGL上下文(假设它是使用C#创建的)。为了做到这一点,你必须以某种方式传播适当的句柄。

相关问题