对opengl的UWP支持

本文关键字:支持 UWP opengl | 更新日期: 2023-09-27 18:12:09

伙计们。我有一个用c++编写的opengl库。我知道我可以使用Angle,但正因为如此,我需要用C++编写我的整个应用程序。有没有一种方法可以在UWP中使用c++opengl,并且仍然使用c#作为主要语言?

对opengl的UWP支持

有没有一种方法可以在UWP中使用c++opengl,并且仍然使用c#作为主要语言?

ANGLE目前是唯一使OpenGL API在UWP中运行的方法。有关更多详细信息,请参阅此线程。

如果您想使用c#中的ANGLE,可以通过interop编写自己的。你也可以用C++编写你的底层OpenGL并封装它。然后在你的逻辑层用C#调用它。

幸运的是,几天前,与你有相同需求的人在GitHub上创建了一个问题,并从@mattleibow获得了样本@mattleibow在这个帖子中分享了他的代码。有关更多详细信息,请参考C#中XAML中声明的SwapChainPanel中的OpenGL曲面。

此外,ANGLE实际上是用于将OpenGL ES转换为DirectX。因此,我建议您改用Win2D。Win2D是一个新的即时模式2D绘图框架,适用于Windows8.1和Windows10上的XAML应用程序。它建立在DirectX的高性能基础上,但旨在提供C#和.NET开发人员所期望的方便和易用性。您可以参考此视频了解更多详细信息。

我意识到你提出这个问题已经很久了,但我也需要这样做,所以我制作了一个小的C#项目,展示如何从C#中使用ANGLE。它包括从C#到GL的最小绑定(因为OpenTK还没有针对UWP(,以及从ANGLE本身到模板应用程序的一部分,ANGLE本身具有所有SwapChainPanel等设置。你可以在这里查看。

我遇到了这个问题,所以我创建了自己的库。你可以用我的新图书馆(https://github.com/hamarb123/hamarb123.SharpGLES)它在UWP(和.NET Framework(上运行OpenGLES,为了便于使用,它甚至有一个GLESSwapChainPanel类。