/** * 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(); }
/** * 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(); } } }