funfriend/src/gl.cr

16 lines
444 B
Crystal

module Funfriend::GL
extend self
def buffer_data_array(target : Enum, data : Array, usage_hint : Buffer::UsageHint)
data_size = data.reduce(0) {|memo, i| memo + sizeof(typeof(i))}
LibGL.buffer_data(target, data_size, Pointer(Void).new(0), usage_hint)
offset = 0
data.each do |byte|
size = sizeof(typeof(byte))
LibGL.buffer_sub_data(target, offset, size, pointerof(byte))
offset += size
end
end
end