コード例 #1
0
    // 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();
    }
コード例 #2
0
 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;
 }
コード例 #3
0
        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();
        }