wang-bin / mdk-sdk

multimedia development kit. download:
https://sourceforge.net/projects/mdk-sdk/files/
289 stars 32 forks source link

在Windows上如何正确使用ANGLE EGL作为OpenGL渲染的后端 #154

Closed axojhf closed 11 months ago

axojhf commented 12 months ago

之前在尝试在C# Avalonia上调用mdk,Avalonia貌似默认使用AngleEgl渲染(把Avalonia切换到wgl就能显示出了),尝试过修改GL_EGL,EGL_ANGLE环境变量,但是不起作用,不知道在Windows正确调用ANGLE的姿势是什么样的

wang-bin commented 12 months ago

Avalonia是否带了libEGL.dll 和 libGLESv2.dll? 目前mdk会尝试加载这两个dll,失败的话就用不了。Avalonia这边是否提供类似GetProcAddress的接口用于获取OpenGL(ES)接口?有的话把函数指针给我我这边可以去调用这个而不是加载dll,这样的话即使ANGLE静态链接到app里也没问题,不过我这边还没实现需要稍微改下。

wang-bin commented 12 months ago

你可以发个可运行的测试程序让我看看

axojhf commented 12 months ago

Avalonia是否带了libEGL.dll 和 libGLESv2.dll? 目前mdk会尝试加载这两个dll,失败的话就用不了。Avalonia这边是否提供类似GetProcAddress的接口用于获取OpenGL(ES)接口?有的话把函数指针给我我这边可以去调用这个而不是加载dll,这样的话即使ANGLE静态链接到app里也没问题,不过我这边还没实现需要稍微改下。

有一个av_libglesv2.dll的库 nuget链接

官方的OpenGL控件有提供GetProcAddress,不过我看见c的头文件里mdkGLRenderAPI的GetProcAddress项是NOT IMPLENETED,不知道有没有计划实现调用

wang-bin commented 12 months ago

av_libglesv2.dll不行。看来我得实现下mdkGLRenderAPI的GetProcAddress,之前因为我用的场景不需要就没实现

axojhf commented 12 months ago

av_libglesv2.dll不行。看来我得实现下mdkGLRenderAPI的GetProcAddress,之前因为我用的场景不需要就没实现

好的,感谢了

wang-bin commented 12 months ago

试下最新的nightly build包 https://sourceforge.net/projects/mdk-sdk/files/nightly/mdk-sdk-windows-desktop-vs2022.7z/download 。使用方法可以参考glfw、qt的例子 https://github.com/wang-bin/mdk-examples/commit/96426f4d9e270378158cc3707075bf1ff51ccf13

axojhf commented 11 months ago

试下最新的nightly build包 https://sourceforge.net/projects/mdk-sdk/files/nightly/mdk-sdk-windows-desktop-vs2022.7z/download 。使用方法可以参考glfw、qt的例子 wang-bin/mdk-examples@96426f4

可以正常工作了,大佬速度真快。 (自测我自己Avalonia这边选wgl渲染的gpu占用比angle egl的要低一点,要是不为了兼容性,wgl其实貌似也够了)

wang-bin commented 11 months ago

你能否给 mdk-examples 加个最简单的Avalonia例子?

axojhf commented 11 months ago

你能否给 mdk-examples 加个最简单的Avalonia例子?

C#的binding还在做,之后我再给mdk-examples交一个pr吧