From: Ferran Sole Date: Thu, 4 Aug 2016 09:45:19 +0000 (+0100) Subject: [3.0] Render textures created from NativeImages error X-Git-Tag: accepted/tizen/common/20160830.150426~4 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-core.git;a=commitdiff_plain;h=5b91e1278b07420f209cf0d065733539ace5961d [3.0] Render textures created from NativeImages error * GlExtensionDestroy() was not being called on clean-up * PrepareTexture() was not being called when binding the texture * Error code returned from TargetTexture() was not being handled Change-Id: Ie3e8f9d5cc973da8a72eea68838e9443a3421077 --- diff --git a/dali/internal/render/renderers/render-texture.cpp b/dali/internal/render/renderers/render-texture.cpp index 59c1206..8ca2647 100644 --- a/dali/internal/render/renderers/render-texture.cpp +++ b/dali/internal/render/renderers/render-texture.cpp @@ -625,6 +625,11 @@ void NewTexture::Destroy( Context& context ) if( mId ) { context.DeleteTextures( 1, &mId ); + + if( mNativeImage ) + { + mNativeImage->GlExtensionDestroy(); + } } } @@ -645,7 +650,12 @@ void NewTexture::Initialize(Context& context) context.TexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_WRAP_DEFAULT ); // platform specific implementation decides on what GL extension to use - mNativeImage->TargetTexture(); + if( mNativeImage->TargetTexture() != 0u ) + { + context.DeleteTextures( 1, &mId ); + mNativeImage->GlExtensionDestroy(); + mId = 0u; + } } } else @@ -803,6 +813,12 @@ bool NewTexture::Bind( Context& context, unsigned int textureUnit, Render::Sampl ApplySampler( context, sampler ); + if( mNativeImage ) + { + //Allow implementation specific operations after binding the texture + mNativeImage->PrepareTexture(); + } + return true; }