UWP支持opengl

时间:2016-10-09 13:07:31

标签: c# c++ opengl-es uwp

人。 我有一个用c ++编写的opengl库。我知道我可以使用Angle但是因为这个我需要用C ++编写我的整个应用程序。有没有办法在UWP中使用c ++ opengl并仍然使用C#作为主要语言?

3 个答案:

答案 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类,以易于使用。