예제 #1
0
        /**
         * renderoi grafiikat
         */
        private void display()
        {
            if (!running)
            {
                return;
            }

            Gl.glLoadIdentity();

            // valittu objekti välkkymään
            if (selectedObj != -1)
            {
                // jos tasoa liikutettu, liikuta
                Gl.glTranslatef(((Layer)layers[selectedLayer]).sx, ((Layer)layers[selectedLayer]).sy, 0);

                baseObject o = (baseObject)((Layer)layers[selectedLayer]).objs[selectedObj];
                sin += 0.1f;
                Gl.glColor3f((float)Math.Sin((float)sin), 0, 0);
                o.render(false);
                Gl.glLoadIdentity();
            }

            if (tmpObj != null)
            {
                Gl.glTranslatef(((Layer)layers[selectedLayer]).sx, ((Layer)layers[selectedLayer]).sy, 0);

                if (!invert)
                {
                    tmpObj.render(true);
                    invert = !invert;
                }

                Gl.glLoadIdentity();
            }

            Gl.glFlush();
            Glut.glutSwapBuffers();
        }
예제 #2
0
        /**
         * jos suoritettu undo tai poistettu objekti, tyhjennetään
         *  ruutu ja piirretään kaikki uudelleen (paitsi poistettu)
         */
        public void updateAll()
        {
            Gl.glLoadIdentity();
            Gl.glClearColor(1, 1, 1, 1);
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);

            // renderoi kaikilta tasoilta
            for (int l = 0; l < layers.Count; l++)
            {
                for (int i = 0; i < ((Layer)layers[l]).objs.Count; i++)
                {
                    Gl.glTranslatef(((Layer)layers[l]).sx, ((Layer)layers[l]).sy, 0);

                    baseObject o = (baseObject)((Layer)layers[l]).objs[i];
                    if (o != null)
                    {
                        o.render(true);
                    }
                    Gl.glLoadIdentity();
                }
            }
        }