Merge pull request #145 from secondlife/SL-19331
SL-19331: Partially revert code trim in LLViewerMediaImplmeow-7.2.2
commit
b28971e4bf
|
|
@ -2965,15 +2965,16 @@ void LLViewerMediaImpl::doMediaTexUpdate(LLViewerMediaTexture* media_tex, U8* da
|
|||
LL_PROFILE_ZONE_SCOPED_CATEGORY_MEDIA;
|
||||
LLMutexLock lock(&mLock); // don't allow media source tear-down during update
|
||||
|
||||
const LLGLuint tex_name = media_tex->getGLTexture() ? media_tex->getGLTexture()->getTexName() : (LLGLuint)0;
|
||||
if (!tex_name)
|
||||
{
|
||||
llassert(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// wrap "data" in an LLImageRaw but do NOT make a copy
|
||||
LLPointer<LLImageRaw> raw = new LLImageRaw(data, media_tex->getWidth(), media_tex->getHeight(), media_tex->getComponents(), true);
|
||||
|
||||
// *NOTE: Recreating the GL texture each media update may seem wasteful
|
||||
// (note the texture creation in preMediaTexUpdate), however, it apparently
|
||||
// prevents GL calls from blocking, due to poor bookkeeping of state of
|
||||
// updated textures by the OpenGL implementation.
|
||||
// Allocate GL texture based on LLImageRaw but do NOT copy to GL
|
||||
LLGLuint tex_name = 0;
|
||||
media_tex->createGLTexture(0, raw, 0, TRUE, LLGLTexture::OTHER, true, &tex_name);
|
||||
|
||||
// copy just the subimage covered by the image raw to GL
|
||||
media_tex->setSubImage(data, data_width, data_height, x_pos, y_pos, width, height, tex_name);
|
||||
|
|
|
|||
Loading…
Reference in New Issue