// Vertex Buffer internal BufferRangeRL(BufferRL buffer) { this.buffer = buffer; unchecked { this.beginMode = (BeginMode)(uint.MaxValue); // vertex buffers do not have a valid begin mode value } buffer.Add(this); }
public BufferRL GetUniformBufferRL(BufferUsageHint usage) { // Current OpenRL API rlUniformBlockBuffer() needs // exactly one buffer object per uniform block // so we can not share the same buffer to multiple // uniform blocks. var buffer = new BufferRL(Caustic.OpenRL.BufferTarget.UniformBlockBuffer, (Caustic.OpenRL.BufferUsageHint)usage); return(buffer); }
// Uniform Buffer internal BufferRangeRL(BufferRL buffer, IUniformBlock uniformBlock) { this.uniformBlock = uniformBlock; this.buffer = buffer; unchecked { this.beginMode = (BeginMode)(uint.MaxValue); // uniform buffers do not have a valid begin mode value } buffer.Add(this); // Pre-initialize uniform buffer as we do not use BeginEdit() / EndEdit() size = uniformBlock.Size; data = new byte[size]; }
// Index buffer, with valid begin mode internal BufferRangeRL(BufferRL buffer, BeginMode beginMode) { this.buffer = buffer; this.beginMode = beginMode; buffer.Add(this); }
internal BufferGLRL(DrawElementsType indexType, BufferUsageHint usageHint) { bufferGL = new BufferGL(indexType, usageHint); bufferRL = new BufferRL((Caustic.OpenRL.DrawElementsType)indexType, (Caustic.OpenRL.BufferUsageHint)usageHint); }
internal BufferGLRL(VertexFormat vertexFormat, BufferUsageHint usageHint) { bufferGL = new BufferGL(vertexFormat, usageHint); bufferRL = new BufferRL(vertexFormat, (Caustic.OpenRL.BufferUsageHint)usageHint); }
internal BufferGLRL(BufferTarget target, BufferUsageHint usageHint) { bufferGL = new BufferGL(target, usageHint); bufferRL = new BufferRL((Caustic.OpenRL.BufferTarget)target, (Caustic.OpenRL.BufferUsageHint)usageHint); }