如何在windows窗体应用程序中集成opengl窗口

时间:2014-06-30 09:22:24

标签: c# opengl tao-framework

我在c#中使用OpenGL和TaoFramework。我为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 个答案:

答案 0 :(得分:1)

GLUT是一个窗口工具包; WinForms是一个不同的窗口工具包。除非GLUT允许重新定位(不太可能),否则没有直接的方法将两者结合起来。

最好的解决方案是使用跨平台且维护良好的OpenTK.GLControl。 NuGet版本可在此处获取:https://www.nuget.org/packages/OpenTK.GLControl/

另一种解决方案是使用Tao.SimpleGlControl,这是仅限Windows且不再维护的。

答案 1 :(得分:0)

如果不搞乱Window句柄,我建议使用OpenTK,它使用Tao Framework。这个库有一个OpenGLControl,它可以将OpenGL图形集成到windows窗体中。