我在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();
}
}
答案 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窗体中。