GLuint Terrain::uploadTextureGFX(sf::Image img) { GLuint handle; glGenTextures(1,&handle); glBindTexture(GL_TEXTURE_2D,handle); glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,img.GetWidth(),img.GetHeight(),0,GL_RGBA,GL_UNSIGNED_BYTE,img.GetPixelsPtr()); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST ); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glGenerateMipmap( GL_TEXTURE_2D); return handle; }
//uploads the blendmaps to the GFX, getting a handle to the GFX side tex void Terrain::makeBlendMap(GLuint& handle, sf::Image img) { glDeleteTextures(1,&handle); glGenTextures(1,&handle); glBindTexture(GL_TEXTURE_2D,handle); glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,img.GetWidth(),img.GetHeight(),0,GL_RGBA,GL_UNSIGNED_BYTE,img.GetPixelsPtr()); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); }
void Terrain::replacePartTexture(GLint xoffset, GLint yoffset, sf::Image img,GLuint handle) { glBindTexture(GL_TEXTURE_2D,handle); glTexSubImage2D(GL_TEXTURE_2D,0,xoffset,yoffset,img.GetWidth(),img.GetHeight(),GL_RGBA,GL_UNSIGNED_BYTE,img.GetPixelsPtr()); }
void* SFMLTexture_c::GetPixels() { assert(texture.GetPixelsPtr() != NULL); //return reinterpret_cast<void*>(texture.GetPixelsPtr()); }