throw invalid_operation("Framebuffer::set_format");
if(fmt.empty() || !is_format_supported(fmt))
throw invalid_argument("Framebuffer::set_format");
throw invalid_operation("Framebuffer::set_format");
if(fmt.empty() || !is_format_supported(fmt))
throw invalid_argument("Framebuffer::set_format");
void Framebuffer::set_attachment(FrameAttachment attch, Texture &tex, unsigned level, int layer, unsigned samples)
{
void Framebuffer::set_attachment(FrameAttachment attch, Texture &tex, unsigned level, int layer, unsigned samples)
{
throw invalid_operation("Framebuffer::attach");
if((format.get_samples()>1 && samples!=format.get_samples()) || (format.get_samples()==1 && samples))
throw invalid_operation("Framebuffer::attach");
if((format.get_samples()>1 && samples!=format.get_samples()) || (format.get_samples()==1 && samples))
bool layered = (!attachments.empty() && attachments.front().layer<0);
for(const Attachment &a: attachments)
{
bool layered = (!attachments.empty() && attachments.front().layer<0);
for(const Attachment &a: attachments)
{