package jadex.application.space.envsupport.observer.graphics.opengl; import java.awt.Color; import javax.media.opengl.GL; import jadex.application.space.envsupport.observer.graphics.drawable.DrawableCombiner; import jadex.application.space.envsupport.observer.graphics.drawable.Primitive; public class RectangleGLRenderer extends AbstractGLRenderer { /** * Draws the primitive. * @param dc the DrawableCombiner drawing the object * @param primitive the primitive being drawn * @param obj the object being drawn * @param vp the viewport */ public void draw(DrawableCombiner dc, Primitive primitive, Object obj, ViewportJOGL vp) { GL gl = vp.getContext(); int dList = 0; try { dList = ((Integer) primitive.getRenderInfo(0)).intValue(); } catch (Exception e) { String listName = getClass().getName(); Integer list = vp.getDisplayList(listName); if(list == null) { dList = gl.glGenLists(1); gl.glNewList(dList, GL.GL_COMPILE); gl.glBegin(GL.GL_QUADS); gl.glVertex2d(-0.5, -0.5); gl.glVertex2d(0.5, -0.5); gl.glVertex2d(0.5, 0.5); gl.glVertex2d(-0.5, 0.5); gl.glEnd(); gl.glEndList(); list = new Integer(dList); vp.setDisplayList(listName, list); } dList = list.intValue(); primitive.setRenderInfo(0, list); } Color c = (Color)dc.getBoundValue(obj, primitive.getColor(), vp); gl.glColor4fv(c.getComponents(null), 0); if(setupMatrix(dc, primitive, obj, gl, vp)) gl.glCallList(dList); } }