У меня есть следующий метод, который заботится о настройке размера окна после его загрузки (все это происходит в классе MyClass, который является подклассом GameWindow).
protected override void OnLoad( EventArgs e )
{
// called during application initialization
GL.ClearColor( 0, 0, 0, 0 );
GL.Enable( EnableCap.Texture2D );
GL.Disable( EnableCap.DepthTest );
GL.Hint( HintTarget.PerspectiveCorrectionHint, HintMode.Nicest );
Console.WriteLine(Width.ToString() + " " + Height.ToString()); // 640, 480
ClientSize = new Size( 640, 400 );
app = new MyApplication();
Console.WriteLine(Width.ToString() + " " + Height.ToString()); // 640, 480
app.screen = new Surface( Width, Height );
Sprite.target = app.screen;
screenID = app.screen.GenTexture();
app.Init();
}
У меня есть проблема с ClientSize, так как кажется, что введенные значения воспринимаются как предложение. Независимо от того, что я положил в него, ширина и высота всегда остаются 640 и 400 соответственно. Я ожидаю, что это изменит эти значения. Я проверил с другом, который работает Windows, и у него это работает, как ожидалось. Я бегу Linux и чувствую, что проблема связана с этим, хотя я не уверен. Я использую Mono для компиляции. И я уже рассмотрел несколько вещей:
Есть этот отчет об ошибке, который выглядит так, как будто он говорит о моей проблеме: https://github.com/opentk/opentk/issues/259, но ошибка была исправлена, и я используйте изменяемое, а не фиксированное окно.
Кто-нибудь может мне помочь? Любая помощь будет с благодарностью оценена.