ClientSize не обновляет ширину и высоту GameWindow в C# на Linux - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть следующий метод, который заботится о настройке размера окна после его загрузки (все это происходит в классе 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, но ошибка была исправлена, и я используйте изменяемое, а не фиксированное окно.

Кто-нибудь может мне помочь? Любая помощь будет с благодарностью оценена.

...