framebuffer->setStencilbuffer(GL_RENDERBUFFER, renderbuffer);
break;
default:
- if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
+ if(attachment < GL_COLOR_ATTACHMENT0 || attachment > GL_COLOR_ATTACHMENT31)
{
return error(GL_INVALID_ENUM);
}
+
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
+ {
+ return error(GL_INVALID_OPERATION);
+ }
+
framebuffer->setColorbuffer(GL_RENDERBUFFER, renderbuffer, attachment - GL_COLOR_ATTACHMENT0);
break;
}
framebuffer->setStencilbuffer(textarget, texture, level);
break;
default:
- if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
+ if(attachment < GL_COLOR_ATTACHMENT0 || attachment > GL_COLOR_ATTACHMENT31)
{
return error(GL_INVALID_ENUM);
}
+
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
+ {
+ return error(GL_INVALID_OPERATION);
+ }
+
framebuffer->setColorbuffer(textarget, texture, attachment - GL_COLOR_ATTACHMENT0, level);
break;
}
}
break;
default:
- if((unsigned int)(attachment - GL_COLOR_ATTACHMENT0) < MAX_COLOR_ATTACHMENTS)
+ if(framebufferName == 0)
{
- if(framebufferName == 0)
- {
- return error(GL_INVALID_OPERATION);
- }
+ return error(GL_INVALID_OPERATION);
+ }
+
+ if(attachment < GL_COLOR_ATTACHMENT0 || attachment > GL_COLOR_ATTACHMENT31)
+ {
+ return error(GL_INVALID_ENUM);
+ }
+
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
+ {
+ return error(GL_INVALID_OPERATION);
}
- else return error(GL_INVALID_ENUM);
+ break;
}
es2::Framebuffer *framebuffer = context->getFramebuffer(framebufferName);
case GL_DEPTH_ATTACHMENT: framebuffer->setDepthbuffer(textarget, texture, level); break;
case GL_STENCIL_ATTACHMENT: framebuffer->setStencilbuffer(textarget, texture, level); break;
default:
- if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
+ if(attachment < GL_COLOR_ATTACHMENT0 || attachment > GL_COLOR_ATTACHMENT31)
{
return error(GL_INVALID_ENUM);
}
+
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
+ {
+ return error(GL_INVALID_OPERATION);
+ }
+
framebuffer->setColorbuffer(textarget, texture, attachment - GL_COLOR_ATTACHMENT0, level);
break;
}
switch(attachment)
{
- case GL_COLOR_ATTACHMENT0:
- case GL_COLOR_ATTACHMENT1:
- case GL_COLOR_ATTACHMENT2:
- case GL_COLOR_ATTACHMENT3:
- case GL_COLOR_ATTACHMENT4:
- case GL_COLOR_ATTACHMENT5:
- case GL_COLOR_ATTACHMENT6:
- case GL_COLOR_ATTACHMENT7:
- case GL_COLOR_ATTACHMENT8:
- case GL_COLOR_ATTACHMENT9:
- case GL_COLOR_ATTACHMENT10:
- case GL_COLOR_ATTACHMENT11:
- case GL_COLOR_ATTACHMENT12:
- case GL_COLOR_ATTACHMENT13:
- case GL_COLOR_ATTACHMENT14:
- case GL_COLOR_ATTACHMENT15:
- case GL_COLOR_ATTACHMENT16:
- case GL_COLOR_ATTACHMENT17:
- case GL_COLOR_ATTACHMENT18:
- case GL_COLOR_ATTACHMENT19:
- case GL_COLOR_ATTACHMENT20:
- case GL_COLOR_ATTACHMENT21:
- case GL_COLOR_ATTACHMENT22:
- case GL_COLOR_ATTACHMENT23:
- case GL_COLOR_ATTACHMENT24:
- case GL_COLOR_ATTACHMENT25:
- case GL_COLOR_ATTACHMENT26:
- case GL_COLOR_ATTACHMENT27:
- case GL_COLOR_ATTACHMENT28:
- case GL_COLOR_ATTACHMENT29:
- case GL_COLOR_ATTACHMENT30:
- case GL_COLOR_ATTACHMENT31:
- framebuffer->setColorbuffer(textarget, texture, attachment - GL_COLOR_ATTACHMENT0, level, layer);
- break;
case GL_DEPTH_ATTACHMENT:
framebuffer->setDepthbuffer(textarget, texture, level, layer);
break;
framebuffer->setStencilbuffer(textarget, texture, level, layer);
break;
default:
- return error(GL_INVALID_ENUM);
+ if(attachment < GL_COLOR_ATTACHMENT0 || attachment > GL_COLOR_ATTACHMENT31)
+ {
+ return error(GL_INVALID_ENUM);
+ }
+
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
+ {
+ return error(GL_INVALID_OPERATION);
+ }
+
+ framebuffer->setColorbuffer(textarget, texture, attachment - GL_COLOR_ATTACHMENT0, level, layer);
+ break;
}
}
}