std::vector<unsigned char> Framebuffer::readPixelsToByteArray(const std::array<GLint, 4> & rect, const GLenum format, const GLenum type) const { int size = imageSizeInBytes(rect[2], rect[3], 1, format, type); std::vector<unsigned char> data(size); readPixels(rect, format, type, data.data()); return data; }
std::vector<unsigned char> Texture::getImage(const GLint level, const GLenum format, const GLenum type) const { GLint width = getLevelParameter(level, GL_TEXTURE_WIDTH); GLint height = getLevelParameter(level, GL_TEXTURE_HEIGHT); GLint depth = getLevelParameter(level, GL_TEXTURE_DEPTH); int byteSize = imageSizeInBytes(width, height, depth, format, type); std::vector<unsigned char> data(byteSize); getImage(level, format, type, data.data()); return data; }