人。 我有一个用c ++编写的opengl库。我知道我可以使用Angle但是因为这个我需要用C ++编写我的整个应用程序。有没有办法在UWP中使用c ++ opengl并仍然使用C#作为主要语言?
答案 0 :(得分:6)
有没有办法在UWP中使用c ++ opengl并仍然使用C#作为主要语言?
ANGLE目前是唯一方式让OpenGL API在UWP中运行。有关详细信息,请参阅this thread。
如果你想使用c#中的ANGLE,你可以通过互操作编写自己的。您也可以用C ++编写低级OpenGL内容并将其包装起来。然后在逻辑级别通过C#调用它。
幸运的是,与你有相同要求的人几天前在GitHub上创建了一个问题,并从@mattleibow获得了样本。 @mattleibow在this thread中分享了他的代码。有关详细信息,请参阅OpenGL surface from SwapChainPanel declared in XAML in C#。
此外,ANGLE实际上是将OpenGL ES转换为DirectX。所以我建议你改用Win2D。 Win2D是适用于Windows 8.1和Windows 10的XAML应用程序的新型即时模式2D绘图框架。它基于DirectX的高性能基础构建,但旨在提供C#和.NET开发人员所期望的便利性和易用性。更多细节,您可以参考this video。
答案 1 :(得分:0)
我意识到你提出这个问题需要很长时间,但我也需要这样做,所以把一个小的C#项目放在一起,展示如何使用C#中的ANGLE。它包括从C#到GL的最小绑定(因为OpenTK还没有针对UWP),以及来自ANGLE本身的模板应用程序的一部分,它具有所有SwapChainPanel等设置。您可以查看here。
答案 2 :(得分:0)
我遇到了这个问题,所以我创建了自己的库。 您可以使用我的新库(https://github.com/hamarb123/hamarb123.SharpGLES),该库在UWP(和.NET Framework)上运行OpenGL ES,它甚至还具有一个GLESSwapChainPanel类,以易于使用。