From e5ea6f986f42dade10509202878826654fbcbc6f Mon Sep 17 00:00:00 2001 From: bloeys Date: Mon, 11 Jul 2022 11:58:31 +0400 Subject: [PATCH] Add SetDataWithUsage --- buffers/buffers.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/buffers/buffers.go b/buffers/buffers.go index eca197b..21d39f5 100755 --- a/buffers/buffers.go +++ b/buffers/buffers.go @@ -41,6 +41,22 @@ func (b *Buffer) SetData(values []float32) { gl.BindBuffer(gl.ARRAY_BUFFER, 0) } +func (b *Buffer) SetDataWithUsage(values []float32, usage BufUsage) { + + gl.BindVertexArray(b.VAOID) + gl.BindBuffer(gl.ARRAY_BUFFER, b.BufID) + + sizeInBytes := len(values) * 4 + if sizeInBytes == 0 { + gl.BufferData(gl.ARRAY_BUFFER, 0, gl.Ptr(nil), usage.ToGL()) + } else { + gl.BufferData(gl.ARRAY_BUFFER, sizeInBytes, gl.Ptr(&values[0]), usage.ToGL()) + } + + gl.BindVertexArray(0) + gl.BindBuffer(gl.ARRAY_BUFFER, 0) +} + func (b *Buffer) SetIndexBufData(values []uint32) { b.IndexBufCount = int32(len(values))