创建后更改 GameWindow 的 GraphicsMode

Change GameWindow's GraphicsMode after creation

OpenTK中创建GameWindow时可以指定samples的数量。在下面的代码中 samples 设置为 4(GraphicsMode 构造函数的最后一个参数)

class MainWindow : GameWindow {
    MainWindow() : base(1920, 1080, new GraphicsMode(new ColorFormat(8), 8, 8, 4)) {
    }
}

是否可以在 window 创建后更改该数字?我想这样做是为了在游戏设置中实现多重采样选项。

简答:否

长答案:GraphicsMode 用于创建特定于平台的底层 window,仅此而已; GameWindow 不存储任何信息,因此无法修改。特定于平台的 window 存储在 ReadOnly 变量中,因此您也无法修改它。

从我所做的少量研究来看,OpenGL 似乎不允许您在创建帧缓冲区后更改它的多重采样设置。

如果您想更改 GraphicsMode,则必须在用户更改设置后重新创建您的 GameWindow(这是绝大多数游戏的处理方式)。