c# - OpenTK:为什么 GraphicsMode 不可用?
问题描述
我刚开始学习 OpenTK,在阅读本教程时偶然发现了一个问题。
这是我尝试过的:
using System;
using OpenTK;
using OpenTK.Graphics;
using OpenTK.Windowing.Desktop;
using OpenTK.Windowing.GraphicsLibraryFramework;
namespace Testing
{
public class GraphicsWindow : GameWindow
{
public GraphicsWindow(int width, int height, string title) : base(width, height, GraphicsMode.Default, title)
{
}
}
}
由于某种原因找不到 Enum GraphicsMode(应该在命名空间 OpenTK.Graphics 中找到)。另一个是 GameWindow 没有带有 4 个参数的构造函数。
我已经安装了最新版本的 OpenTK Nuget 包 (4.0.6)。我创建的项目以 .NET Core 为目标。
有任何想法吗?
解决方案
本教程基于为 .NET 框架编写的 OpenTK 3.x。OpenTK 4.x 是为 .NET 核心编写的。在 3.x 中,它是命名空间的 GameWindow
一部分OpenTK.Graphics
。现在该类包含在OpenTK.Windowing.Desktop
其中并且行为不同。构造函数有 2 个参数,GameWindowSettings
并且NativeWindowSettings
.
namespace Testing
{
public class GraphicsWindow : GameWindow
{
public GraphicsWindow(int width, int height, string title)
: base(
new GameWindowSettings(),
new NativeWindowSettings()
{
Size = new OpenTK.Mathematics.Vector2i(width, height),
Title = title
})
{ }
}
}
或者创建一个静态工厂方法:
namespace Testing
{
public class GraphicsWindow : GameWindow
{
public static GraphicsWindow New(int width, int height, string title)
{
GameWindowSettings setting = new GameWindowSettings();
NativeWindowSettings nativeSettings = new NativeWindowSettings();
nativeSettings.Size = new OpenTK.Mathematics.Vector2i(width, height);
nativeSettings.Title = title;
return new GraphicsWindow(setting, nativeSettings);
}
public GraphicsWindow(GameWindowSettings setting, NativeWindowSettings nativeSettings)
: base(setting, nativeSettings)
{}
}
}
var myGraphicsWindow = GraphicsWindow.New(800, 600);
推荐阅读
- flutter - 为什么每次我将 ListView 添加到我的 Column 时,所有小部件都会消失?
- swiftui - 如何防止工作表在 SwiftUI 中使其后面的视图变暗或删除不必要的填充?
- angular - 我可以重新抛出 500 的角度 http 拦截器吗?
- sql - Node.js mssql 与 SQL 服务器的多个并发连接相互干扰
- reactjs - React Native 中的重新渲染问题
- javascript - setTimeout 限制 http 请求
- python - 从字典和列表生成字典
- java - 在枚举基类中编写通用静态方法,可以提取子类实例进行杰克逊转换
- python - pos的相对布局位置问题
- javascript - 如何检查用户 x 是否在聊天中发送了两条以上的消息并隐藏他的名字