//============================================================================== void GlFramebuffer::attachTextureInternal( GLenum attachment, const GlTexture& tex, const U32 layer) { const GLenum target = GL_FRAMEBUFFER; switch(tex.getTarget()) { case GL_TEXTURE_2D: #if ANKI_GL == ANKI_GL_DESKTOP case GL_TEXTURE_2D_MULTISAMPLE: #endif ANKI_ASSERT(layer == 0); glFramebufferTexture2D(target, attachment, tex.getTarget(), tex.getGlName(), 0); break; case GL_TEXTURE_CUBE_MAP: ANKI_ASSERT(layer < 6); glFramebufferTexture2D(target, attachment, GL_TEXTURE_CUBE_MAP_POSITIVE_X + layer, tex.getGlName(), 0); break; case GL_TEXTURE_2D_ARRAY: case GL_TEXTURE_3D: ANKI_ASSERT((GLuint)layer < tex.getDepth()); glFramebufferTextureLayer(target, attachment, tex.getGlName(), 0, layer); break; default: ANKI_ASSERT(0); break; } }