#pragma once #include "glArrays.h" namespace Impl { struct glBuffer : Detail::glNamed { void storage(const std::ranges::contiguous_range auto & data, GLenum flags) { glNamedBufferStorage( name, static_cast(data.size() * sizeof(decltype(*data.data()))), data.data(), flags); } void data(const std::ranges::contiguous_range auto & data, GLenum flags) { glNamedBufferData( name, static_cast(data.size() * sizeof(decltype(*data.data()))), data.data(), flags); } }; } template using glBuffers = glManagedArray; using glBuffer = glManagedSingle;