如何向 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.Graphics的4.0.1
需要.NET Standard2.1
.
谁能帮忙解决以下问题?
我有一个普通的 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.Graphics的4.0.1
需要.NET Standard2.1
.