Example usage for org.lwjgl.opengl GL15 nglBufferData

List of usage examples for org.lwjgl.opengl GL15 nglBufferData

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL15 nglBufferData.

Prototype

public static void nglBufferData(int target, long size, long data, int usage) 

Source Link

Document

Unsafe version of: #glBufferData BufferData

Usage

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}/*  ww  w .ja  va 2 s  .c o  m*/
 */
@Override
public void glBufferData(int target, Int8Array data, int usage) {
    GL15.nglBufferData(target, data.remaining(), MemoryUtil.memAddress(data.<ByteBuffer>data()), usage);
}

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}//www  . ja  v  a 2 s . co  m
 */
@Override
public void glBufferData(int target, Int16Array data, int usage) {
    GL15.nglBufferData(target, data.remaining(), MemoryUtil.memAddress(data.<ByteBuffer>data()), usage);
}

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}/*w  w w  . j a  v  a2s  .c  om*/
 */
@Override
public void glBufferData(int target, Int32Array data, int usage) {
    GL15.nglBufferData(target, data.remaining(), MemoryUtil.memAddress(data.<ByteBuffer>data()), usage);
}

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}/*from  ww w  .java 2s .  co  m*/
 */
@Override
public void glBufferData(int target, UInt8Array data, int usage) {
    GL15.nglBufferData(target, data.remaining(), MemoryUtil.memAddress(data.<ByteBuffer>data()), usage);
}

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}//  w  ww . ja  v a 2  s  . c o  m
 */
@Override
public void glBufferData(int target, UInt16Array data, int usage) {
    GL15.nglBufferData(target, data.remaining(), MemoryUtil.memAddress(data.<ByteBuffer>data()), usage);
}

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}/*from   w  w w  .  j  a  v a 2s  . co  m*/
 */
@Override
public void glBufferData(int target, UInt32Array data, int usage) {
    GL15.nglBufferData(target, data.remaining(), MemoryUtil.memAddress(data.<ByteBuffer>data()), usage);
}

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}//from  w w  w. j a  va2 s .com
 */
@Override
public void glBufferData(int target, Float16Array data, int usage) {
    GL15.nglBufferData(target, data.remaining(), MemoryUtil.memAddress(data.<ByteBuffer>data()), usage);
}

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}/*from www .  j  a v  a 2  s .  com*/
 */
@Override
public void glBufferData(int target, Float32Array data, int usage) {
    GL15.nglBufferData(target, data.remaining(), MemoryUtil.memAddress(data.<ByteBuffer>data()), usage);
}

From source file:com.samrj.devil.gl.VertexBuffer.java

License:Open Source License

/**
 * Completes this vertex buffer, uploading its vertex data to the GPU and
 * freeing local resources./*from ww  w  .j  ava2s.  c o m*/
 */
public void end() {
    ensureState(State.READY);
    if (numVertices <= 0)
        throw new IllegalStateException("No vertices emitted.");

    vbo = GL15.glGenBuffers();
    int prevBinding = GL11.glGetInteger(GL15.GL_ARRAY_BUFFER_BINDING);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vbo);
    GL15.nglBufferData(GL15.GL_ARRAY_BUFFER, numVertices * vertexSize(), vertexBlock.address,
            GL15.GL_STATIC_DRAW);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, prevBinding);

    vramUsage += vertexBlock.size * 8L;
    vertexBlock.free();
    vertexBlock = null;
    vertexBuffer = null;

    if (maxIndices > 0) {
        if (numIndices > 0) {
            ibo = GL15.glGenBuffers();
            prevBinding = GL11.glGetInteger(GL15.GL_ELEMENT_ARRAY_BUFFER_BINDING);
            GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, ibo);
            GL15.nglBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, numIndices * 4, indexBlock.address,
                    GL15.GL_STATIC_DRAW);
            GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, prevBinding);
        }

        vramUsage += indexBlock.size * 8L;
        indexBlock.free();
        indexBlock = null;
        indexBuffer = null;
    }

    state = State.COMPLETE;

    Profiler.addUsedVRAM(vramUsage);
}

From source file:com.samrj.devil.graphics.MeshDrawer.java

License:Open Source License

public MeshDrawer(Mesh mesh) {
    this.mesh = mesh;

    //Set up attributes.
    position = new Attribute(VEC3, mesh.positionOffset, true);
    normal = new Attribute(VEC3, mesh.normalOffset, mesh.hasNormals);
    uvs = new HashMap<>();
    for (int i = 0; i < mesh.uvLayers.length; i++) {
        Attribute color = new Attribute(VEC2, mesh.uvOffsets[i], true);
        uvs.put(mesh.uvLayers[i], color);
    }//from  ww  w .j a  v  a  2 s  .  c om
    tangent = new Attribute(VEC3, mesh.tangentOffset, mesh.hasTangents);
    colors = new HashMap<>();
    for (int i = 0; i < mesh.colorLayers.length; i++) {
        Attribute color = new Attribute(VEC3, mesh.colorOffsets[i], true);
        colors.put(mesh.colorLayers[i], color);
    }

    AttributeType groupsType, weightType;
    switch (mesh.numGroups) {
    case 0:
        groupsType = NONE;
        weightType = NONE;
        break;
    case 1:
        groupsType = INT;
        weightType = FLOAT;
        break;
    case 2:
        groupsType = VEC2I;
        weightType = VEC2;
        break;
    case 3:
        groupsType = VEC3I;
        weightType = VEC3;
        break;
    case 4:
        groupsType = VEC4I;
        weightType = VEC4;
        break;
    default:
        throw new IllegalArgumentException("Vertex group count over four.");
    }

    groups = new Attribute(groupsType, mesh.groupIndexOffset, mesh.numGroups > 0);
    weights = new Attribute(weightType, mesh.groupWeightOffset, mesh.numGroups > 0);
    material = new Attribute(INT, mesh.materialOffset, mesh.hasMaterials);

    vbo = GL15.glGenBuffers();
    int prevBinding = GL11.glGetInteger(GL15.GL_ARRAY_BUFFER_BINDING);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vbo);
    GL15.nglBufferData(GL15.GL_ARRAY_BUFFER, mesh.vertexBlock.size, mesh.vertexBlock.address,
            GL15.GL_STATIC_DRAW);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, prevBinding);

    ibo = GL15.glGenBuffers();
    prevBinding = GL11.glGetInteger(GL15.GL_ELEMENT_ARRAY_BUFFER_BINDING);
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, ibo);
    GL15.nglBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, mesh.indexBlock.size, mesh.indexBlock.address,
            GL15.GL_STATIC_DRAW);
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, prevBinding);

    attributes = new HashMap<>();

    Profiler.addUsedVRAM(mesh.vertexBlock.size * 8L);
    Profiler.addUsedVRAM(mesh.indexBlock.size * 8L);
}