List of usage examples for org.lwjgl.opengl GL15 nglBufferData
public static void nglBufferData(int target, long size, long data, int 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); }