如何向 Xamarin 表单应用程序添加简单的 OpenGL 功能

How to add trivial OpenGL functionality to Xamarin forms app

谁能帮忙解决以下问题?

我有一个普通的 Xamarin 表单应用程序正在运行,我想添加一个 OpenTK 视图。

以下工作正常:

在我的 MainPage.xaml.cs 中,我有一个按钮的以下事件处理程序,每次单击都会生成一个空的 OpenTK 视图:

private void OnXAMLButtonClicked(object sender, EventArgs e)
        {
            var view = new OpenGLView { HasRenderLoop = true };

            view.HeightRequest = 300;
            view.WidthRequest = 300;

            view.OnDisplay = r =>
            {
                //GL.ClearColor(red, green, blue, 1.0f);
            };

            m_SL.Children.Add(view);
        }

(其中 m_SL 是我的 StackLayout 的名称)。

每次点击我都会得到一个新的黑色 window。太好了。

现在,请看注释掉的那一行,那是因为值 GL 未定义。

此代码来自此处的简单示例:

https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.openglview?view=xamarin-forms

我在该示例的顶部看到以下内容:

使用 OpenTK.Graphics.ES30;

但是我不能包括这个,OpenTK 不被识别为命名空间。我预计必须将其添加为参考,但如何添加?

我可以在我的 .Android 项目中添加对它的引用,这样我就可以在我的 MainActivity.cs 页面中添加上面的 using 语句,但这不是它所属的位置(尽管我看到然后我定义了 GL,所以这证明我需要将这些 using 语句添加到我的 MainPage.xaml.cs 中以便定义 GL),但是就像我说的,我如何为包含的项目添加对 OpenTK 的引用MainPage.xaml.cs.

感谢您的帮助, 米奇.

----- 编辑 -----

感谢发帖者帮了我这么大忙,新问题参考System.Private.Core无法解决。这是我创建此错误的完整工作流程:

1:创建一个新项目。

这给了我三个项目:

2:在 OGLMobile 项目中更改为 .NET 标准 2.1:

.Android 和 .iOS 项目没有 .NET 选择选项。

3:将对 OpenTK 的引用添加到 OGLMobile 项目中:

4:OGLMobile 项目构建良好,但 .Android 项目给出:

如果我删除对 OpenTK 的引用,一切都会重新构建。如果我将 OpenTK Nuget 包添加到 .Android 项目没有区别,我仍然会遇到同样的错误。

这么近, 感谢您的任何建议。

您需要安装 Nuget 包 OpenTK.Graphics,然后才能使用它。

现在可以参考了:

注:OpenTK.Graphics4.0.1需要.NET Standard2.1.