Как интегрировать окно OpenGL в приложении Windows Form

Я использую OpenGL и TaoFramework в C# . Я создал окно для openGL, исключая форму Windows, и я не знаю, как я могу интегрировать это окно в форму Windows.

  [STAThread]
        static void Main()
        {




            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_DOUBLE | Glut.GLUT_RGB | Glut.GLUT_DEPTH);
            Glut.glutGetWindow();
            Glut.glutInitWindowSize(600, 600);
            Glut.glutInitWindowPosition(700, 100);
            Glut.glutCreateWindow("Lang Yuzer Robot Arm");

            Gl.glEnable(Gl.GL_COLOR_MATERIAL);
            Gl.glEnable(Gl.GL_LIGHTING);
            Gl.glEnable(Gl.GL_LIGHT0);
            Gl.glEnable(Gl.GL_DEPTH_TEST);
            Gl.glEnable(Gl.GL_NORMALIZE);
            Gl.glEnable(Gl.GL_CULL_FACE);

            Glut.glutDisplayFunc(Form1.myDisplay);
            Glut.glutReshapeFunc(Form1.myReshape);
            Glut.glutIdleFunc(Form1.myIdle);


            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

                  Glut.glutMainLoop();


    }
    }

2 ответа

GLUT - это оконный инструментарий; WinForms - это другой оконный инструментарий. Если GLUT не позволяет переопределение (маловероятно), не существует простого способа объединить оба.

Лучшее решение будет использовать OpenTK.GLControl, который кроссплатформенный и ухоженный. Версия NuGet доступна здесь: https://www.nuget.org/packages/OpenTK.GLControl/

Другое решение было бы использовать Tao.SimpleGlControl, который только для окон и больше не поддерживается.

Не возиться с дескрипторами окна, я бы предложил использовать OpenTK, который использует Tao Framework. Эта библиотека имеет OpenGLControl, который позволяет интегрировать графику OpenGL в форму Windows.

Другие вопросы по тегам