ARBVertexBufferObject.glBindBufferARB(
usingVBO = true; ARBVertexBufferObject.glBindBufferARB(
    public void prepVBO(GeomBatch g) {        if (!capabilities.GL_ARB_vertex_buffer_object)            return;                VBOInfo vbo = g.getVBOInfo();                if (vbo.isVBOVertexEnabled() && vbo.getVBOVertexID() <= 0) {            if (g.getVertexBuffer() != null) {            	            	Object vboid;				if ((vboid = vboMap.get(g.getVertexBuffer())) != null) {					vbo.setVBOVertexID(((Integer) vboid).intValue());				} else {            		                g.getVertexBuffer().rewind();	                buf.rewind();	                ARBVertexBufferObject.glGenBuffersARB(buf);	                vbo.setVBOVertexID(buf.get(0));	                vboMap.put(g.getVertexBuffer(), vbo.getVBOVertexID());	                	                ARBVertexBufferObject.glBindBufferARB(	                        ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, vbo	                                .getVBOVertexID());	                ARBVertexBufferObject.glBufferDataARB(	                        ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, g	                                .getVertexBuffer(),	                        ARBVertexBufferObject.GL_STATIC_DRAW_ARB);				}            }        }                if ((g.getType() & SceneElement.TRIANGLEBATCH) != 0) {					if (vbo.isVBOIndexEnabled() && vbo.getVBOIndexID() <= 0) {				TriangleBatch tb = (TriangleBatch) g;				if (tb.getIndexBuffer() != null) {					Object vboid;					if ((vboid = vboMap.get(tb.getIndexBuffer())) != null) {						vbo.setVBOIndexID(((Integer) vboid).intValue());					} else {						tb.getIndexBuffer().rewind();						buf.rewind();						ARBVertexBufferObject.glGenBuffersARB(buf);						vbo.setVBOIndexID(buf.get(0));						vboMap.put(tb.getIndexBuffer(), vbo.getVBOIndexID());						ARBVertexBufferObject.glBindBufferARB(ARBVertexBufferObject.GL_ELEMENT_ARRAY_BUFFER_ARB, vbo								.getVBOIndexID());						ARBVertexBufferObject.glBufferDataARB(ARBVertexBufferObject.GL_ELEMENT_ARRAY_BUFFER_ARB, tb								.getIndexBuffer(), ARBVertexBufferObject.GL_STATIC_DRAW_ARB);					}				}			}        }                if (vbo.isVBONormalEnabled() && vbo.getVBONormalID() <= 0) {            if (g.getNormalBuffer() != null) {                            	Object vboid;				if ((vboid = vboMap.get(g.getNormalBuffer())) != null) {					vbo.setVBONormalID(((Integer) vboid).intValue());				} else {	            	g.getNormalBuffer().rewind();	                buf.rewind();		            ARBVertexBufferObject.glGenBuffersARB(buf);		            vbo.setVBONormalID(buf.get(0));		            vboMap.put(g.getNormalBuffer(), vbo.getVBONormalID());		            	                ARBVertexBufferObject.glBindBufferARB(	                        ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, vbo	                                .getVBONormalID());	                ARBVertexBufferObject.glBufferDataARB(	                        ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, g	                                .getNormalBuffer(),		            		ARBVertexBufferObject.GL_STATIC_DRAW_ARB);				}            }        }        if (vbo.isVBOColorEnabled() && vbo.getVBOColorID() <= 0) {            if (g.getColorBuffer() != null) {            	Object vboid;				if ((vboid = vboMap.get(g.getColorBuffer())) != null) {					vbo.setVBOColorID(((Integer) vboid).intValue());				} else {	                g.getColorBuffer().rewind();	                buf.rewind();	            	ARBVertexBufferObject.glGenBuffersARB(buf);	            	vbo.setVBOColorID(buf.get(0));	            	vboMap.put(g.getColorBuffer(), vbo.getVBOColorID());	            		                ARBVertexBufferObject.glBindBufferARB(	                        ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, vbo	                                .getVBOColorID());	                ARBVertexBufferObject.glBufferDataARB(	                        ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, g	                                .getColorBuffer(),	                        ARBVertexBufferObject.GL_STATIC_DRAW_ARB);				}            }        }        if (vbo.isVBOTextureEnabled()) {            for (int i = 0; i < g.getNumberOfUnits(); i++) {                if (vbo.getVBOTextureID(i) <= 0                        && g.getTextureBuffer(i) != null) {                	Object vboid;                	if ((vboid = vboMap.get(g.getTextureBuffer(i))) != null) {    					vbo.setVBOTextureID(i, ((Integer) vboid).intValue());    				} else {                            					g.getTextureBuffer(i).rewind();                        buf.rewind();                        ARBVertexBufferObject.glGenBuffersARB(buf);                        vbo.setVBOTextureID(i, buf.get(0));                        vboMap.put(g.getTextureBuffer(i), vbo.getVBOTextureID(i));                                                ARBVertexBufferObject.glBindBufferARB(                                ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, vbo                                        .getVBOTextureID(i));                        ARBVertexBufferObject.glBufferDataARB(                                ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, g                                        .getTextureBuffer(i),                                ARBVertexBufferObject.GL_STATIC_DRAW_ARB);                    }                }            }        }        buf.clear();    }