UWP支持OpenGL

3

大家好。我有一个用C++编写的OpenGL库。我知道我可以使用Angle,但是这样一来我就必须完全用C++编写我的应用程序。有没有一种方法可以在UWP中使用C++ OpenGL并仍然使用C#作为主要语言?


也许这个链接可以帮到你。你可以在微软文档中找到很多关于互操作性的信息。 - Kristian Vukusic
3个回答

6

有没有办法在UWP中使用C++ OpenGL并仍然使用C#作为主要语言?

目前,ANGLE是唯一的方式可以让OpenGL API在UWP上运行。更多细节请参考this thread

如果你想从C#中使用ANGLE,你可以通过交互编程自己编写。你也可以在C++中编写低级别的OpenGL代码并进行封装。然后在逻辑层中通过C#调用它。

幸运的是,有和你一样需求的人几天前在GitHub上提出了问题,并从@mattleibow那里获得了示例。 @mattleibow在此线程中分享了他的代码。更多细节,请参考C#中在XAML中声明的SwapChainPanel的OpenGL表面

此外,ANGLE实际上是将OpenGL ES翻译为DirectX。因此,我建议您使用Win2D。 Win2D是适用于Windows 8.1和Windows 10上的XAML应用程序的新型即时模式2D绘图框架。它建立在DirectX的高性能基础之上,但旨在提供C#和.NET开发人员所期望的便利性和易用性。更多详细信息,您可以参考此视频


谢谢,但我已经有一个用C++编写的OpenGL库,我需要将这个库集成到UWP中。重写为DirectX需要很长时间。 - Rustam Ibragimov
@RustamIbragimov 请参考C#中在XAML中声明的SwapChainPanel的OpenGL表面 - Sunteen Wu

0
我曾经遇到了这个问题,于是我创建了自己的库。你可以使用我的新库(https://github.com/hamarb123/hamarb123.SharpGLES),它可以在UWP(和.NET Framework)上运行OpenGL ES,甚至还有一个GLESSwapChainPanel类,方便易用。

0

我知道你提出这个问题已经有很长时间了,但我也需要这样做,所以我编写了一个小的C#项目,展示了如何从C#中使用ANGLE。它包括最少量的GL绑定到C#(因为OpenTK尚未针对UWP),以及来自ANGLE本身的模板应用程序的一部分,其中包含所有的SwapChainPanel等设置。你可以在这里查看。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接