bool LLWebBrowserTexture::updateBrowserTexture() { if (!adjustSize()) return false; LLPluginClassMedia* media = mMediaSource->getMediaPlugin(); if(!media->textureValid()) return false; if(mMediaSource->mNeedsNewTexture || media->getTextureWidth() != mWidth || media->getTextureHeight() != mHeight ) { releaseGLTexture(); mWidth = media->getTextureWidth(); mHeight = media->getTextureHeight(); mTextureCoordsOpenGL = media->getTextureCoordsOpenGL(); // will create mWidth * mHeight sized texture, using the texture params specified by the media. LLDynamicTexture::generateGLTexture( media->getTextureFormatInternal(), media->getTextureFormatPrimary(), media->getTextureFormatType(), media->getTextureFormatSwapBytes()); mMediaSource->mNeedsNewTexture = false; } return true; }
bool LLWebBrowserTexture::updateBrowserTexture() { if (!adjustSize()) return false; LLPluginClassMedia* media = mMediaSource->getMediaPlugin(); if(!media->textureValid()) return false; if(mMediaSource->mNeedsNewTexture || media->getTextureWidth() != getFullWidth() || media->getTextureHeight() != getFullHeight() ) { //releaseGLTexture(); mFullWidth = media->getTextureWidth(); mFullHeight = media->getTextureHeight(); mTextureCoordsOpenGL = media->getTextureCoordsOpenGL(); const LLColor4U fill_color(0,0,0,255); // will create mWidth * mHeight sized texture, using the texture params specified by the media. generateGLTexture( media->getTextureFormatInternal(), media->getTextureFormatPrimary(), media->getTextureFormatType(), media->getTextureFormatSwapBytes(), &fill_color); //Initialize the texture to black. mMediaSource->mNeedsNewTexture = false; } return true; }
void createTexture() { // create the texture used to display the browser data if(mMediaSource->textureValid()) { mAppTextureWidth = mMediaSource->getTextureWidth(); mAppTextureHeight = mMediaSource->getTextureHeight(); mAppTextureCoordsOpenGL = mMediaSource->getTextureCoordsOpenGL(); if(mAppTexture != 0) { glDeleteTextures( 1, &mAppTexture ); mAppTexture = 0; } glGenTextures( 1, &mAppTexture ); glBindTexture( GL_TEXTURE_2D, mAppTexture ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexImage2D( GL_TEXTURE_2D, 0, mMediaSource->getTextureFormatInternal(), mAppTextureWidth, mAppTextureHeight, 0, mMediaSource->getTextureFormatPrimary(), mMediaSource->getTextureFormatType(), NULL ); } }