#pragma once #include "config/types.h" #include "glArrays.h" #include "glTexture.h" namespace Impl { struct glRenderbuffer : Detail::glNamed { void storage(GLenum iformat, ImageDimensions); }; struct glFramebuffer : Detail::glNamed { template void texture(GLenum attachment, const glTexture & texture) { glNamedFramebufferTexture(name, attachment, texture, 0); } void drawBuffers(std::span buffers); template... Buffers> void drawBuffers(Buffers... buffers) { drawBuffers(std::array {static_cast(buffers)...}); } void buffer(GLenum attachment, const glRenderbuffer &); void assertComplete() const; }; } template using glFramebuffers = glManagedArray; using glFramebuffer = glManagedSingle; template using glRenderbuffers = glManagedArray; using glRenderbuffer = glManagedSingle;