//----------------------------------------------------------------------------- // postRender() //----------------------------------------------------------------------------- void LLViewerDynamicTexture::postRender(BOOL success) { { if (success) { if(mGLTexturep.isNull()) { generateGLTexture() ; } else if(!mGLTexturep->getHasGLTexture()) { generateGLTexture() ; } else if(mGLTexturep->getDiscardLevel() != 0)//do not know how it happens, but regenerate one if it does. { generateGLTexture() ; } success = mGLTexturep->setSubImageFromFrameBuffer(0, 0, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight); } } // restore viewport gViewerWindow->setup2DViewport(); // restore camera LLViewerCamera* camera = LLViewerCamera::getInstance(); camera->setOrigin(mCamera); camera->setAxes(mCamera); camera->setAspect(mCamera.getAspect()); camera->setView(mCamera.getView()); camera->setNear(mCamera.getNear()); }
//----------------------------------------------------------------------------- // postRender() //----------------------------------------------------------------------------- void LLViewerDynamicTexture::postRender(BOOL success) { { if (success) { if(mGLTexturep.isNull()) { generateGLTexture() ; } if(!mGLTexturep->getHasGLTexture()) { generateGLTexture() ; } llcallstacks << "class type: " << (S32)getType() << llcallstacksendl ; success = mGLTexturep->setSubImageFromFrameBuffer(0, 0, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight); } } // restore viewport gViewerWindow->setup2DViewport(); // restore camera LLViewerCamera* camera = LLViewerCamera::getInstance(); camera->setOrigin(mCamera); camera->setAxes(mCamera); camera->setAspect(mCamera.getAspect()); camera->setView(mCamera.getView()); camera->setNear(mCamera.getNear()); }
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; }
//----------------------------------------------------------------------------- // LLViewerDynamicTexture() //----------------------------------------------------------------------------- LLViewerDynamicTexture::LLViewerDynamicTexture(S32 width, S32 height, S32 components, EOrder order, BOOL clamp) : LLViewerTexture(width, height, components, FALSE), mClamp(clamp) { llassert((1 <= components) && (components <= 4)); generateGLTexture(); llassert( 0 <= order && order < ORDER_COUNT ); LLViewerDynamicTexture::sInstances[ order ].insert(this); }
//************************************************************************************************************** LLTextureAtlas::LLTextureAtlas(U8 ncomponents, S16 atlas_dim) : LLViewerTexture(atlas_dim * sSlotSize, atlas_dim * sSlotSize, ncomponents, TRUE), mAtlasDim(atlas_dim), mNumSlotsReserved(0), mMaxSlotsInAtlas(atlas_dim * atlas_dim) { generateEmptyUsageBits() ; //generate an empty texture generateGLTexture() ; LLPointer<LLImageRaw> image_raw = new LLImageRaw(mFullWidth, mFullHeight, mComponents); createGLTexture(0, image_raw, 0); image_raw = NULL; }
//----------------------------------------------------------------------------- // LLDynamicTexture() //----------------------------------------------------------------------------- LLDynamicTexture::LLDynamicTexture(S32 width, S32 height, S32 components, EOrder order, BOOL clamp) : mWidth(width), mHeight(height), mComponents(components), mTexture(NULL), mLastBindTime(0), mClamp(clamp) { llassert((1 <= components) && (components <= 4)); generateGLTexture(); llassert( 0 <= order && order < ORDER_COUNT ); LLDynamicTexture::sInstances[ order ].insert(this); }
//----------------------------------------------------------------------------- // LLViewerDynamicTexture() //----------------------------------------------------------------------------- LLViewerDynamicTexture::LLViewerDynamicTexture(S32 width, S32 height, S32 components, EOrder order, BOOL clamp) : LLViewerTexture(width, height, components, FALSE), mClamp(clamp) { llassert((1 <= components) && (components <= 4)); if(gGLManager.mDebugGPU) { if(components == 3) { mComponents = 4 ; //convert to 32bits. } } generateGLTexture(); llassert( 0 <= order && order < ORDER_COUNT ); LLViewerDynamicTexture::sInstances[ order ].insert(this); }
//----------------------------------------------------------------------------- // generateGLTexture() //----------------------------------------------------------------------------- void LLDynamicTexture::generateGLTexture() { generateGLTexture(-1, 0, 0, FALSE); }
//----------------------------------------------------------------------------- // generateGLTexture() //----------------------------------------------------------------------------- void LLViewerDynamicTexture::generateGLTexture() { LLViewerTexture::generateGLTexture() ; generateGLTexture(-1, 0, 0, FALSE); }
//virtual void LLDynamicTexture::restoreGLTexture() { generateGLTexture() ; }