X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fgraphics%2Fshaders%2Fimage-visual-shader.frag;h=a0f39d92c1c641e92bcce528281e11402ef534d8;hp=3694280107145e052daf48d4d658915f86861221;hb=6c0714272287978686a586369b1a909f27ab172d;hpb=45ad62cd772319bc585a48c868b31892881374bb diff --git a/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag index 3694280..a0f39d9 100644 --- a/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag @@ -9,6 +9,10 @@ INPUT mediump vec4 vCornerRadius; #endif uniform sampler2D sTexture; +#ifdef IS_REQUIRED_YUV_TO_RGB +uniform sampler2D sTextureU; +uniform sampler2D sTextureV; +#endif #ifdef IS_REQUIRED_ALPHA_MASKING uniform sampler2D sMaskTexture; @@ -150,7 +154,7 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) // But if borderlineOpacity > 0.0 and borderlineColor.a == 0.0, we need to apply tCornerRadius. if(borderlineOpacity > 0.0 && borderlineColor.a * borderlineOpacity < 1.0) { - mediump float tCornerRadius = -gCenterPosition; + mediump float tCornerRadius = -gCenterPosition + gPotentialRange; mediump float MaxTexturelinePotential = tCornerRadius + gPotentialRange; mediump float MinTexturelinePotential = tCornerRadius - gPotentialRange; if(potential > MaxTexturelinePotential) @@ -208,6 +212,20 @@ mediump float calculateCornerOpacity() } #endif +#ifdef IS_REQUIRED_YUV_TO_RGB +lowp vec3 ConvertYuvToRgb(mediump vec2 texCoord) +{ + lowp float y = texture(sTexture, texCoord).r; + lowp float u = texture(sTextureU, texCoord).r - 0.5; + lowp float v = texture(sTextureV, texCoord).r - 0.5; + lowp vec3 rgb; + rgb.r = y + (1.403 * v); + rgb.g = y - (0.344 * u) - (0.714 * v); + rgb.b = y + (1.770 * u); + return rgb; +} +#endif + void main() { #ifdef ATLAS_DEFAULT_WARP @@ -219,7 +237,11 @@ void main() mediump vec2 texCoord = vTexCoord; #endif +#ifdef IS_REQUIRED_YUV_TO_RGB + lowp vec4 textureColor = vec4(ConvertYuvToRgb(texCoord), 1.0) * vec4( mixColor, 1.0 ) * uColor; +#else lowp vec4 textureColor = TEXTURE( sTexture, texCoord ) * vec4( mixColor, 1.0 ) * uColor; +#endif #ifdef IS_REQUIRED_ALPHA_MASKING mediump float maskAlpha = TEXTURE(sMaskTexture, vMaskTexCoord).a;