Package k8.buffer

Source Code of k8.buffer.IndicesBuffer

package k8.buffer;

import k8.buffer.var.VARIndicesBuffer;
import k8.buffer.vbo.VBOIndicesBuffer;

import org.lwjgl.opengl.GLContext;


public abstract class IndicesBuffer extends Buffer {
   
    /**
     * Creates an instance of IndicesBuffer.
     *
     * @param initialcapacity
     *          Initial capacity (number of vertices)
     */
    public IndicesBuffer(int initialcapacity) {
        super(initialcapacity);
    }
   
    /**
     * Gets an instance of IndicesBuffer.
     *
     * @param initialcapacity
     *          Initial capacity (number of indices)
     */
    public static IndicesBuffer getInstance(int initialcapacity) {
        return ( GLContext.getCapabilities().GL_ARB_vertex_buffer_object ) ? new VBOIndicesBuffer(initialcapacity) : new VARIndicesBuffer(initialcapacity);
    }
   
    /** Adds the next three successive indices to the buffer */
    public void increment() {
      int elements = getElements();
      // Ensure another 12 bytes is available, check for growth, assign next 3
      if ( getSlice(12) == null ) {
        buffer.limit((elements+3)*4);
        elements = 0;
      }
      this.elements = elements;
      while ( buffer.hasRemaining() )  buffer.putInt(this.elements++);
      flush();
    }
   
    /** Tells OpenGL to render, using this buffer as the indices */
    public abstract void glDrawElements();

}
TOP

Related Classes of k8.buffer.IndicesBuffer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.