//----------------------------------------------------------------------------// void OpenGL3Texture::loadFromMemory(const void* buffer, const Sizef& buffer_size, PixelFormat pixel_format) { if (!isPixelFormatSupported(pixel_format)) CEGUI_THROW(InvalidRequestException( "Data was supplied in an unsupported pixel format.")); initInternalPixelFormatFields(pixel_format); setTextureSize_impl(buffer_size); // store size of original data we are loading d_dataSize = buffer_size; updateCachedScaleValues(); // save old texture binding GLuint old_tex; glGetIntegerv(GL_TEXTURE_BINDING_2D, reinterpret_cast<GLint*>(&old_tex)); // do the real work of getting the data into the texture glBindTexture(GL_TEXTURE_2D, d_ogltexture); if (d_isCompressed) loadCompressedTextureBuffer(buffer_size, buffer); else loadUncompressedTextureBuffer(buffer_size, buffer); // restore previous texture binding. glBindTexture(GL_TEXTURE_2D, old_tex); }
//----------------------------------------------------------------------------// void OpenGLESTexture::blitFromMemory(const void* sourceData, const Rectf& area) { // save old texture binding GLuint old_tex; glGetIntegerv(GL_TEXTURE_BINDING_2D, reinterpret_cast<GLint*>(&old_tex)); // do the real work of getting the data into the texture glBindTexture(GL_TEXTURE_2D, d_ogltexture); if (d_isCompressed) loadCompressedTextureBuffer(area, sourceData); else loadUncompressedTextureBuffer(area, sourceData); // restore previous texture binding. glBindTexture(GL_TEXTURE_2D, old_tex); }