微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Opentk 显示黑屏而不是三角形

如何解决Opentk 显示黑屏而不是三角形

我创建了一个简单的应用程序来显示一个三角形,但它只显示黑色窗口。

    class Program
    {
        static void Main(string[] args)
        {
            GameWindow window = new GameWindow(800,600);
            game game = new game(window);

            window.Run(1.0/60.0);
        }
    }

    class game
    {
        GameWindow window = new GameWindow();
        public game(GameWindow window)
        {
            this.window = window;

            window.Load += Window_Load;
            window.UpdateFrame += Window_UpdateFrame;
            window.RenderFrame += Window_RenderFrame;
        }

        private void Window_RenderFrame(object sender,FrameEventArgs e)
        {
            GL.ClearColor(Color.CornflowerBlue);
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
            GL.Viewport(0,800,600);


            GL.Begin(PrimitiveType.Triangles);
            GL.Color3(Color.OrangeRed);
            GL.Vertex2(0,0);
            GL.Vertex2(1,0);
            GL.Vertex2(0,1);

            GL.End();

            window.SwapBuffers();
        }

        private void Window_UpdateFrame(object sender,FrameEventArgs e)
        {

        }

        private void Window_Load(object sender,EventArgs e)
        {

        }
    }

解决方法

您不小心创建了 2 个 GameWindow 对象。只需创建一个 GameWindow

class Program
{
    static void Main(string[] args)
    {
        GameWindow window = new GameWindow(800,600);
        game game = new game(window);

        window.Run(1.0 / 60.0);
    }
} 

class game
{
    GameWindow window; // <--- remove: = new GameWindow();
        
    public game(GameWindow window)
    {
        this.window = window;

        window.Load += Window_Load;
        window.UpdateFrame += Window_UpdateFrame;
        window.RenderFrame += Window_RenderFrame;
    }

    // [...]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。