drawable.setGL(new DebugGL(drawable.getGL()));
if (!(drawable.getGL() instanceof DebugGL)) { drawable.setGL(new DebugGL(drawable.getGL())); }
        public void init(GLDrawable drawable) {            gl = drawable.getGL();            glu = drawable.getGLU();            drawable.setGL(new DebugGL(drawable.getGL()));            double[][] rect = new double[][]{{50.0, 50.0, 0.0},                                             {200.0, 50.0, 0.0},                                             {200.0, 200.0, 0.0},                                             {50.0, 200.0, 0.0}};            double[][] tri = new double[][]{{75.0, 75.0, 0.0},                                            {125.0, 175.0, 0.0},                                            {175.0, 75.0, 0.0}};            double[][] star = new double[][]{{250.0, 50.0, 0.0, 1.0, 0.0, 1.0},                                             {325.0, 200.0, 0.0, 1.0, 1.0, 0.0},                                             {400.0, 50.0, 0.0, 0.0, 1.0, 1.0},                                             {250.0, 150.0, 0.0, 1.0, 0.0, 0.0},                                             {400.0, 150.0, 0.0, 0.0, 1.0, 0.0}};            gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);            startList = gl.glGenLists(2);            GLUtesselator tobj = glu.gluNewTess();            TessCallback tessCallback = new TessCallback(gl, glu);            glu.gluTessCallback(tobj, GLU.GLU_TESS_VERTEX, tessCallback);            glu.gluTessCallback(tobj, GLU.GLU_TESS_BEGIN, tessCallback);            glu.gluTessCallback(tobj, GLU.GLU_TESS_END, tessCallback);            glu.gluTessCallback(tobj, GLU.GLU_TESS_ERROR, tessCallback);            gl.glNewList(startList, GL.GL_COMPILE);            gl.glShadeModel(GL.GL_FLAT);            glu.gluTessBeginPolygon(tobj, null);            glu.gluTessBeginContour(tobj);            glu.gluTessVertex(tobj, rect[0], rect[0]);            glu.gluTessVertex(tobj, rect[1], rect[1]);            glu.gluTessVertex(tobj, rect[2], rect[2]);            glu.gluTessVertex(tobj, rect[3], rect[3]);            glu.gluTessEndContour(tobj);            glu.gluTessBeginContour(tobj);            glu.gluTessVertex(tobj, tri[0], tri[0]);            glu.gluTessVertex(tobj, tri[1], tri[1]);            glu.gluTessVertex(tobj, tri[2], tri[2]);            glu.gluTessEndContour(tobj);            glu.gluTessEndPolygon(tobj);            gl.glEndList();            glu.gluTessCallback(tobj, GLU.GLU_TESS_VERTEX, tessCallback);            glu.gluTessCallback(tobj, GLU.GLU_TESS_BEGIN, tessCallback);            glu.gluTessCallback(tobj, GLU.GLU_TESS_END, tessCallback);            glu.gluTessCallback(tobj, GLU.GLU_TESS_ERROR, tessCallback);            glu.gluTessCallback(tobj, GLU.GLU_TESS_COMBINE, tessCallback);            gl.glNewList(startList + 1, GL.GL_COMPILE);            gl.glShadeModel(GL.GL_SMOOTH);            glu.gluTessProperty(tobj, GLU.GLU_TESS_WINDING_RULE, GLU.GLU_TESS_WINDING_POSITIVE);            glu.gluTessBeginPolygon(tobj, null);            glu.gluTessBeginContour(tobj);            glu.gluTessVertex(tobj, star[0], star[0]);            glu.gluTessVertex(tobj, star[1], star[1]);            glu.gluTessVertex(tobj, star[2], star[2]);            glu.gluTessVertex(tobj, star[3], star[3]);            glu.gluTessVertex(tobj, star[4], star[4]);            glu.gluTessEndContour(tobj);            glu.gluTessEndPolygon(tobj);            gl.glEndList();            glu.gluDeleteTess(tobj);        }//end init