我可以同时使用多种语言的OpenGL吗?

时间:2017-08-24 06:53:16

标签: c# c++ opengl

我在C#中有一个OpenGL程序,但我也想从C ++ DLL中执行OpenGL函数。 我的C ++库所做的更改是否会对C#程序生效?

修改: 为了更清楚,我想分享两种语言的OpenGL相同的上下文。

我是C ++的PInvoking函数,它使用我的C#代码中的OpenGL。

1 个答案:

答案 0 :(得分:4)

当前的OpenGL上下文是一个线程本地的全局状态。

这意味着只要C ++和C#代码在同一个线程中执行,那么在其中任何一个中发出的OpenGL命令都是兼容的。

但是,如果您正在处理多个/不同的线程,则需要使用wglMakeCurrent()在C ++中激活OpenGL上下文(假设它是在C#中创建的)。为了做到这一点,你必须以某种方式传播正确的句柄。