Texture Framebuffer::clone(int colorBuffer) const { Texture const &tex = this->colorBuffers()[colorBuffer]; Texture newTex(nullptr, tex.size(), 0, 0, false); VertexManager::flush(); glBindFramebuffer(GL_FRAMEBUFFER, _id); glBindTexture(GL_TEXTURE_2D, newTex.tex()); glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, tex.size().x, tex.size().y); glGenerateMipmap(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, 0); glBindFramebuffer(GL_FRAMEBUFFER, RenderTarget::top().identifier()); return newTex; }
void TextureContainer::AddTexture(Texture* texture, std::string name) { std::pair<std::string, Texture*> newTex(name, texture); textureMap.insert(newTex); }
void ResourceManager::createTexture(const char* filename, int* width, int* height, void** data, int numOfBitmaps) { SPtr<Texture> newTex(new Texture(width,height,data,numOfBitmaps)); addTexture(filename,newTex); }