0

我在 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();


    }
    }
4

2 回答 2

1

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

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

另一种解决方案是使用Tao.SimpleGlControl,它仅适用于 Windows,不再维护。

于 2014-07-01T08:57:39.850 回答
0

在不乱用窗口句柄的情况下,我建议使用使用 Tao 框架的 OpenTK。这个库有一个 OpenGLControl,它可以将 OpenGL 图形集成到 Windows 窗体中。

于 2014-06-30T13:53:35.400 回答