/** * Removes the geometry data from main memory (and disables it). */ public void unload() { synchronized ( LOCK ) { if ( data != null ) { data.freeBuffers(); data = null; } } }
gl.glGenBuffersARB( 3, glBufferObjectIds, 0 ); FloatBuffer vertexBuffer = data.getVertices(); ShortBuffer indexBuffer = (ShortBuffer) data.getTriangles(); Buffer normalsBuffer = data.getNormals();
triangle[0] = triangle[1] = triangle[2] = Arrays.copyOf( bbox[0], 2 ); FloatBuffer vertices = getData().getVertices().asReadOnlyBuffer(); vertices.rewind(); while ( vertices.hasRemaining() ) {
indexBuffer = getIndexBuffer( rowsPerMt ); return new MeshFragmentData( pooledByteBuffer, vertexBuffer, normalsBuffer, indexBuffer );
/** * Render the fragment data. * * @param gl */ public void render( GL gl ) { if ( !isEnabled() ) { LOG.warn( "Current fragment is not enabled, discarding it." ); return; } gl.glBindBufferARB( GL.GL_ARRAY_BUFFER_ARB, glBufferObjectIds[0] ); gl.glVertexPointer( 3, GL.GL_FLOAT, 0, 0 ); gl.glBindBufferARB( GL.GL_ARRAY_BUFFER_ARB, glBufferObjectIds[1] ); gl.glNormalPointer( normalGLType, 0, 0 ); gl.glBindBufferARB( GL.GL_ELEMENT_ARRAY_BUFFER_ARB, glBufferObjectIds[2] ); gl.glDrawElements( GL.GL_TRIANGLES, data.getNumTriangles() * 3, GL.GL_UNSIGNED_SHORT, 0 ); }
FloatBuffer vertexBuffer = fragment.getData().getVertices().asReadOnlyBuffer(); vertexBuffer.rewind();
LOG.debug( "Found a gpu cached texture, but is was not fullfilled." ); int cap = ( request.getFragment().getData().getVertices().capacity() / 3 ) * NUMBER_OF_BYTES;