// Use this for initialization void Start() { MyRenderEngine render = new MyDirectX(); MyIShape shape = new MySphere(); shape.SetRenderEngine(render); shape.Draw(); MyRenderEngine renderOpenGl = new MyOpenGL(); shape.SetRenderEngine(renderOpenGl); shape.Draw(); }
protected override void OnSizeChanged(EventArgs e) { isSizeChanged = true; lock (lockObj) { Win32.wglMakeCurrent(hdc, hrc); MyOpenGL.glViewport(0, 0, Width, Height); MyOpenGL.glMatrixMode(MyOpenGL.GL_PROJECTION); MyOpenGL.glLoadIdentity(); MyOpenGL.gluPerspective(45.0, Width / Height, 0.01, 1000); MyOpenGL.glMatrixMode(MyOpenGL.GL_MODELVIEW); MyOpenGL.glLoadIdentity(); Win32.wglMakeCurrent(IntPtr.Zero, IntPtr.Zero); } isSizeChanged = false; }
private void draw() { MyOpenGL.glClear(MyOpenGL.GL_COLOR_BUFFER_BIT | MyOpenGL.GL_DEPTH_BUFFER_BIT); MyOpenGL.glLoadIdentity(); MyOpenGL.glBegin(MyOpenGL.GL_TRIANGLES); MyOpenGL.glColor3f(1.0f, 0, 0); MyOpenGL.glVertex3f(-1.0f, -1, -5); MyOpenGL.glColor3f(0, 1.0f, 0); MyOpenGL.glVertex3f(1.0f, -1, -5); MyOpenGL.glColor3f(0, 0, 1.0f); MyOpenGL.glVertex3f(0, 1.0f, -5); MyOpenGL.glEnd(); MyOpenGL.glBegin(MyOpenGL.GL_POINTS); for (var i = 0; i < vertices.Length / 3; i++) { MyOpenGL.glVertex3f(vertices[3 * i], vertices[3 * i + 1], vertices[3 * i + 2]); } MyOpenGL.glEnd(); MyOpenGL.glFlush(); }