Example #1
0
        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();
            }
        }
Example #2
0
		public void setVertexBufferAt (int index, VertexBuffer3D buffer, int bufferOffset = 0, string format = "float4")
		{
			throw new NotImplementedException();
		}
Example #3
0
		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();
			}
		}
Example #4
0
 public void setVertexBufferAt(int index, VertexBuffer3D buffer, int bufferOffset = 0, string format = "float4")
 {
     throw new NotImplementedException();
 }