public void setVertexBufferAt(int index, VertexBuffer3D buffer, int bufferOffset = 0, string format = "float4") { if (buffer == null) { GL.DisableVertexAttribArray(index); GL.BindBuffer(BufferTarget.ArrayBuffer, 0); return; } // enable vertex attribute array GL.EnableVertexAttribArray(index); GL.BindBuffer(BufferTarget.ArrayBuffer, buffer.id); IntPtr byteOffset = new IntPtr(bufferOffset * 4); // buffer offset is in 32-bit words // set attribute pointer within vertex buffer switch (format) { case "float4": GL.VertexAttribPointer(index, 4, VertexAttribPointerType.Float, false, buffer.stride, byteOffset); break; case "float3": GL.VertexAttribPointer(index, 3, VertexAttribPointerType.Float, false, buffer.stride, byteOffset); break; case "float2": GL.VertexAttribPointer(index, 2, VertexAttribPointerType.Float, false, buffer.stride, byteOffset); break; case "float1": GL.VertexAttribPointer(index, 1, VertexAttribPointerType.Float, false, buffer.stride, byteOffset); break; default: throw new NotImplementedException(); } }
public void setVertexBufferAt (int index, VertexBuffer3D buffer, int bufferOffset = 0, string format = "float4") { throw new NotImplementedException(); }
public void setVertexBufferAt (int index, VertexBuffer3D buffer, int bufferOffset = 0, string format = "float4") { if (buffer == null) { GL.DisableVertexAttribArray (index); GL.BindBuffer (BufferTarget.ArrayBuffer, 0); return; } // enable vertex attribute array GL.EnableVertexAttribArray (index); GL.BindBuffer (BufferTarget.ArrayBuffer, buffer.id); int byteOffset = (bufferOffset * 4); // buffer offset is in 32-bit words // set attribute pointer within vertex buffer switch (format) { case "float4": GL.VertexAttribPointer(index, 4, VertexAttribPointerType.Float, false, buffer.stride, byteOffset); break; case "float3": GL.VertexAttribPointer(index, 3, VertexAttribPointerType.Float, false, buffer.stride, byteOffset); break; case "float2": GL.VertexAttribPointer(index, 2, VertexAttribPointerType.Float, false, buffer.stride, byteOffset); break; case "float1": GL.VertexAttribPointer(index, 1, VertexAttribPointerType.Float, false, buffer.stride, byteOffset); break; default: throw new NotImplementedException(); } }
public void setVertexBufferAt(int index, VertexBuffer3D buffer, int bufferOffset = 0, string format = "float4") { throw new NotImplementedException(); }