From: Eunki, Hong Date: Fri, 7 Feb 2025 05:59:12 +0000 (+0900) Subject: Make vertex coordinate relative values use highp + Make UniformBlock for VisualRenderer X-Git-Tag: accepted/tizen/unified/20250219.114945~2^2~3^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ab83e614df488fd2db6ff555ca6cec7c2f428e97;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git Make vertex coordinate relative values use highp + Make UniformBlock for VisualRenderer - Make texture coordinate relative codes use highp instead of mediump - Seperate VertexShader's uniform blocks for VisualRenderer, so we can easly control them by SharedUniform in future. Change-Id: Ibade464899d9ef0909bf78a87813fadbde50541b Signed-off-by: Eunki, Hong --- diff --git a/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag b/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag index 98eb049375..e0ca78018e 100644 --- a/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag +++ b/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag @@ -1,5 +1,9 @@ +//@name default-physically-based-shader.frag + //@version 100 +precision highp float; + // Original Code // https://github.com/KhronosGroup/glTF-Sample-Viewer/blob/glTF-WebGL-PBR/shaders/pbr-frag.glsl // Commit dc84b5e374fb3d23153d2248a338ef88173f9eb6 @@ -17,12 +21,6 @@ // [4] \"An Inexpensive BRDF Model for Physically based Rendering\" by Christophe Schlick // https://www.cs.virginia.edu/~jdl/bib/appearance/analytic%20models/schlick94b.pdf -#ifdef HIGHP -precision highp float; -#else -precision mediump float; -#endif - #ifdef GLTF_CHANNELS #define METALLIC b #define ROUGHNESS g @@ -149,18 +147,18 @@ UNIFORM_BLOCK ShadowFragBlock { UNIFORM mediump int uShadowLightIndex; UNIFORM lowp int uEnableShadowSoftFiltering; - UNIFORM mediump float uShadowIntensity; + UNIFORM highp float uShadowIntensity; UNIFORM highp float uShadowBias; }; // TODO: Multiple texture coordinate will be supported. -INPUT mediump vec2 vUV; +INPUT highp vec2 vUV; INPUT highp mat3 vTBN; -INPUT lowp vec4 vColor; +INPUT highp vec4 vColor; INPUT highp vec3 vPositionToCamera; INPUT highp vec3 positionFromLightView; -const lowp float c_MinRoughness = 0.04; +const highp float c_MinRoughness = 0.04; const highp float M_PI = 3.141592653589793; // These properties can be used for circular sampling for PCF diff --git a/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.vert b/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.vert index bd3baff2c2..8fba287eab 100644 --- a/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.vert +++ b/dali-scene3d/internal/graphics/shaders/default-physically-based-shader.vert @@ -1,5 +1,9 @@ +//@name default-physically-based-shader.vert + //@version 100 +precision highp float; + // Original Code // https://github.com/KhronosGroup/glTF-Sample-Viewer/blob/glTF-WebGL-PBR/shaders/pbr-vert.glsl // Commit dc84b5e374fb3d23153d2248a338ef88173f9eb6 @@ -13,8 +17,6 @@ #define ADD_EXTRA_SKINNING_ATTRIBUTES #define ADD_EXTRA_WEIGHTS -precision highp float; - INPUT vec3 aPosition; INPUT vec2 aTexCoord; INPUT vec3 aNormal; @@ -45,8 +47,8 @@ UNIFORM_BLOCK VertBlock0 { #ifdef MORPH #ifdef SL_VERSION_LOW - UNIFORM int uBlendShapeGeometryWidth; - UNIFORM int uBlendShapeGeometryHeight; + UNIFORM highp int uBlendShapeGeometryWidth; + UNIFORM highp int uBlendShapeGeometryHeight; #endif #endif @@ -65,7 +67,7 @@ UNIFORM_BLOCK VertBlock0 #ifdef MORPH #define MAX_BLEND_SHAPE_NUMBER 256 - UNIFORM int uNumberOfBlendShapes;///< Total number of blend shapes loaded. + UNIFORM highp int uNumberOfBlendShapes;///< Total number of blend shapes loaded. UNIFORM highp float uBlendShapeWeight[MAX_BLEND_SHAPE_NUMBER];///< The weight of each blend shape. #ifdef MORPH_VERSION_2_0 UNIFORM highp float uBlendShapeUnnormalizeFactor;///< Factor used to unnormalize the geometry of the blend shape. @@ -97,15 +99,15 @@ UNIFORM_BLOCK ShadowEnabled #define MAX_BONES 256 UNIFORM_BLOCK Bones { - UNIFORM mat4 uBone[MAX_BONES]; + UNIFORM highp mat4 uBone[MAX_BONES]; }; #endif #endif OUTPUT highp vec3 positionFromLightView; -OUTPUT mediump vec2 vUV; +OUTPUT highp vec2 vUV; OUTPUT highp mat3 vTBN; -OUTPUT lowp vec4 vColor; +OUTPUT highp vec4 vColor; OUTPUT highp vec3 vPositionToCamera; void main() @@ -116,9 +118,9 @@ void main() #ifdef MORPH #ifdef SL_VERSION_LOW - int width = uBlendShapeGeometryWidth; + highp int width = uBlendShapeGeometryWidth; #else - int width = textureSize( sBlendShapeGeometry, 0 ).x; + highp int width = textureSize( sBlendShapeGeometry, 0 ).x; #endif highp int blendShapeBufferOffset = 0; @@ -130,7 +132,7 @@ void main() highp float invertBlendShapeHeight = 1.0 / blendShapeHeight; #endif - for( int index = 0; index < uNumberOfBlendShapes; ++index ) + for( highp int index = 0; index < uNumberOfBlendShapes; ++index ) { highp vec3 diff = vec3(0.0); highp int vertexId = 0; diff --git a/dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.frag b/dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.frag index 2a5c4e3e05..3c6b4c5179 100644 --- a/dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.frag +++ b/dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.frag @@ -1,6 +1,9 @@ +//@name scene3d-joint-debug.frag + //@version 100 -precision mediump float; +precision highp float; + UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; diff --git a/dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.vert b/dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.vert index 3c03ef6ea1..ff07455bf7 100644 --- a/dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.vert +++ b/dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.vert @@ -1,6 +1,9 @@ +//@name scene3d-joint-debug.vert + //@version 100 -precision mediump float; +precision highp float; + UNIFORM_BLOCK VertBlock { UNIFORM mat4 uMvpMatrix; diff --git a/dali-scene3d/internal/graphics/shaders/shadow-map-shader.frag b/dali-scene3d/internal/graphics/shaders/shadow-map-shader.frag index c69c4e98eb..c02d3873d9 100644 --- a/dali-scene3d/internal/graphics/shaders/shadow-map-shader.frag +++ b/dali-scene3d/internal/graphics/shaders/shadow-map-shader.frag @@ -1,3 +1,5 @@ +//@name shadow-map-shader.frag + //@version 100 UNIFORM_BLOCK FragBlock @@ -8,8 +10,8 @@ UNIFORM_BLOCK FragBlock UNIFORM int uIsShadowCasting; }; -INPUT mediump vec2 vUV; -INPUT lowp vec4 vColor; +INPUT highp vec2 vUV; +INPUT highp vec4 vColor; #ifdef THREE_TEX #ifdef BASECOLOR_TEX diff --git a/dali-scene3d/internal/graphics/shaders/shadow-map-shader.vert b/dali-scene3d/internal/graphics/shaders/shadow-map-shader.vert index 33a7a4fc2f..47754547b1 100644 --- a/dali-scene3d/internal/graphics/shaders/shadow-map-shader.vert +++ b/dali-scene3d/internal/graphics/shaders/shadow-map-shader.vert @@ -1,3 +1,5 @@ +//@name shadow-map-shader.vert + //@version 100 #define MORPH defined(MORPH_POSITION) || defined(MORPH_NORMAL) || defined(MORPH_TANGENT) @@ -35,15 +37,15 @@ UNIFORM_BLOCK Bones #endif #endif -OUTPUT mediump vec2 vUV; -OUTPUT lowp vec4 vColor; +OUTPUT highp vec2 vUV; +OUTPUT highp vec4 vColor; UNIFORM_BLOCK VertBlock { #ifdef MORPH #ifdef SL_VERSION_LOW - UNIFORM int uBlendShapeGeometryWidth; - UNIFORM int uBlendShapeGeometryHeight; + UNIFORM highp int uBlendShapeGeometryWidth; + UNIFORM highp int uBlendShapeGeometryHeight; #endif #endif @@ -61,7 +63,7 @@ UNIFORM_BLOCK VertBlock #ifdef MORPH #define MAX_BLEND_SHAPE_NUMBER 256 - UNIFORM int uNumberOfBlendShapes;///< Total number of blend shapes loaded. + UNIFORM highp int uNumberOfBlendShapes;///< Total number of blend shapes loaded. UNIFORM highp float uBlendShapeWeight[MAX_BLEND_SHAPE_NUMBER];///< The weight of each blend shape. #ifdef MORPH_VERSION_2_0 UNIFORM highp float uBlendShapeUnnormalizeFactor;///< Factor used to unnormalize the geometry of the blend shape. @@ -81,9 +83,9 @@ void main() #ifdef MORPH #ifdef SL_VERSION_LOW - int width = uBlendShapeGeometryWidth; + highp int width = uBlendShapeGeometryWidth; #else - int width = textureSize( sBlendShapeGeometry, 0 ).x; + highp int width = textureSize( sBlendShapeGeometry, 0 ).x; #endif highp int blendShapeBufferOffset = 0; @@ -95,7 +97,7 @@ void main() highp float invertBlendShapeHeight = 1.0 / blendShapeHeight; #endif - for( int index = 0; index < uNumberOfBlendShapes; ++index ) + for( highp int index = 0; index < uNumberOfBlendShapes; ++index ) { highp vec3 diff = vec3(0.0); highp int vertexId = 0; diff --git a/dali-scene3d/internal/graphics/shaders/skybox-equirectangular-shader.frag b/dali-scene3d/internal/graphics/shaders/skybox-equirectangular-shader.frag index 7663afc46f..c8f49bdae7 100644 --- a/dali-scene3d/internal/graphics/shaders/skybox-equirectangular-shader.frag +++ b/dali-scene3d/internal/graphics/shaders/skybox-equirectangular-shader.frag @@ -1,15 +1,20 @@ +//@name skybox-equirectangular-shader.frag + +//@version 100 + +precision highp float; + // Fragment shader for a skybox in equirectangular projection -precision mediump float; UNIFORM sampler2D uSkyBoxEquirectangularTexture; UNIFORM_BLOCK FragBlock { - UNIFORM vec4 uColor; - UNIFORM float uIntensity; + UNIFORM lowp vec4 uColor; + UNIFORM highp float uIntensity; }; -INPUT vec3 vTexCoord; +INPUT highp vec3 vTexCoord; // Take the sample direction as interpolated from the cube's local position, // and use this direction vector and the spherical to cartesian coordinate diff --git a/dali-scene3d/internal/graphics/shaders/skybox-shader.frag b/dali-scene3d/internal/graphics/shaders/skybox-shader.frag index 834898af1d..94d840e0db 100644 --- a/dali-scene3d/internal/graphics/shaders/skybox-shader.frag +++ b/dali-scene3d/internal/graphics/shaders/skybox-shader.frag @@ -1,13 +1,17 @@ +//@name skybox-shader.frag + //@version 100 +precision highp float; + UNIFORM samplerCube uSkyBoxTexture; UNIFORM_BLOCK FragBlock { - UNIFORM lowp vec4 uColor; - UNIFORM mediump float uIntensity; + UNIFORM lowp vec4 uColor; + UNIFORM highp float uIntensity; }; -INPUT mediump vec3 vTexCoord; +INPUT highp vec3 vTexCoord; void main() { diff --git a/dali-scene3d/internal/graphics/shaders/skybox-shader.vert b/dali-scene3d/internal/graphics/shaders/skybox-shader.vert index e0a29db99f..bbe9e62640 100644 --- a/dali-scene3d/internal/graphics/shaders/skybox-shader.vert +++ b/dali-scene3d/internal/graphics/shaders/skybox-shader.vert @@ -1,15 +1,19 @@ +//@name skybox-shader.vert + //@version 100 -INPUT mediump vec3 aPosition; +precision highp float; + +INPUT highp vec3 aPosition; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uModelView; - UNIFORM mediump mat4 uModelMatrix; - UNIFORM mediump mat4 uViewMatrix; - UNIFORM mediump mat4 uProjection; - UNIFORM mediump mat4 uMvpMatrix; + UNIFORM highp mat4 uModelView; + UNIFORM highp mat4 uModelMatrix; + UNIFORM highp mat4 uViewMatrix; + UNIFORM highp mat4 uProjection; + UNIFORM highp mat4 uMvpMatrix; }; -OUTPUT mediump vec3 vTexCoord; +OUTPUT highp vec3 vTexCoord; void main() { @@ -17,8 +21,8 @@ void main() vTexCoord.y = -aPosition.y; // convert to GL coords vTexCoord.z = aPosition.z; - mediump vec4 vertexPosition = vec4(aPosition, 1.0); - vec4 clipSpacePosition = uProjection * mat4(mat3(uModelView)) * vertexPosition; + highp vec4 vertexPosition = vec4(aPosition, 1.0); + highp vec4 clipSpacePosition = uProjection * mat4(mat3(uModelView)) * vertexPosition; // Writes 1.0, the maximum depth value, into the depth buffer. // This is an optimization to avoid running the fragment shader // for the pixels hidden by the scene's objects. diff --git a/dali-toolkit/internal/graphics/shaders/alpha-discard-effect.frag b/dali-toolkit/internal/graphics/shaders/alpha-discard-effect.frag index 0412762784..166114ea5f 100644 --- a/dali-toolkit/internal/graphics/shaders/alpha-discard-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/alpha-discard-effect.frag @@ -1,12 +1,16 @@ +//@name alpha-discard-effect.frag + //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock { -UNIFORM lowp vec4 uColor; + UNIFORM lowp vec4 uColor; }; diff --git a/dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.frag index f9c1acba52..987240622f 100644 --- a/dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.frag @@ -2,18 +2,18 @@ //@version 100 -precision mediump float; +precision highp float; UNIFORM_BLOCK FragBlock { - UNIFORM mediump vec4 start_color; - UNIFORM mediump vec4 end_color; - UNIFORM mediump float gradient_offset; + UNIFORM highp vec4 start_color; + UNIFORM highp vec4 end_color; + UNIFORM highp float gradient_offset; }; -INPUT mediump vec2 vTexCoord; -INPUT mediump vec2 vStart; -INPUT mediump vec2 vEnd; +INPUT highp vec2 vTexCoord; +INPUT highp vec2 vStart; +INPUT highp vec2 vEnd; float get_position(vec2 x, vec2 s, vec2 e) { diff --git a/dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.vert index 0a36bf37a0..d0ac0077de 100644 --- a/dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.vert @@ -2,20 +2,22 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; UNIFORM highp vec3 uSize; - UNIFORM mediump vec2 start_point; - UNIFORM mediump vec2 end_point; - UNIFORM mediump vec2 rotate_center; - UNIFORM mediump float rotate_angle; + UNIFORM highp vec2 start_point; + UNIFORM highp vec2 end_point; + UNIFORM highp vec2 rotate_center; + UNIFORM highp float rotate_angle; }; -OUTPUT mediump vec2 vTexCoord; -OUTPUT mediump vec2 vStart; -OUTPUT mediump vec2 vEnd; +OUTPUT highp vec2 vTexCoord; +OUTPUT highp vec2 vStart; +OUTPUT highp vec2 vEnd; vec2 rotate(vec2 x, vec2 c, float a) { @@ -33,11 +35,12 @@ vec2 rotate(vec2 x, vec2 c, float a) /* UnitType::USER_SPACE*/ } -//Visual size and offset -UNIFORM_BLOCK VisualBlock +UNIFORM_BLOCK VisualVertBlock { - UNIFORM mediump vec2 offset; + //Visual size and offset + UNIFORM highp vec2 offset; UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -45,7 +48,7 @@ UNIFORM_BLOCK VisualBlock vec4 ComputeVertexPosition() { - vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ); + vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize; vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy ); return vec4( (aPosition + anchorPoint)*visualSize + visualOffset + origin * uSize.xy, 0.0, 1.0 ); } diff --git a/dali-toolkit/internal/graphics/shaders/arc-visual-butt-cap-shader.frag b/dali-toolkit/internal/graphics/shaders/arc-visual-butt-cap-shader.frag index 766120c4eb..3ae1c973d6 100644 --- a/dali-toolkit/internal/graphics/shaders/arc-visual-butt-cap-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/arc-visual-butt-cap-shader.frag @@ -2,34 +2,36 @@ //@version 100 -INPUT mediump vec2 vPosition; +precision highp float; + +INPUT highp vec2 vPosition; UNIFORM_BLOCK VertBlock { UNIFORM lowp vec4 uColor; - UNIFORM mediump float thickness; - UNIFORM mediump float radius; - UNIFORM mediump float startAngle; - UNIFORM mediump float sweepAngle; + UNIFORM highp float thickness; + UNIFORM highp float radius; + UNIFORM highp float startAngle; + UNIFORM highp float sweepAngle; }; -const mediump float M_PI_OVER_2 = 1.57079632679; -const mediump float M_PI = 3.14159265359; -const mediump float M_PI_2 = 6.28318530718; +const highp float M_PI_OVER_2 = 1.57079632679; +const highp float M_PI = 3.14159265359; +const highp float M_PI_2 = 6.28318530718; mediump float GetOpacity() { - mediump float start = radians( mod( startAngle, 360.0 ) ); - mediump float angle = mod( atan( vPosition.y, vPosition.x ) + M_PI_OVER_2 - start, M_PI_2 ); - mediump float dist = length( vPosition ); + highp float start = radians( mod( startAngle, 360.0 ) ); + highp float angle = mod( atan( vPosition.y, vPosition.x ) + M_PI_OVER_2 - start, M_PI_2 ); + highp float dist = length( vPosition ); if( angle <= radians( sweepAngle ) ) { return smoothstep( -1.0, 1.0, thickness / 2.0 - ( abs( dist - radius ) ) ); } - mediump float end = radians( mod( startAngle + sweepAngle, 360.0 ) ); - mediump vec2 q0 = vec2( dist * cos( start - M_PI_OVER_2 ), dist * sin( start - M_PI_OVER_2 ) ); - mediump vec2 q1 = vec2( dist * cos( end - M_PI_OVER_2 ), dist * sin( end - M_PI_OVER_2 ) ); - mediump float opacity = 1.0 - smoothstep( 0.0, 2.0, min( length( vPosition - q0 ), length( vPosition - q1 ) ) ); + highp float end = radians( mod( startAngle + sweepAngle, 360.0 ) ); + highp vec2 q0 = vec2( dist * cos( start - M_PI_OVER_2 ), dist * sin( start - M_PI_OVER_2 ) ); + highp vec2 q1 = vec2( dist * cos( end - M_PI_OVER_2 ), dist * sin( end - M_PI_OVER_2 ) ); + highp float opacity = 1.0 - smoothstep( 0.0, 2.0, min( length( vPosition - q0 ), length( vPosition - q1 ) ) ); opacity *= step( 0.0, thickness / 2.0 - abs( dist - radius ) ); return opacity; } diff --git a/dali-toolkit/internal/graphics/shaders/arc-visual-round-cap-shader.frag b/dali-toolkit/internal/graphics/shaders/arc-visual-round-cap-shader.frag index 2cf77abd6e..f4bda5a6b6 100644 --- a/dali-toolkit/internal/graphics/shaders/arc-visual-round-cap-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/arc-visual-round-cap-shader.frag @@ -2,32 +2,34 @@ //@version 100 -INPUT mediump vec2 vPosition; +precision highp float; + +INPUT highp vec2 vPosition; UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; - UNIFORM mediump float thickness; - UNIFORM mediump float radius; - UNIFORM mediump float startAngle; - UNIFORM mediump float sweepAngle; + UNIFORM highp float thickness; + UNIFORM highp float radius; + UNIFORM highp float startAngle; + UNIFORM highp float sweepAngle; }; -const mediump float M_PI_OVER_2 = 1.57079632679; -const mediump float M_PI_2 = 6.28318530718; +const highp float M_PI_OVER_2 = 1.57079632679; +const highp float M_PI_2 = 6.28318530718; mediump float GetOpacity() { - mediump float start = radians( mod( startAngle, 360.0 ) ); - mediump float angle = mod( atan( vPosition.y, vPosition.x ) + M_PI_OVER_2 - start, M_PI_2 ); - mediump float dist = length( vPosition ); + highp float start = radians( mod( startAngle, 360.0 ) ); + highp float angle = mod( atan( vPosition.y, vPosition.x ) + M_PI_OVER_2 - start, M_PI_2 ); + highp float dist = length( vPosition ); if( angle <= radians( sweepAngle ) ) { return smoothstep( -1.0, 1.0, thickness / 2.0 - ( abs( dist - radius ) ) ); } - mediump float end = radians( mod( startAngle + sweepAngle, 360.0 ) ); - mediump vec2 q0 = vec2( radius * cos( start - M_PI_OVER_2 ), radius * sin( start - M_PI_OVER_2 ) ); - mediump vec2 q1 = vec2( radius * cos( end - M_PI_OVER_2 ), radius * sin( end - M_PI_OVER_2 ) ); + highp float end = radians( mod( startAngle + sweepAngle, 360.0 ) ); + highp vec2 q0 = vec2( radius * cos( start - M_PI_OVER_2 ), radius * sin( start - M_PI_OVER_2 ) ); + highp vec2 q1 = vec2( radius * cos( end - M_PI_OVER_2 ), radius * sin( end - M_PI_OVER_2 ) ); return smoothstep( -1.0, 1.0, thickness / 2.0 - min( length( vPosition - q0 ), length( vPosition - q1 ) ) ); } diff --git a/dali-toolkit/internal/graphics/shaders/arc-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/arc-visual-shader.vert index 77dad610c9..3c8e8f669e 100644 --- a/dali-toolkit/internal/graphics/shaders/arc-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/arc-visual-shader.vert @@ -2,17 +2,23 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vPosition; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vPosition; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; UNIFORM highp vec3 uSize; +}; -//Visual size and offset - UNIFORM mediump vec2 offset; +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -21,7 +27,7 @@ UNIFORM_BLOCK VertBlock vec4 ComputeVertexPosition() { - vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ); + vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize; vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy); vPosition = aPosition* visualSize; return vec4( vPosition + anchorPoint*visualSize + visualOffset + origin * uSize.xy, 0.0, 1.0 ); diff --git a/dali-toolkit/internal/graphics/shaders/bloom-view-composite-shader.frag b/dali-toolkit/internal/graphics/shaders/bloom-view-composite-shader.frag index affb1571bf..41e0138d96 100644 --- a/dali-toolkit/internal/graphics/shaders/bloom-view-composite-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/bloom-view-composite-shader.frag @@ -2,8 +2,9 @@ //@version 100 -precision mediump float; -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM sampler2D sEffect; @@ -24,8 +25,8 @@ vec4 ChangeSaturation(vec4 col, float sat) void main() { - mediump vec4 image; - mediump vec4 bloom; + highp vec4 image; + highp vec4 bloom; image = TEXTURE(sTexture, vTexCoord); bloom = TEXTURE(sEffect, vTexCoord); image = ChangeSaturation(image, uImageSaturation) * uImageIntensity; diff --git a/dali-toolkit/internal/graphics/shaders/bloom-view-extract-shader.frag b/dali-toolkit/internal/graphics/shaders/bloom-view-extract-shader.frag index d65579704c..481d8e17f9 100644 --- a/dali-toolkit/internal/graphics/shaders/bloom-view-extract-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/bloom-view-extract-shader.frag @@ -2,18 +2,20 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; - UNIFORM mediump float uBloomThreshold; - UNIFORM mediump float uRecipOneMinusBloomThreshold; + UNIFORM highp float uBloomThreshold; + UNIFORM highp float uRecipOneMinusBloomThreshold; }; void main() { - mediump vec4 col; + highp vec4 col; col = TEXTURE(sTexture, vTexCoord); col = (col - uBloomThreshold) * uRecipOneMinusBloomThreshold; // remove intensities lower than the thresold and remap intensities above the threshold to [0..1] gl_FragColor = clamp(col, 0.0, 1.0); diff --git a/dali-toolkit/internal/graphics/shaders/blur-effect.frag b/dali-toolkit/internal/graphics/shaders/blur-effect.frag index ebe3511f8b..65b2551d77 100644 --- a/dali-toolkit/internal/graphics/shaders/blur-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/blur-effect.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/blur-two-images-shader.frag b/dali-toolkit/internal/graphics/shaders/blur-two-images-shader.frag index 765780eef4..a844a1be13 100644 --- a/dali-toolkit/internal/graphics/shaders/blur-two-images-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/blur-two-images-shader.frag @@ -6,12 +6,12 @@ precision highp float; UNIFORM_BLOCK FragBlock { - UNIFORM float uBlurStrength; + UNIFORM float uBlurStrength; }; UNIFORM sampler2D sTexture; UNIFORM sampler2D sEffect; -INPUT mediump vec2 vTexCoord; +INPUT highp vec2 vTexCoord; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/blur-two-pass-shader.frag b/dali-toolkit/internal/graphics/shaders/blur-two-pass-shader.frag index 733335ed1c..bcaf9da721 100644 --- a/dali-toolkit/internal/graphics/shaders/blur-two-pass-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/blur-two-pass-shader.frag @@ -3,7 +3,8 @@ //@version 100 precision highp float; -INPUT mediump vec2 vTexCoord; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.frag b/dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.frag index 9fe7a27216..d4d6808ba5 100644 --- a/dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.frag @@ -2,13 +2,15 @@ //@version 100 -INPUT mediump float vAlpha; +precision highp float; + +INPUT highp float vAlpha; UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; UNIFORM lowp vec4 borderColor; - UNIFORM mediump float borderSize; + UNIFORM highp float borderSize; }; void main() diff --git a/dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.vert b/dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.vert index 4e8573dcae..3c7041913a 100644 --- a/dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.vert @@ -2,9 +2,11 @@ //@version 100 -INPUT mediump vec2 aPosition; -INPUT mediump vec2 aDrift; -OUTPUT mediump float vAlpha; +precision highp float; + +INPUT highp vec2 aPosition; +INPUT highp vec2 aDrift; +OUTPUT highp float vAlpha; UNIFORM_BLOCK VertBlock { @@ -16,12 +18,30 @@ UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; UNIFORM lowp vec4 borderColor; - UNIFORM mediump float borderSize; + UNIFORM highp float borderSize; +}; + +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; + UNIFORM mediump vec4 offsetSizeMode; + UNIFORM mediump vec2 origin; + UNIFORM mediump vec2 anchorPoint; }; +vec2 ComputeVertexPosition() +{ + vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize + vec2(0.75, 0.75); + vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy); + return (aPosition + anchorPoint)*visualSize + visualOffset + origin * uSize.xy; +} + void main() { - vec2 position = aPosition*(uSize.xy+vec2(0.75)) + aDrift*(borderSize+1.5); + vec2 position = ComputeVertexPosition() + aDrift*(borderSize+1.5); gl_Position = uMvpMatrix * vec4(position, 0.0, 1.0); vAlpha = min( abs(aDrift.x), abs(aDrift.y) )*(borderSize+1.5); } \ No newline at end of file diff --git a/dali-toolkit/internal/graphics/shaders/border-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/border-visual-shader.frag index 8fc99cd757..bcdad28859 100644 --- a/dali-toolkit/internal/graphics/shaders/border-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/border-visual-shader.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; diff --git a/dali-toolkit/internal/graphics/shaders/border-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/border-visual-shader.vert index 96b3a84c49..605a8b5588 100644 --- a/dali-toolkit/internal/graphics/shaders/border-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/border-visual-shader.vert @@ -2,18 +2,24 @@ //@version 100 -INPUT mediump vec2 aPosition; -INPUT mediump vec2 aDrift; +precision highp float; + +INPUT highp vec2 aPosition; +INPUT highp vec2 aDrift; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; UNIFORM highp vec3 uSize; - UNIFORM mediump float borderSize; + UNIFORM highp float borderSize; +}; -//Visual size and offset - UNIFORM mediump vec2 offset; +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -21,7 +27,7 @@ UNIFORM_BLOCK VertBlock vec2 ComputeVertexPosition() { - vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ); + vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize; vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy); return (aPosition + anchorPoint)*visualSize + visualOffset + origin * uSize.xy; } diff --git a/dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.frag b/dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.frag index b9b939876d..a13de180fa 100644 --- a/dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + // Use the actor color to paint every layer UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.vert b/dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.vert index fa5ba13a18..e784fa9067 100644 --- a/dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.vert @@ -2,14 +2,16 @@ //@version 100 +precision highp float; + // Modify the vertex position according to the bounce coefficient -INPUT mediump vec3 aPosition1; -INPUT mediump vec3 aPosition2; +INPUT highp vec3 aPosition1; +INPUT highp vec3 aPosition2; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump vec3 uSize; - UNIFORM mediump float uBounceCoefficient; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp vec3 uSize; + UNIFORM highp float uBounceCoefficient; }; void main() diff --git a/dali-toolkit/internal/graphics/shaders/bubble-effect-color-adjuster.frag b/dali-toolkit/internal/graphics/shaders/bubble-effect-color-adjuster.frag index 3d881d868b..d68c8bf454 100644 --- a/dali-toolkit/internal/graphics/shaders/bubble-effect-color-adjuster.frag +++ b/dali-toolkit/internal/graphics/shaders/bubble-effect-color-adjuster.frag @@ -10,7 +10,7 @@ UNIFORM_BLOCK FragBlock UNIFORM float uIgnoreAlpha; }; -INPUT mediump vec2 vTexCoord; +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; float rand(vec2 co) diff --git a/dali-toolkit/internal/graphics/shaders/bubble-effect.frag b/dali-toolkit/internal/graphics/shaders/bubble-effect.frag index 17772c8bd3..eb187bc81d 100644 --- a/dali-toolkit/internal/graphics/shaders/bubble-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/bubble-effect.frag @@ -2,11 +2,13 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sBackground; UNIFORM sampler2D sBubbleShape; -INPUT mediump float vPercentage; -INPUT mediump vec2 vEffectTexCoord; +INPUT highp float vPercentage; +INPUT highp vec2 vEffectTexCoord; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/bubble-effect.vert b/dali-toolkit/internal/graphics/shaders/bubble-effect.vert index c4d113535f..b5b04de587 100644 --- a/dali-toolkit/internal/graphics/shaders/bubble-effect.vert +++ b/dali-toolkit/internal/graphics/shaders/bubble-effect.vert @@ -2,14 +2,16 @@ //@version 100 -INPUT mediump float aIndex; -INPUT mediump vec2 aPosition; -INPUT highp vec2 aTexCoord; -OUTPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp float aIndex; +INPUT highp vec2 aPosition; +INPUT highp vec2 aTexCoord; +OUTPUT highp vec2 vTexCoord; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uMvpMatrix; + UNIFORM highp mat4 uMvpMatrix; // the gravity applied to the y direction UNIFORM mediump float uGravity; // xy: the emit position of the bubble; zw: the destination of the bubble. @@ -25,8 +27,8 @@ UNIFORM_BLOCK VertBlock // This UNIFORM is used to change the bubble size during running time UNIFORM float uDynamicScale; }; -OUTPUT float vPercentage; -OUTPUT vec2 vEffectTexCoord; +OUTPUT highp float vPercentage; +OUTPUT highp vec2 vEffectTexCoord; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/bubble-emitter.frag b/dali-toolkit/internal/graphics/shaders/bubble-emitter.frag index e66b29fa20..7b59307400 100644 --- a/dali-toolkit/internal/graphics/shaders/bubble-emitter.frag +++ b/dali-toolkit/internal/graphics/shaders/bubble-emitter.frag @@ -9,7 +9,7 @@ UNIFORM_BLOCK FragBlock UNIFORM vec3 uHSVDelta; }; -INPUT mediump vec2 vTexCoord; +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; float rand(vec2 co) diff --git a/dali-toolkit/internal/graphics/shaders/bubble-emitter.vert b/dali-toolkit/internal/graphics/shaders/bubble-emitter.vert index 9b296039cd..b772443ccf 100644 --- a/dali-toolkit/internal/graphics/shaders/bubble-emitter.vert +++ b/dali-toolkit/internal/graphics/shaders/bubble-emitter.vert @@ -2,14 +2,16 @@ //@version 100 -INPUT mediump vec2 aPosition; -INPUT mediump vec2 aTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +INPUT highp vec2 aTexCoord; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump mat4 uMvpMatrix; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uMvpMatrix; }; -OUTPUT mediump vec2 vTexCoord; +OUTPUT highp vec2 vTexCoord; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/canvas-view.frag b/dali-toolkit/internal/graphics/shaders/canvas-view.frag index eb74278693..8dc34eb095 100644 --- a/dali-toolkit/internal/graphics/shaders/canvas-view.frag +++ b/dali-toolkit/internal/graphics/shaders/canvas-view.frag @@ -2,12 +2,14 @@ //@version 100 +precision highp float; + UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; }; -INPUT mediump vec2 vTexCoord; +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; void main() diff --git a/dali-toolkit/internal/graphics/shaders/canvas-view.vert b/dali-toolkit/internal/graphics/shaders/canvas-view.vert index dca16ef288..016f79e575 100644 --- a/dali-toolkit/internal/graphics/shaders/canvas-view.vert +++ b/dali-toolkit/internal/graphics/shaders/canvas-view.vert @@ -2,8 +2,10 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; diff --git a/dali-toolkit/internal/graphics/shaders/color-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/color-visual-shader.frag index 8276a46718..356eb7a193 100644 --- a/dali-toolkit/internal/graphics/shaders/color-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/color-visual-shader.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + #if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) || defined(IS_REQUIRED_BLUR) INPUT highp vec2 vPosition; FLAT INPUT highp vec2 vRectSize; @@ -30,6 +32,10 @@ UNIFORM_BLOCK FragBlock UNIFORM lowp int uCutoutOutside; #endif +#ifdef IS_REQUIRED_BORDERLINE + UNIFORM lowp vec4 borderlineColor; +#endif + #ifdef IS_REQUIRED_SQUIRCLE_CORNER UNIFORM highp vec4 cornerSquareness; #endif @@ -45,7 +51,6 @@ UNIFORM_BLOCK SharedBlock #ifdef IS_REQUIRED_BORDERLINE UNIFORM highp float borderlineWidth; UNIFORM highp float borderlineOffset; - UNIFORM lowp vec4 borderlineColor; #endif }; @@ -181,13 +186,13 @@ lowp vec4 convertBorderlineColorWithBlur(lowp vec4 textureColor,highp float curr blurRadius = max(blurRadius, 0.0) + vAliasMargin; - lowp vec3 borderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; - lowp float borderlineColorAlpha = borderlineColor.a * uActorColor.a; + highp vec3 borderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; + highp float borderlineColorAlpha = borderlineColor.a * uActorColor.a; // NOTE : color-visual is always preMultiplied. borderlineColorRGB *= borderlineColorAlpha; - mediump float borderlineOpacity = 0.0; - mediump float textureOpacity = 0.0; + highp float borderlineOpacity = 0.0; + highp float textureOpacity = 0.0; highp float outsideThreshold = gRadius; highp float insideThreshold = gRadius - currentBorderlineWidth; @@ -213,8 +218,8 @@ lowp vec4 convertBorderlineColorWithBlur(lowp vec4 textureColor,highp float curr // If premultipliedAlpha == 1.0, just return vec4(rgb*alpha, alpha) // Else, return vec4((rgb*alpha) / alpha, alpha) - lowp float finalAlpha = mix(textureColor.a, 1.0, borderlineColorAlpha); - lowp vec3 finalMultipliedRGB = borderlineColorRGB + (1.0 - borderlineColorAlpha) * textureColor.rgb; + highp float finalAlpha = mix(textureColor.a, 1.0, borderlineColorAlpha); + highp vec3 finalMultipliedRGB = borderlineColorRGB + (1.0 - borderlineColorAlpha) * textureColor.rgb; return vec4(finalMultipliedRGB, finalAlpha); } #else @@ -223,7 +228,7 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) highp float potential = gPotential; // default opacity of borderline is 0.0 - mediump float borderlineOpacity = 0.0; + highp float borderlineOpacity = 0.0; // calculate borderline opacity by potential if(potential > gMinInlinePotential) @@ -235,8 +240,8 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) borderlineOpacity *= min(1.0, borderlineWidth / gPotentialRange); } - lowp vec3 borderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; - lowp float borderlineColorAlpha = borderlineColor.a * uActorColor.a; + highp vec3 borderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; + highp float borderlineColorAlpha = borderlineColor.a * uActorColor.a; // NOTE : color-visual is always preMultiplied. borderlineColorRGB *= borderlineColorAlpha; @@ -256,7 +261,7 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) else { // potential is in texture range. - lowp float textureAlphaScale = mix(1.0, 0.0, smoothstep(MinTexturelinePotential, MaxTexturelinePotential, potential)); + highp float textureAlphaScale = mix(1.0, 0.0, smoothstep(MinTexturelinePotential, MaxTexturelinePotential, potential)); textureColor.a *= textureAlphaScale; textureColor.rgb *= textureAlphaScale; } @@ -273,8 +278,8 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) // If premultipliedAlpha == 1.0, just return vec4(rgb*alpha, alpha) // Else, return vec4((rgb*alpha) / alpha, alpha) - lowp float finalAlpha = mix(textureColor.a, 1.0, borderlineColorAlpha); - lowp vec3 finalMultipliedRGB = borderlineColorRGB + (1.0 - borderlineColorAlpha) * textureColor.rgb; + highp float finalAlpha = mix(textureColor.a, 1.0, borderlineColorAlpha); + highp vec3 finalMultipliedRGB = borderlineColorRGB + (1.0 - borderlineColorAlpha) * textureColor.rgb; return vec4(finalMultipliedRGB, finalAlpha); } return mix(textureColor, vec4(borderlineColorRGB, borderlineColorAlpha), borderlineOpacity); diff --git a/dali-toolkit/internal/graphics/shaders/color-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/color-visual-shader.vert index 36e8898488..526e6c2153 100644 --- a/dali-toolkit/internal/graphics/shaders/color-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/color-visual-shader.vert @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; #if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) || defined(IS_REQUIRED_BLUR) OUTPUT highp vec2 vPosition; FLAT OUTPUT highp vec2 vRectSize; @@ -23,36 +25,38 @@ UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; - #if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) || defined(IS_REQUIRED_BLUR) +#if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) || defined(IS_REQUIRED_BLUR) // Be used when we calculate anti-alias range near 1 pixel. UNIFORM highp vec3 uScale; - #endif +#endif + +#ifdef IS_REQUIRED_ROUNDED_CORNER + UNIFORM highp vec4 cornerRadius; + UNIFORM mediump float cornerRadiusPolicy; +#endif +}; +UNIFORM_BLOCK VisualVertBlock +{ //Visual size and offset UNIFORM highp vec2 offset; UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; - -#ifdef IS_REQUIRED_ROUNDED_CORNER - UNIFORM highp vec4 cornerRadius; - UNIFORM mediump float cornerRadiusPolicy; -#endif - UNIFORM highp vec2 extraSize; }; UNIFORM_BLOCK SharedBlock { - UNIFORM highp vec3 uSize; + UNIFORM highp vec3 uSize; #ifdef IS_REQUIRED_BLUR - UNIFORM highp float blurRadius; + UNIFORM highp float blurRadius; #endif #ifdef IS_REQUIRED_BORDERLINE - UNIFORM highp float borderlineWidth; - UNIFORM highp float borderlineOffset; - UNIFORM lowp vec4 borderlineColor; + UNIFORM highp float borderlineWidth; + UNIFORM highp float borderlineOffset; #endif }; diff --git a/dali-toolkit/internal/graphics/shaders/control-renderers.frag b/dali-toolkit/internal/graphics/shaders/control-renderers.frag index 1d7852d793..b398ee4ed4 100644 --- a/dali-toolkit/internal/graphics/shaders/control-renderers.frag +++ b/dali-toolkit/internal/graphics/shaders/control-renderers.frag @@ -3,6 +3,7 @@ //@version 100 precision highp float; + INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragColor diff --git a/dali-toolkit/internal/graphics/shaders/control-renderers.vert b/dali-toolkit/internal/graphics/shaders/control-renderers.vert index 5b52919e76..cf70fa519e 100644 --- a/dali-toolkit/internal/graphics/shaders/control-renderers.vert +++ b/dali-toolkit/internal/graphics/shaders/control-renderers.vert @@ -3,6 +3,7 @@ //@version 100 precision highp float; + INPUT highp vec2 aPosition; OUTPUT highp vec2 vTexCoord; UNIFORM_BLOCK VertBlock diff --git a/dali-toolkit/internal/graphics/shaders/cube-transition-effect.frag b/dali-toolkit/internal/graphics/shaders/cube-transition-effect.frag index 532cb1178c..d9423b442c 100644 --- a/dali-toolkit/internal/graphics/shaders/cube-transition-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/cube-transition-effect.frag @@ -2,12 +2,13 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; - UNIFORM lowp vec4 uSamplerRect; }; void main() diff --git a/dali-toolkit/internal/graphics/shaders/cube-transition-effect.vert b/dali-toolkit/internal/graphics/shaders/cube-transition-effect.vert index 2ede71ca99..d35f3f09c0 100644 --- a/dali-toolkit/internal/graphics/shaders/cube-transition-effect.vert +++ b/dali-toolkit/internal/graphics/shaders/cube-transition-effect.vert @@ -2,18 +2,20 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump vec3 uSize; - UNIFORM mediump vec4 uTextureRect; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp vec3 uSize; + UNIFORM highp vec4 uTextureRect; }; void main() { - mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0); + highp vec4 vertexPosition = vec4(aPosition, 0.0, 1.0); vertexPosition.xyz *= uSize; vertexPosition = uMvpMatrix * vertexPosition; diff --git a/dali-toolkit/internal/graphics/shaders/dissolve-effect.frag b/dali-toolkit/internal/graphics/shaders/dissolve-effect.frag index ca8f4f9d72..ea27644fa5 100644 --- a/dali-toolkit/internal/graphics/shaders/dissolve-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/dissolve-effect.frag @@ -2,8 +2,10 @@ //@version 100 -INPUT float vPercentage; -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp float vPercentage; +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/dissolve-effect.vert b/dali-toolkit/internal/graphics/shaders/dissolve-effect.vert index e03d9c551b..06e23589fd 100644 --- a/dali-toolkit/internal/graphics/shaders/dissolve-effect.vert +++ b/dali-toolkit/internal/graphics/shaders/dissolve-effect.vert @@ -2,24 +2,26 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM vec3 uSize; - - UNIFORM float uPercentage; - UNIFORM vec3 uSaddleParam; - UNIFORM vec2 uTranslation; - UNIFORM vec2 uRotation; - UNIFORM float uToNext; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp vec3 uSize; + + UNIFORM highp float uPercentage; + UNIFORM highp vec3 uSaddleParam; + UNIFORM highp vec2 uTranslation; + UNIFORM highp vec2 uRotation; + UNIFORM highp float uToNext; }; -OUTPUT float vPercentage; -OUTPUT vec2 vTexCoord; +OUTPUT highp float vPercentage; +OUTPUT highp vec2 vTexCoord; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/distance-field-effect.frag b/dali-toolkit/internal/graphics/shaders/distance-field-effect.frag index 8c83c138f5..22e77e3737 100644 --- a/dali-toolkit/internal/graphics/shaders/distance-field-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/distance-field-effect.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/effects-view.frag b/dali-toolkit/internal/graphics/shaders/effects-view.frag index bf6f369194..4750edd469 100644 --- a/dali-toolkit/internal/graphics/shaders/effects-view.frag +++ b/dali-toolkit/internal/graphics/shaders/effects-view.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/effects-view.vert b/dali-toolkit/internal/graphics/shaders/effects-view.vert index 0b3975e01b..071a38b5b5 100644 --- a/dali-toolkit/internal/graphics/shaders/effects-view.vert +++ b/dali-toolkit/internal/graphics/shaders/effects-view.vert @@ -2,18 +2,20 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump vec3 uSize; - UNIFORM mediump vec3 effectOffset; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp vec3 uSize; + UNIFORM highp vec3 effectOffset; }; void main() { - mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0); + highp vec4 vertexPosition = vec4(aPosition, 0.0, 1.0); vertexPosition.xyz *= uSize; vertexPosition.xyz += effectOffset; vertexPosition = uMvpMatrix * vertexPosition; diff --git a/dali-toolkit/internal/graphics/shaders/emboss-filter-composite-shader.frag b/dali-toolkit/internal/graphics/shaders/emboss-filter-composite-shader.frag index 0dca02b109..166ef1c63e 100644 --- a/dali-toolkit/internal/graphics/shaders/emboss-filter-composite-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/emboss-filter-composite-shader.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/emboss-filter-shader.frag b/dali-toolkit/internal/graphics/shaders/emboss-filter-shader.frag index b73e22f724..83995e584e 100644 --- a/dali-toolkit/internal/graphics/shaders/emboss-filter-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/emboss-filter-shader.frag @@ -3,7 +3,8 @@ //@version 100 precision highp float; -INPUT mediump vec2 vTexCoord; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/gaussian-blur-view.frag b/dali-toolkit/internal/graphics/shaders/gaussian-blur-view.frag index 438042cbdf..ea4352c59f 100644 --- a/dali-toolkit/internal/graphics/shaders/gaussian-blur-view.frag +++ b/dali-toolkit/internal/graphics/shaders/gaussian-blur-view.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/gltf-basecolor-texture.def b/dali-toolkit/internal/graphics/shaders/gltf-basecolor-texture.def index 41797cc8df..0b8499bfbb 100644 --- a/dali-toolkit/internal/graphics/shaders/gltf-basecolor-texture.def +++ b/dali-toolkit/internal/graphics/shaders/gltf-basecolor-texture.def @@ -4,5 +4,5 @@ UNIFORM sampler2D uBaseColorSampler; UNIFORM_BLOCK FragBlockBaseColor { - UNIFORM int uBaseColorTexCoordIndex; + UNIFORM highp int uBaseColorTexCoordIndex; }; diff --git a/dali-toolkit/internal/graphics/shaders/gltf-emit-texture.def b/dali-toolkit/internal/graphics/shaders/gltf-emit-texture.def index e0bf297405..f02ca2ec21 100644 --- a/dali-toolkit/internal/graphics/shaders/gltf-emit-texture.def +++ b/dali-toolkit/internal/graphics/shaders/gltf-emit-texture.def @@ -3,6 +3,6 @@ UNIFORM sampler2D uEmissiveSampler; UNIFORM_BLOCK FragBlockEmissive { - UNIFORM int uEmissiveTexCoordIndex; - UNIFORM vec3 uEmissiveFactor; + UNIFORM highp int uEmissiveTexCoordIndex; + UNIFORM highp vec3 uEmissiveFactor; }; diff --git a/dali-toolkit/internal/graphics/shaders/gltf-ibl-texture.def b/dali-toolkit/internal/graphics/shaders/gltf-ibl-texture.def index 617e882802..b8dc01004b 100644 --- a/dali-toolkit/internal/graphics/shaders/gltf-ibl-texture.def +++ b/dali-toolkit/internal/graphics/shaders/gltf-ibl-texture.def @@ -6,6 +6,6 @@ UNIFORM samplerCube uSpecularEnvSampler; UNIFORM_BLOCK FragBlockIBL { - UNIFORM vec4 uScaleIBLAmbient; + UNIFORM highp vec4 uScaleIBLAmbient; UNIFORM highp float uMipmapLevel; }; diff --git a/dali-toolkit/internal/graphics/shaders/gltf-metallicroughness-texture.def b/dali-toolkit/internal/graphics/shaders/gltf-metallicroughness-texture.def index 4df8eba31a..2091e60981 100644 --- a/dali-toolkit/internal/graphics/shaders/gltf-metallicroughness-texture.def +++ b/dali-toolkit/internal/graphics/shaders/gltf-metallicroughness-texture.def @@ -4,5 +4,5 @@ UNIFORM sampler2D uMetallicRoughnessSampler; UNIFORM_BLOCK FragBlockMetRough { - UNIFORM int uMetallicRoughnessTexCoordIndex; + UNIFORM highp int uMetallicRoughnessTexCoordIndex; }; diff --git a/dali-toolkit/internal/graphics/shaders/gltf-normal-texture.def b/dali-toolkit/internal/graphics/shaders/gltf-normal-texture.def index b469b3b39e..985bd4d4b7 100644 --- a/dali-toolkit/internal/graphics/shaders/gltf-normal-texture.def +++ b/dali-toolkit/internal/graphics/shaders/gltf-normal-texture.def @@ -3,6 +3,6 @@ UNIFORM sampler2D uNormalSampler; UNIFORM_BLOCK FragBlockNormal { - UNIFORM float uNormalScale; - UNIFORM int uNormalTexCoordIndex; + UNIFORM highp float uNormalScale; + UNIFORM highp int uNormalTexCoordIndex; }; diff --git a/dali-toolkit/internal/graphics/shaders/gltf-occulusion-texture.def b/dali-toolkit/internal/graphics/shaders/gltf-occulusion-texture.def index 828252b714..5dabfa44f1 100644 --- a/dali-toolkit/internal/graphics/shaders/gltf-occulusion-texture.def +++ b/dali-toolkit/internal/graphics/shaders/gltf-occulusion-texture.def @@ -3,6 +3,6 @@ UNIFORM sampler2D uOcclusionSampler; UNIFORM_BLOCK FragBlockOcclusion { - UNIFORM int uOcclusionTexCoordIndex; - UNIFORM float uOcclusionStrength; + UNIFORM highp int uOcclusionTexCoordIndex; + UNIFORM highp float uOcclusionStrength; }; diff --git a/dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.frag b/dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.frag index 8c1672daf3..4267c80a39 100644 --- a/dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.frag @@ -12,9 +12,9 @@ UNIFORM_BLOCK FragBlock UNIFORM lowp float uHasLightSource; }; -INPUT lowp vec2 vUV[2]; -INPUT lowp mat3 vTBN; -INPUT lowp vec4 vColor; +INPUT highp vec2 vUV[2]; +INPUT highp mat3 vTBN; +INPUT highp vec4 vColor; INPUT highp vec3 vLightDirection; INPUT highp vec3 vPositionToCamera; diff --git a/dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.vert b/dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.vert index 7d4b5b8837..f94d29994a 100644 --- a/dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.vert @@ -3,26 +3,26 @@ //@version 100 INPUT highp vec3 aPosition; -INPUT mediump vec2 aTexCoord0; -INPUT mediump vec2 aTexCoord1; -INPUT lowp vec3 aNormal; -INPUT lowp vec4 aTangent; -INPUT lowp vec4 aVertexColor; +INPUT highp vec2 aTexCoord0; +INPUT highp vec2 aTexCoord1; +INPUT highp vec3 aNormal; +INPUT highp vec4 aTangent; +INPUT highp vec4 aVertexColor; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump mat4 uModelMatrix; - UNIFORM mediump mat4 uViewMatrix; - UNIFORM mediump mat4 uProjection; - UNIFORM mediump vec3 uLightVector; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uModelMatrix; + UNIFORM highp mat4 uViewMatrix; + UNIFORM highp mat4 uProjection; + UNIFORM highp vec3 uLightVector; UNIFORM lowp float uIsPointLight; UNIFORM lowp float uHasVertexColor; }; -OUTPUT lowp vec2 vUV[2]; -OUTPUT lowp mat3 vTBN; -OUTPUT lowp vec4 vColor; +OUTPUT highp vec2 vUV[2]; +OUTPUT highp mat3 vTBN; +OUTPUT highp vec4 vColor; OUTPUT highp vec3 vLightDirection; OUTPUT highp vec3 vPositionToCamera; diff --git a/dali-toolkit/internal/graphics/shaders/gradient-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/gradient-visual-shader.frag index 90afff5a2a..7a2572b550 100644 --- a/dali-toolkit/internal/graphics/shaders/gradient-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/gradient-visual-shader.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; #if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) INPUT highp vec2 vPosition; FLAT INPUT highp vec2 vRectSize; @@ -18,24 +20,27 @@ UNIFORM sampler2D sTexture; // sampler1D? UNIFORM_BLOCK FragBlock { // scale factor to fit start and end position of gradient. - UNIFORM mediump float uTextureCoordinateScaleFactor; + UNIFORM highp float uTextureCoordinateScaleFactor; UNIFORM lowp vec4 uColor; + +#ifdef IS_REQUIRED_BORDERLINE + UNIFORM lowp vec4 borderlineColor; + UNIFORM lowp vec4 uActorColor; +#endif + +#ifdef IS_REQUIRED_SQUIRCLE_CORNER + UNIFORM highp vec4 cornerSquareness; +#endif }; #ifdef IS_REQUIRED_BORDERLINE -UNIFORM_BLOCK SharedBlock +UNIFORM_BLOCK Borderline { UNIFORM highp float borderlineWidth; UNIFORM highp float borderlineOffset; - UNIFORM lowp vec4 borderlineColor; - UNIFORM lowp vec4 uActorColor; }; #endif -#ifdef IS_REQUIRED_SQUIRCLE_CORNER -uniform highp vec4 cornerSquareness; -#endif - #if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) // Global values both rounded corner and borderline use @@ -166,7 +171,7 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) highp float potential = gPotential; // default opacity of borderline is 0.0 - mediump float borderlineOpacity = 0.0; + highp float borderlineOpacity = 0.0; // calculate borderline opacity by potential if(potential > gMinInlinePotential) @@ -178,8 +183,8 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) borderlineOpacity *= min(1.0, borderlineWidth / gPotentialRange); } - lowp vec3 borderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; - lowp float borderlineColorAlpha = borderlineColor.a * uActorColor.a; + highp vec3 borderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; + highp float borderlineColorAlpha = borderlineColor.a * uActorColor.a; // NOTE : gradient-visual is always preMultiplied. borderlineColorRGB *= borderlineColorAlpha; @@ -199,7 +204,7 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) else { // potential is in texture range. - lowp float textureAlphaScale = mix(1.0, 0.0, smoothstep(MinTexturelinePotential, MaxTexturelinePotential, potential)); + highp float textureAlphaScale = mix(1.0, 0.0, smoothstep(MinTexturelinePotential, MaxTexturelinePotential, potential)); textureColor.a *= textureAlphaScale; textureColor.rgb *= textureAlphaScale; } @@ -216,8 +221,8 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) // If premultipliedAlpha == 1.0, just return vec4(rgb*alpha, alpha) // Else, return vec4((rgb*alpha) / alpha, alpha) - lowp float finalAlpha = mix(textureColor.a, 1.0, borderlineColorAlpha); - lowp vec3 finalMultipliedRGB = borderlineColorRGB + (1.0 - borderlineColorAlpha) * textureColor.rgb; + highp float finalAlpha = mix(textureColor.a, 1.0, borderlineColorAlpha); + highp vec3 finalMultipliedRGB = borderlineColorRGB + (1.0 - borderlineColorAlpha) * textureColor.rgb; return vec4(finalMultipliedRGB, finalAlpha); } return mix(textureColor, vec4(borderlineColorRGB, borderlineColorAlpha), borderlineOpacity); diff --git a/dali-toolkit/internal/graphics/shaders/gradient-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/gradient-visual-shader.vert index ad27699776..18a7c37f5b 100644 --- a/dali-toolkit/internal/graphics/shaders/gradient-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/gradient-visual-shader.vert @@ -2,8 +2,10 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; #if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) OUTPUT highp vec2 vPosition; FLAT OUTPUT highp vec2 vRectSize; @@ -18,38 +20,41 @@ UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; UNIFORM highp vec3 uSize; - UNIFORM mediump mat3 uAlignmentMatrix; + UNIFORM highp mat3 uAlignmentMatrix; #if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) // Be used when we calculate anti-alias range near 1 pixel. UNIFORM highp vec3 uScale; #endif - // Visual size and offset - UNIFORM highp vec2 offset; - UNIFORM highp vec2 size; - UNIFORM mediump vec4 offsetSizeMode; - UNIFORM mediump vec2 origin; - UNIFORM mediump vec2 anchorPoint; #ifdef IS_REQUIRED_ROUNDED_CORNER UNIFORM highp vec4 cornerRadius; UNIFORM mediump float cornerRadiusPolicy; #endif }; +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; + UNIFORM mediump vec4 offsetSizeMode; + UNIFORM mediump vec2 origin; + UNIFORM mediump vec2 anchorPoint; +}; + #ifdef IS_REQUIRED_BORDERLINE -UNIFORM_BLOCK SharedBlock +UNIFORM_BLOCK Borderline { UNIFORM highp float borderlineWidth; UNIFORM highp float borderlineOffset; - UNIFORM lowp vec4 borderlineColor; - UNIFORM lowp vec4 uActorColor; }; #endif vec4 ComputeVertexPosition() { - highp vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ); + highp vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize; highp vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy); #if defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) diff --git a/dali-toolkit/internal/graphics/shaders/image-region-effect.vert b/dali-toolkit/internal/graphics/shaders/image-region-effect.vert index 9ec5ca5c32..e4e9e08f0f 100644 --- a/dali-toolkit/internal/graphics/shaders/image-region-effect.vert +++ b/dali-toolkit/internal/graphics/shaders/image-region-effect.vert @@ -2,22 +2,24 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; OUTPUT vec2 vTexCoord; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec2 uTopLeft; - UNIFORM mediump vec2 uBottomRight; - UNIFORM mediump mat4 uMvpMatrix; + UNIFORM highp vec2 uTopLeft; + UNIFORM highp vec2 uBottomRight; + UNIFORM highp mat4 uMvpMatrix; UNIFORM vec3 uSize; UNIFORM vec4 uTextureRect; }; void main() { - mediump vec4 position = vec4(aPosition, 0.0, 1.0); + highp vec4 position = vec4(aPosition, 0.0, 1.0); position.xyz *= uSize; gl_Position = uMvpMatrix * position; diff --git a/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag index 795ff7078d..973630c7b7 100644 --- a/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; #if defined(IS_REQUIRED_DEBUG_VISUAL_SHADER) || defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) INPUT highp vec2 vPosition; FLAT INPUT highp vec2 vRectSize; @@ -25,7 +27,7 @@ UNIFORM sampler2D sTextureV; #ifdef IS_REQUIRED_ALPHA_MASKING UNIFORM sampler2D sMaskTexture; -INPUT mediump vec2 vMaskTexCoord; +INPUT highp vec2 vMaskTexCoord; #endif UNIFORM_BLOCK FragBlock @@ -35,17 +37,13 @@ UNIFORM_BLOCK FragBlock #endif #ifdef ATLAS_DEFAULT_WARP - UNIFORM mediump vec4 uAtlasRect; + UNIFORM highp vec4 uAtlasRect; #elif defined(ATLAS_CUSTOM_WARP) // WrapMode -- 0: CLAMP; 1: REPEAT; 2: REFLECT; UNIFORM lowp vec2 wrapMode; #endif -#if defined(IS_REQUIRED_DEBUG_VISUAL_SHADER) - UNIFORM highp vec3 uScale; -#endif - UNIFORM lowp vec4 uColor; UNIFORM lowp float premultipliedAlpha; @@ -59,6 +57,13 @@ UNIFORM_BLOCK FragBlock #endif }; +#if defined(IS_REQUIRED_DEBUG_VISUAL_SHADER) +UNIFORM_BLOCK SharedBlock +{ + UNIFORM highp vec3 uScale; +}; +#endif + #ifdef IS_REQUIRED_BORDERLINE UNIFORM_BLOCK Borderline { @@ -68,9 +73,9 @@ UNIFORM_BLOCK Borderline #endif #ifdef ATLAS_CUSTOM_WARP -mediump float wrapCoordinate( mediump vec2 range, mediump float coordinate, lowp float wrap ) +highp float wrapCoordinate( highp vec2 range, highp float coordinate, lowp float wrap ) { - mediump float coord; + highp float coord; if( wrap > 1.5 ) /* REFLECT */ coord = 1.0 - abs(fract(coordinate*0.5)*2.0 - 1.0); else /* warp is 0 or 1 */ @@ -208,7 +213,7 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) highp float potential = gPotential; // default opacity of borderline is 0.0 - mediump float borderlineOpacity = 0.0; + highp float borderlineOpacity = 0.0; // calculate borderline opacity by potential if(potential > gMinInlinePotential) @@ -220,8 +225,8 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) borderlineOpacity *= min(1.0, borderlineWidth / gPotentialRange); } - lowp vec3 borderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; - lowp float borderlineColorAlpha = borderlineColor.a * uActorColor.a; + highp vec3 borderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; + highp float borderlineColorAlpha = borderlineColor.a * uActorColor.a; borderlineColorRGB *= mix(1.0, borderlineColorAlpha, premultipliedAlpha); // Calculate inside of borderline when alpha is between (0.0 1.0). So we need to apply texture color. @@ -240,7 +245,7 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) else { // potential is in texture range. - lowp float textureAlphaScale = mix(1.0, 0.0, smoothstep(MinTexturelinePotential, MaxTexturelinePotential, potential)); + highp float textureAlphaScale = mix(1.0, 0.0, smoothstep(MinTexturelinePotential, MaxTexturelinePotential, potential)); textureColor.a *= textureAlphaScale; textureColor.rgb *= mix(textureColor.a, textureAlphaScale, premultipliedAlpha); } @@ -256,8 +261,8 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) // If premultipliedAlpha == 1.0, just return vec4(rgb*alpha, alpha) // Else, return vec4((rgb*alpha) / alpha, alpha) - lowp float finalAlpha = mix(textureColor.a, 1.0, borderlineColorAlpha); - lowp vec3 finalMultipliedRGB = borderlineColorRGB + (1.0 - borderlineColorAlpha) * textureColor.rgb; + highp float finalAlpha = mix(textureColor.a, 1.0, borderlineColorAlpha); + highp vec3 finalMultipliedRGB = borderlineColorRGB + (1.0 - borderlineColorAlpha) * textureColor.rgb; // TODO : Need to find some way without division return vec4(finalMultipliedRGB * mix(1.0 / finalAlpha, 1.0, premultipliedAlpha), finalAlpha); } @@ -299,10 +304,10 @@ lowp vec4 ConvertYuvToRgba(mediump vec2 texCoord) } #endif - 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 vec4 rgba; + highp float y = TEXTURE(sTexture, texCoord).r; + highp float u = TEXTURE(sTextureU, texCoord).r - 0.5; + highp float v = TEXTURE(sTextureV, texCoord).r - 0.5; + highp vec4 rgba; rgba.r = y + (1.403 * v); rgba.g = y - (0.344 * u) - (0.714 * v); rgba.b = y + (1.770 * u); @@ -438,12 +443,12 @@ mediump vec3 ApplyDebugMixColor(mediump vec4 originColor) void main() { #ifdef ATLAS_DEFAULT_WARP - mediump vec2 texCoord = clamp( mix( uAtlasRect.xy, uAtlasRect.zw, vTexCoord ), uAtlasRect.xy, uAtlasRect.zw ); + highp vec2 texCoord = clamp( mix( uAtlasRect.xy, uAtlasRect.zw, vTexCoord ), uAtlasRect.xy, uAtlasRect.zw ); #elif defined(ATLAS_CUSTOM_WARP) - mediump vec2 texCoord = vec2( wrapCoordinate( uAtlasRect.xz, vTexCoord.x, wrapMode.x ), + highp vec2 texCoord = vec2( wrapCoordinate( uAtlasRect.xz, vTexCoord.x, wrapMode.x ), wrapCoordinate( uAtlasRect.yw, vTexCoord.y, wrapMode.y ) ); #else - mediump vec2 texCoord = vTexCoord; + highp vec2 texCoord = vTexCoord; #endif #if defined(IS_REQUIRED_YUV_TO_RGB) || defined(IS_REQUIRED_UNIFIED_YUV_AND_RGB) @@ -453,7 +458,7 @@ void main() #endif #ifdef IS_REQUIRED_ALPHA_MASKING - mediump vec2 maskTexCoord = vMaskTexCoord; + highp vec2 maskTexCoord = vMaskTexCoord; maskTexCoord.y = mix(maskTexCoord.y, 1.0-maskTexCoord.y, uYFlipMaskTexture); mediump float maskAlpha = TEXTURE(sMaskTexture, maskTexCoord).a; textureColor.a *= maskAlpha; diff --git a/dali-toolkit/internal/graphics/shaders/image-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/image-visual-shader.vert index 9859b9bcf6..112c9d40d8 100644 --- a/dali-toolkit/internal/graphics/shaders/image-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/image-visual-shader.vert @@ -2,8 +2,10 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; #if defined(IS_REQUIRED_DEBUG_VISUAL_SHADER) || defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) OUTPUT highp vec2 vPosition; FLAT OUTPUT highp vec2 vRectSize; @@ -15,7 +17,7 @@ FLAT OUTPUT highp vec4 vCornerRadius; #endif #ifdef IS_REQUIRED_ALPHA_MASKING -OUTPUT mediump vec2 vMaskTexCoord; +OUTPUT highp vec2 vMaskTexCoord; #endif #ifdef IS_REQUIRED_DEBUG_VISUAL_SHADER @@ -32,27 +34,33 @@ UNIFORM_BLOCK VertBlock UNIFORM highp vec3 uSize; UNIFORM highp vec4 pixelArea; +#ifdef IS_REQUIRED_ROUNDED_CORNER + UNIFORM highp vec4 cornerRadius; + UNIFORM mediump float cornerRadiusPolicy; +#endif +#ifdef IS_REQUIRED_ALPHA_MASKING + UNIFORM lowp float cropToMask; + UNIFORM highp vec2 maskTextureRatio; +#endif +}; + #if defined(IS_REQUIRED_DEBUG_VISUAL_SHADER) || defined(IS_REQUIRED_ROUNDED_CORNER) || defined(IS_REQUIRED_BORDERLINE) +UNIFORM_BLOCK SharedBlock +{ // Be used when we calculate anti-alias range near 1 pixel. UNIFORM highp vec3 uScale; +}; #endif - // Visual size and offset - UNIFORM highp vec2 offset; - UNIFORM highp vec2 size; +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; - -#ifdef IS_REQUIRED_ROUNDED_CORNER - UNIFORM highp vec4 cornerRadius; - UNIFORM mediump float cornerRadiusPolicy; -#endif -#ifdef IS_REQUIRED_ALPHA_MASKING - UNIFORM lowp float cropToMask; - UNIFORM mediump vec2 maskTextureRatio; -#endif - UNIFORM highp vec2 extraSize; }; #ifdef IS_REQUIRED_BORDERLINE diff --git a/dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.frag b/dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.frag index b66e74f375..8acbb934cb 100644 --- a/dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.frag @@ -2,10 +2,11 @@ //@version 100 -precision mediump float; -INPUT mediump vec2 vTexCoord; -INPUT mediump vec3 vLightDirection; -INPUT mediump vec3 vHalfVector; +precision highp float; + +INPUT highp vec2 vTexCoord; +INPUT highp vec3 vLightDirection; +INPUT highp vec3 vHalfVector; UNIFORM sampler2D sDiffuse; UNIFORM sampler2D sNormal; UNIFORM sampler2D sGloss; diff --git a/dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.vert b/dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.vert index 472d03cdcb..9d8b5bdb26 100644 --- a/dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.vert @@ -2,28 +2,34 @@ //@version 100 +precision highp float; + INPUT highp vec3 aPosition; INPUT highp vec2 aTexCoord; INPUT highp vec3 aNormal; INPUT highp vec3 aTangent; INPUT highp vec3 aBiNormal; -OUTPUT mediump vec2 vTexCoord; -OUTPUT mediump vec3 vLightDirection; -OUTPUT mediump vec3 vHalfVector; +OUTPUT highp vec2 vTexCoord; +OUTPUT highp vec3 vLightDirection; +OUTPUT highp vec3 vHalfVector; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat4 uModelView; - UNIFORM mediump mat4 uViewMatrix; - UNIFORM mediump mat3 uNormalMatrix; - UNIFORM mediump mat4 uObjectMatrix; - UNIFORM mediump vec3 lightPosition; - UNIFORM mediump vec2 uStageOffset; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat4 uModelView; + UNIFORM highp mat4 uViewMatrix; + UNIFORM highp mat3 uNormalMatrix; + UNIFORM highp mat4 uObjectMatrix; + UNIFORM highp vec3 lightPosition; + UNIFORM highp vec2 uStageOffset; +}; -//Visual size and offset - UNIFORM mediump vec2 offset; - UNIFORM mediump vec2 size; +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -31,7 +37,7 @@ UNIFORM_BLOCK VertBlock vec4 ComputeVertexPosition() { - vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ); + vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize; float scaleFactor = min( visualSize.x, visualSize.y ); vec3 originFlipY =vec3(origin.x, -origin.y, 0.0); vec3 anchorPointFlipY = vec3( anchorPoint.x, -anchorPoint.y, 0.0); diff --git a/dali-toolkit/internal/graphics/shaders/mesh-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/mesh-visual-shader.frag index 7922573e23..93e909549a 100644 --- a/dali-toolkit/internal/graphics/shaders/mesh-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/mesh-visual-shader.frag @@ -2,10 +2,11 @@ //@version 100 -precision mediump float; -INPUT mediump vec2 vTexCoord; -INPUT mediump vec3 vIllumination; -INPUT mediump float vSpecular; +precision highp float; + +INPUT highp vec2 vTexCoord; +INPUT highp vec3 vIllumination; +INPUT highp float vSpecular; UNIFORM sampler2D sDiffuse; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/mesh-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/mesh-visual-shader.vert index 5ba26c1732..2ec8bd2096 100644 --- a/dali-toolkit/internal/graphics/shaders/mesh-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/mesh-visual-shader.vert @@ -2,26 +2,32 @@ //@version 100 +precision highp float; + INPUT highp vec3 aPosition; INPUT highp vec2 aTexCoord; INPUT highp vec3 aNormal; -OUTPUT mediump vec2 vTexCoord; -OUTPUT mediump vec3 vIllumination; -OUTPUT mediump float vSpecular; +OUTPUT highp vec2 vTexCoord; +OUTPUT highp vec3 vIllumination; +OUTPUT highp float vSpecular; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat4 uModelView; - UNIFORM mediump mat4 uViewMatrix; - UNIFORM mediump mat3 uNormalMatrix; - UNIFORM mediump mat4 uObjectMatrix; - UNIFORM mediump vec3 lightPosition; - UNIFORM mediump vec2 uStageOffset; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat4 uModelView; + UNIFORM highp mat4 uViewMatrix; + UNIFORM highp mat3 uNormalMatrix; + UNIFORM highp mat4 uObjectMatrix; + UNIFORM highp vec3 lightPosition; + UNIFORM highp vec2 uStageOffset; +}; -//Visual size and offset - UNIFORM mediump vec2 offset; - UNIFORM mediump vec2 size; +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -29,7 +35,7 @@ UNIFORM_BLOCK VertBlock vec4 ComputeVertexPosition() { - vec2 visualSize = mix(uSize.xy*size, size, offsetSizeMode.zw ); + vec2 visualSize = mix(uSize.xy*size, size, offsetSizeMode.zw ) + extraSize; float scaleFactor = min( visualSize.x, visualSize.y ); vec3 originFlipY =vec3(origin.x, -origin.y, 0.0); vec3 anchorPointFlipY = vec3( anchorPoint.x, -anchorPoint.y, 0.0); diff --git a/dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.frag b/dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.frag index b28c0ee77e..a386665a3b 100644 --- a/dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.frag @@ -2,8 +2,9 @@ //@version 100 -precision mediump float; -INPUT mediump vec3 vIllumination; +precision highp float; + +INPUT highp vec3 vIllumination; UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; diff --git a/dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.vert b/dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.vert index a5d1221a3b..5047d209d1 100644 --- a/dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.vert @@ -2,23 +2,29 @@ //@version 100 +precision highp float; + INPUT highp vec3 aPosition; INPUT highp vec3 aNormal; -OUTPUT mediump vec3 vIllumination; +OUTPUT highp vec3 vIllumination; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat4 uModelView; - UNIFORM mediump mat4 uViewMatrix; - UNIFORM mediump mat3 uNormalMatrix; - UNIFORM mediump mat4 uObjectMatrix; - UNIFORM mediump vec3 lightPosition; - UNIFORM mediump vec2 uStageOffset; - -//Visual size and offset - UNIFORM mediump vec2 offset; - UNIFORM mediump vec2 size; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat4 uModelView; + UNIFORM highp mat4 uViewMatrix; + UNIFORM highp mat3 uNormalMatrix; + UNIFORM highp mat4 uObjectMatrix; + UNIFORM highp vec3 lightPosition; + UNIFORM highp vec2 uStageOffset; +}; + +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -26,7 +32,7 @@ UNIFORM_BLOCK VertBlock vec4 ComputeVertexPosition() { - vec2 visualSize = mix(uSize.xy*size, size, offsetSizeMode.zw ); + vec2 visualSize = mix(uSize.xy*size, size, offsetSizeMode.zw ) + extraSize; float scaleFactor = min( visualSize.x, visualSize.y ); vec3 originFlipY =vec3(origin.x, -origin.y, 0.0); vec3 anchorPointFlipY = vec3( anchorPoint.x, -anchorPoint.y, 0.0); diff --git a/dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.frag b/dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.frag index 2fde9654fc..85311ae845 100644 --- a/dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.frag @@ -2,10 +2,11 @@ //@version 100 -precision mediump float; -INPUT mediump vec2 vTexCoord; -INPUT mediump vec3 vLightDirection; -INPUT mediump vec3 vHalfVector; +precision highp float; + +INPUT highp vec2 vTexCoord; +INPUT highp vec3 vLightDirection; +INPUT highp vec3 vHalfVector; UNIFORM sampler2D sDiffuse; UNIFORM sampler2D sNormal; UNIFORM sampler2D sGloss; diff --git a/dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.vert b/dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.vert index 198322a972..ed2f14e613 100644 --- a/dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.vert @@ -2,22 +2,24 @@ //@version 100 +precision highp float; + INPUT highp vec3 aPosition; INPUT highp vec2 aTexCoord; INPUT highp vec3 aNormal; INPUT highp vec3 aTangent; INPUT highp vec3 aBiNormal; -OUTPUT mediump vec2 vTexCoord; -OUTPUT mediump vec3 vLightDirection; -OUTPUT mediump vec3 vHalfVector; +OUTPUT highp vec2 vTexCoord; +OUTPUT highp vec3 vLightDirection; +OUTPUT highp vec3 vHalfVector; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat4 uModelView; - UNIFORM mediump mat3 uNormalMatrix; - UNIFORM mediump mat4 uObjectMatrix; - UNIFORM mediump vec3 uLightPosition; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat4 uModelView; + UNIFORM highp mat3 uNormalMatrix; + UNIFORM highp mat4 uObjectMatrix; + UNIFORM highp vec3 uLightPosition; }; void main() diff --git a/dali-toolkit/internal/graphics/shaders/model3d-view-shader.frag b/dali-toolkit/internal/graphics/shaders/model3d-view-shader.frag index a3209f4da0..7944c2d0f5 100644 --- a/dali-toolkit/internal/graphics/shaders/model3d-view-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/model3d-view-shader.frag @@ -2,10 +2,11 @@ //@version 100 -precision mediump float; -INPUT mediump vec2 vTexCoord; -INPUT mediump vec3 vIllumination; -INPUT mediump float vSpecular; +precision highp float; + +INPUT highp vec2 vTexCoord; +INPUT highp vec3 vIllumination; +INPUT highp float vSpecular; UNIFORM sampler2D sDiffuse; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/model3d-view-shader.vert b/dali-toolkit/internal/graphics/shaders/model3d-view-shader.vert index 4e63eedf5f..bb5bd0603a 100644 --- a/dali-toolkit/internal/graphics/shaders/model3d-view-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/model3d-view-shader.vert @@ -2,20 +2,22 @@ //@version 100 +precision highp float; + INPUT highp vec3 aPosition; INPUT highp vec2 aTexCoord; INPUT highp vec3 aNormal; -OUTPUT mediump vec2 vTexCoord; -OUTPUT mediump vec3 vIllumination; -OUTPUT mediump float vSpecular; +OUTPUT highp vec2 vTexCoord; +OUTPUT highp vec3 vIllumination; +OUTPUT highp float vSpecular; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat4 uModelView; - UNIFORM mediump mat3 uNormalMatrix; - UNIFORM mediump mat4 uObjectMatrix; - UNIFORM mediump vec3 uLightPosition; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat4 uModelView; + UNIFORM highp mat3 uNormalMatrix; + UNIFORM highp mat4 uObjectMatrix; + UNIFORM highp vec3 uLightPosition; }; void main() diff --git a/dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.frag b/dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.frag index 2fb0094cf5..367a85430e 100644 --- a/dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.frag @@ -2,8 +2,9 @@ //@version 100 -precision mediump float; -INPUT mediump vec3 vIllumination; +precision highp float; + +INPUT highp vec3 vIllumination; UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; diff --git a/dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.vert b/dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.vert index 6f63114e30..008cb66e38 100644 --- a/dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.vert @@ -2,18 +2,20 @@ //@version 100 +precision highp float; + INPUT highp vec3 aPosition; INPUT highp vec2 aTexCoord; INPUT highp vec3 aNormal; -OUTPUT mediump vec3 vIllumination; +OUTPUT highp vec3 vIllumination; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat4 uModelView; - UNIFORM mediump mat3 uNormalMatrix; - UNIFORM mediump mat4 uObjectMatrix; - UNIFORM mediump vec3 uLightPosition; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat4 uModelView; + UNIFORM highp mat3 uNormalMatrix; + UNIFORM highp mat4 uObjectMatrix; + UNIFORM highp vec3 uLightPosition; }; void main() diff --git a/dali-toolkit/internal/graphics/shaders/motion-blur-effect.frag b/dali-toolkit/internal/graphics/shaders/motion-blur-effect.frag index aebb9c0433..39d06e1cf0 100644 --- a/dali-toolkit/internal/graphics/shaders/motion-blur-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/motion-blur-effect.frag @@ -2,7 +2,7 @@ //@version 100 -precision mediump float; +precision highp float; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/motion-blur-effect.vert b/dali-toolkit/internal/graphics/shaders/motion-blur-effect.vert index f55f6b6516..146e2acee0 100644 --- a/dali-toolkit/internal/graphics/shaders/motion-blur-effect.vert +++ b/dali-toolkit/internal/graphics/shaders/motion-blur-effect.vert @@ -2,7 +2,7 @@ //@version 100 -precision mediump float; +precision highp float; INPUT vec2 aPosition; diff --git a/dali-toolkit/internal/graphics/shaders/motion-stretch-effect.frag b/dali-toolkit/internal/graphics/shaders/motion-stretch-effect.frag index 86c2fcff9e..c11fda7cd2 100644 --- a/dali-toolkit/internal/graphics/shaders/motion-stretch-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/motion-stretch-effect.frag @@ -2,7 +2,7 @@ //@version 100 -precision mediump float; +precision highp float; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/motion-stretch-effect.vert b/dali-toolkit/internal/graphics/shaders/motion-stretch-effect.vert index 61a64372fc..51477ddd94 100644 --- a/dali-toolkit/internal/graphics/shaders/motion-stretch-effect.vert +++ b/dali-toolkit/internal/graphics/shaders/motion-stretch-effect.vert @@ -2,7 +2,7 @@ //@version 100 -precision mediump float; +precision highp float; INPUT vec2 aPosition; // Use position to calculate uvs diff --git a/dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert b/dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert index 94909504f9..90de3d0107 100644 --- a/dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert @@ -2,9 +2,11 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; -OUTPUT mediump vec2 vMaskTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; +OUTPUT highp vec2 vMaskTexCoord; UNIFORM_BLOCK VertBlock { @@ -12,13 +14,17 @@ UNIFORM_BLOCK VertBlock UNIFORM highp vec3 uSize; UNIFORM highp vec2 uFixed[3]; UNIFORM highp vec2 uStretchTotal; +}; + +UNIFORM_BLOCK VisualVertBlock +{ //Visual size and offset - UNIFORM highp vec2 offset; - UNIFORM highp vec2 size; + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; - UNIFORM highp vec2 extraSize; }; void main() diff --git a/dali-toolkit/internal/graphics/shaders/npatch-visual-mask-shader.frag b/dali-toolkit/internal/graphics/shaders/npatch-visual-mask-shader.frag index 6ca69c02c1..cbb9b573dd 100644 --- a/dali-toolkit/internal/graphics/shaders/npatch-visual-mask-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/npatch-visual-mask-shader.frag @@ -2,8 +2,10 @@ //@version 100 -INPUT mediump vec2 vTexCoord; -INPUT mediump vec2 vMaskTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; +INPUT highp vec2 vMaskTexCoord; UNIFORM sampler2D sTexture; UNIFORM sampler2D sMask; UNIFORM_BLOCK FragBlock @@ -25,8 +27,8 @@ void main() mediump float maskAlpha = mask.a * auxiliaryImageAlpha; - lowp vec3 preMultipliedMaskRGB = mask.rgb * mix(mask.a, 1.0, premultipliedAlpha) * auxiliaryImageAlpha; - lowp vec3 preMultipliedTextureRGB = color.rgb * mix(color.a, 1.0, premultipliedAlpha); + highp vec3 preMultipliedMaskRGB = mask.rgb * mix(mask.a, 1.0, premultipliedAlpha) * auxiliaryImageAlpha; + highp vec3 preMultipliedTextureRGB = color.rgb * mix(color.a, 1.0, premultipliedAlpha); // Manual blend operation with premultiplied colors. // Final alpha = maskAlpha + (1.0 - maskAlpha) * color.a. @@ -34,8 +36,8 @@ void main() // If premultipliedAlpha == 1.0, just return vec4(rgb*alpha, alpha) // Else, return vec4((rgb*alpha) / alpha, alpha) - lowp float finalAlpha = mix(color.a, 1.0, maskAlpha); - lowp vec3 finalMultipliedRGB = preMultipliedMaskRGB + (1.0 - maskAlpha) * preMultipliedTextureRGB; + highp float finalAlpha = mix(color.a, 1.0, maskAlpha); + highp vec3 finalMultipliedRGB = preMultipliedMaskRGB + (1.0 - maskAlpha) * preMultipliedTextureRGB; // TODO : Need to find some way without division lowp vec4 finalColor = vec4(finalMultipliedRGB * mix(1.0 / finalAlpha, 1.0, premultipliedAlpha), finalAlpha); diff --git a/dali-toolkit/internal/graphics/shaders/npatch-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/npatch-visual-shader.frag index 9371ddba82..596484646b 100644 --- a/dali-toolkit/internal/graphics/shaders/npatch-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/npatch-visual-shader.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/npatch-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/npatch-visual-shader.vert index 2bb31683b8..bb84cd3b74 100644 --- a/dali-toolkit/internal/graphics/shaders/npatch-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/npatch-visual-shader.vert @@ -2,9 +2,11 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; -OUTPUT mediump vec2 vMaskTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; +OUTPUT highp vec2 vMaskTexCoord; UNIFORM_BLOCK VertBlock { @@ -12,13 +14,17 @@ UNIFORM_BLOCK VertBlock UNIFORM highp vec3 uSize; UNIFORM highp vec2 uNinePatchFactorsX[FACTOR_SIZE_X]; UNIFORM highp vec2 uNinePatchFactorsY[FACTOR_SIZE_Y]; - // Visual size and offset +}; + +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset UNIFORM highp vec2 offset; UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; - UNIFORM highp vec2 extraSize; }; void main() diff --git a/dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.frag b/dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.frag index 4e355bdea1..137f906cd3 100644 --- a/dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.frag @@ -2,8 +2,9 @@ //@version 100 -precision mediump float; -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.vert b/dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.vert index 13b9a766ff..89f298b025 100644 --- a/dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.vert +++ b/dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.vert @@ -2,11 +2,12 @@ //@version 100 -precision mediump float; -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uMvpMatrix; + UNIFORM highp mat4 uMvpMatrix; UNIFORM float uTextureWidth; }; @@ -19,7 +20,7 @@ OUTPUT vec2 vTexCoord; void main() { - mediump vec4 vertexPosition = vec4(aPosition*uSize.xy, 0.0, 1.0); + highp vec4 vertexPosition = vec4(aPosition*uSize.xy, 0.0, 1.0); gl_Position = uMvpMatrix * vertexPosition; vTexCoord = aPosition + vec2(0.5); vTexCoord.x /= uTextureWidth; diff --git a/dali-toolkit/internal/graphics/shaders/page-turn-effect.frag b/dali-toolkit/internal/graphics/shaders/page-turn-effect.frag index d351a5de23..ee809c1388 100644 --- a/dali-toolkit/internal/graphics/shaders/page-turn-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/page-turn-effect.frag @@ -2,9 +2,9 @@ //@version 100 -precision mediump float; +precision highp float; -INPUT mediump vec2 vTexCoord; +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock @@ -18,8 +18,8 @@ UNIFORM_BLOCK SharedBlock UNIFORM vec3 uSize; }; -INPUT vec3 vNormal; -INPUT vec4 vPosition; +INPUT highp vec3 vNormal; +INPUT highp vec4 vPosition; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/page-turn-effect.vert b/dali-toolkit/internal/graphics/shaders/page-turn-effect.vert index 1ee681ff7a..b259861c45 100644 --- a/dali-toolkit/internal/graphics/shaders/page-turn-effect.vert +++ b/dali-toolkit/internal/graphics/shaders/page-turn-effect.vert @@ -20,30 +20,30 @@ * ([3][3]) float currentLength: The length from the current center to the curveEnd. */ -precision mediump float; +precision highp float; -INPUT mediump vec2 aPosition; +INPUT highp vec2 aPosition; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat3 uNormalMatrix; - UNIFORM mediump mat4 uModelView; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat3 uNormalMatrix; + UNIFORM highp mat4 uModelView; - UNIFORM mat4 uCommonParameters; + UNIFORM highp mat4 uCommonParameters; UNIFORM float uIsTurningBack; - UNIFORM float uTextureWidth; + UNIFORM highp float uTextureWidth; }; UNIFORM_BLOCK SharedBlock { - UNIFORM vec3 uSize; + UNIFORM highp vec3 uSize; }; -OUTPUT vec3 vNormal; -OUTPUT vec4 vPosition; -OUTPUT mediump vec2 vTexCoord; +OUTPUT highp vec3 vNormal; +OUTPUT highp vec4 vPosition; +OUTPUT highp vec2 vTexCoord; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/primitive-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/primitive-visual-shader.frag index c7e144a3c1..f4e0653aec 100644 --- a/dali-toolkit/internal/graphics/shaders/primitive-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/primitive-visual-shader.frag @@ -4,8 +4,9 @@ //Very simple fragment shader that merely applies the vertex shading to the color at each fragment. -precision mediump float; -INPUT mediump vec3 vIllumination; +precision highp float; + +INPUT highp vec3 vIllumination; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/primitive-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/primitive-visual-shader.vert index aae2d7f003..8eec634753 100644 --- a/dali-toolkit/internal/graphics/shaders/primitive-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/primitive-visual-shader.vert @@ -4,25 +4,31 @@ //A simple shader that applies diffuse lighting to a mono-coloured object. +precision highp float; + INPUT highp vec3 aPosition; INPUT highp vec2 aTexCoord; INPUT highp vec3 aNormal; -OUTPUT mediump vec3 vIllumination; +OUTPUT highp vec3 vIllumination; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec3 uSize; - UNIFORM mediump vec3 uObjectDimensions; - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat4 uModelView; - UNIFORM mediump mat4 uViewMatrix; - UNIFORM mediump mat3 uNormalMatrix; - UNIFORM mediump mat4 uObjectMatrix; - UNIFORM mediump vec3 lightPosition; - UNIFORM mediump vec2 uStageOffset; - -//Visual size and offset - UNIFORM mediump vec2 offset; - UNIFORM mediump vec2 size; + UNIFORM highp vec3 uSize; + UNIFORM highp vec3 uObjectDimensions; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat4 uModelView; + UNIFORM highp mat4 uViewMatrix; + UNIFORM highp mat3 uNormalMatrix; + UNIFORM highp mat4 uObjectMatrix; + UNIFORM highp vec3 lightPosition; + UNIFORM highp vec2 uStageOffset; +}; + +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -30,7 +36,7 @@ UNIFORM_BLOCK VertBlock vec4 ComputeVertexPosition() { - vec2 visualSize = mix(uSize.xy*size, size, offsetSizeMode.zw ); + vec2 visualSize = mix(uSize.xy*size, size, offsetSizeMode.zw ) + extraSize; float scaleFactor = min( visualSize.x / uObjectDimensions.x, visualSize.y / uObjectDimensions.y ); vec3 originFlipY =vec3(origin.x, -origin.y, 0.0); vec3 anchorPointFlipY = vec3( anchorPoint.x, -anchorPoint.y, 0.0); diff --git a/dali-toolkit/internal/graphics/shaders/render-effect.frag b/dali-toolkit/internal/graphics/shaders/render-effect.frag index 8c5cb72d31..9e8916f51c 100644 --- a/dali-toolkit/internal/graphics/shaders/render-effect.frag +++ b/dali-toolkit/internal/graphics/shaders/render-effect.frag @@ -3,6 +3,7 @@ //@version 100 precision highp float; + INPUT highp vec2 vTexCoord; INPUT highp vec2 vOptRectSize; INPUT highp vec4 vCornerRadius; diff --git a/dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.frag b/dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.frag index bcc39f7d19..1d631b58c5 100644 --- a/dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uShadowColor; diff --git a/dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.vert b/dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.vert index 6ed9c9bc9e..6758533b93 100644 --- a/dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.vert @@ -2,21 +2,23 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; OUTPUT vec2 vTexCoord; UNIFORM_BLOCK VertBlock { - UNIFORM mediump mat4 uMvpMatrix; - UNIFORM mediump mat4 uModelMatrix; - UNIFORM vec3 uSize; - UNIFORM mediump mat4 uLightCameraProjectionMatrix; - UNIFORM mediump mat4 uLightCameraViewMatrix; + UNIFORM highp mat4 uMvpMatrix; + UNIFORM highp mat4 uModelMatrix; + UNIFORM highp vec3 uSize; + UNIFORM highp mat4 uLightCameraProjectionMatrix; + UNIFORM highp mat4 uLightCameraViewMatrix; }; void main() { - mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0); + highp vec4 vertexPosition = vec4(aPosition, 0.0, 1.0); vertexPosition.xyz *= uSize; gl_Position = uMvpMatrix * vertexPosition; vec4 textureCoords = uLightCameraProjectionMatrix * uLightCameraViewMatrix * uModelMatrix * vertexPosition; diff --git a/dali-toolkit/internal/graphics/shaders/spread-filter-shader.frag b/dali-toolkit/internal/graphics/shaders/spread-filter-shader.frag index a6a19d6cd3..2cfd351af7 100644 --- a/dali-toolkit/internal/graphics/shaders/spread-filter-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/spread-filter-shader.frag @@ -3,7 +3,8 @@ //@version 100 precision highp float; -INPUT mediump vec2 vTexCoord; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/super-blur-view.frag b/dali-toolkit/internal/graphics/shaders/super-blur-view.frag index 591287e90f..100f117e91 100644 --- a/dali-toolkit/internal/graphics/shaders/super-blur-view.frag +++ b/dali-toolkit/internal/graphics/shaders/super-blur-view.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; UNIFORM_BLOCK FragBlock { diff --git a/dali-toolkit/internal/graphics/shaders/text-atlas-l8-shader.frag b/dali-toolkit/internal/graphics/shaders/text-atlas-l8-shader.frag index 9140b69f88..e232d80660 100644 --- a/dali-toolkit/internal/graphics/shaders/text-atlas-l8-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/text-atlas-l8-shader.frag @@ -2,14 +2,16 @@ //@version 100 +precision highp float; + UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; UNIFORM lowp vec4 textColorAnimatable; }; UNIFORM sampler2D sTexture; -INPUT mediump vec2 vTexCoord; -INPUT mediump vec4 vColor; +INPUT highp vec2 vTexCoord; +INPUT highp vec4 vColor; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/text-atlas-rgba-shader.frag b/dali-toolkit/internal/graphics/shaders/text-atlas-rgba-shader.frag index d63b685b38..4e6890a207 100644 --- a/dali-toolkit/internal/graphics/shaders/text-atlas-rgba-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/text-atlas-rgba-shader.frag @@ -2,13 +2,15 @@ //@version 100 +precision highp float; + UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; UNIFORM lowp vec4 textColorAnimatable; }; UNIFORM sampler2D sTexture; -INPUT mediump vec2 vTexCoord; +INPUT highp vec2 vTexCoord; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/text-atlas-shader.vert b/dali-toolkit/internal/graphics/shaders/text-atlas-shader.vert index 9edcda8b50..ac88152cce 100644 --- a/dali-toolkit/internal/graphics/shaders/text-atlas-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/text-atlas-shader.vert @@ -2,17 +2,19 @@ //@version 100 +precision highp float; + INPUT highp vec2 aPosition; -INPUT mediump vec2 aTexCoord; -INPUT mediump vec4 aColor; +INPUT highp vec2 aTexCoord; +INPUT highp vec4 aColor; UNIFORM_BLOCK VertBlock { - UNIFORM mediump vec2 uOffset; + UNIFORM highp vec2 uOffset; UNIFORM highp mat4 uMvpMatrix; }; -OUTPUT mediump vec2 vTexCoord; -OUTPUT mediump vec4 vColor; +OUTPUT highp vec2 vTexCoord; +OUTPUT highp vec4 vColor; void main() { diff --git a/dali-toolkit/internal/graphics/shaders/text-controller-background-shader.frag b/dali-toolkit/internal/graphics/shaders/text-controller-background-shader.frag index 4cc103b661..07fdd7e667 100644 --- a/dali-toolkit/internal/graphics/shaders/text-controller-background-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/text-controller-background-shader.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec4 vColor; +precision highp float; + +INPUT highp vec4 vColor; UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; diff --git a/dali-toolkit/internal/graphics/shaders/text-controller-background-shader.vert b/dali-toolkit/internal/graphics/shaders/text-controller-background-shader.vert index 60b51171db..125bf94878 100644 --- a/dali-toolkit/internal/graphics/shaders/text-controller-background-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/text-controller-background-shader.vert @@ -2,9 +2,11 @@ //@version 100 -INPUT mediump vec2 aPosition; -INPUT mediump vec4 aColor; -OUTPUT mediump vec4 vColor; +precision highp float; + +INPUT highp vec2 aPosition; +INPUT highp vec4 aColor; +OUTPUT highp vec4 vColor; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; @@ -12,7 +14,7 @@ UNIFORM_BLOCK VertBlock void main() { - mediump vec4 position = vec4( aPosition, 0.0, 1.0 ); + highp vec4 position = vec4( aPosition, 0.0, 1.0 ); gl_Position = uMvpMatrix * position; vColor = aColor; } diff --git a/dali-toolkit/internal/graphics/shaders/text-decorator-shader.frag b/dali-toolkit/internal/graphics/shaders/text-decorator-shader.frag index 836e39f2fc..69efc556a3 100644 --- a/dali-toolkit/internal/graphics/shaders/text-decorator-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/text-decorator-shader.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; diff --git a/dali-toolkit/internal/graphics/shaders/text-decorator-shader.vert b/dali-toolkit/internal/graphics/shaders/text-decorator-shader.vert index ef08b5e1ad..c0e7d6f1c9 100644 --- a/dali-toolkit/internal/graphics/shaders/text-decorator-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/text-decorator-shader.vert @@ -2,13 +2,15 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; }; void main() { - mediump vec4 position = vec4( aPosition, 0.0, 1.0 ); + highp vec4 position = vec4( aPosition, 0.0, 1.0 ); gl_Position = uMvpMatrix * position; } diff --git a/dali-toolkit/internal/graphics/shaders/text-scroller-shader.frag b/dali-toolkit/internal/graphics/shaders/text-scroller-shader.frag index cc7689db0d..2b38cb2345 100644 --- a/dali-toolkit/internal/graphics/shaders/text-scroller-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/text-scroller-shader.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; diff --git a/dali-toolkit/internal/graphics/shaders/text-scroller-shader.vert b/dali-toolkit/internal/graphics/shaders/text-scroller-shader.vert index ef61fd01fe..8a74212432 100644 --- a/dali-toolkit/internal/graphics/shaders/text-scroller-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/text-scroller-shader.vert @@ -2,29 +2,36 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; OUTPUT highp vec2 vTexCoord; UNIFORM_BLOCK VertBlock { UNIFORM highp vec3 uSize; UNIFORM highp float uDelta; - UNIFORM mediump vec2 uTextureSize; + UNIFORM highp vec2 uTextureSize; UNIFORM highp float uGap; - UNIFORM mediump float uHorizontalAlign; - UNIFORM mediump float uVerticalAlign; + UNIFORM highp float uHorizontalAlign; + UNIFORM highp float uVerticalAlign; UNIFORM highp mat4 uMvpMatrix; +}; +UNIFORM_BLOCK VisualVertBlock +{ //Visual size and offset - UNIFORM mediump vec2 offset; + UNIFORM highp vec2 offset; UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; }; + void main() { - highp vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw); + highp vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw) + extraSize; highp vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy); vTexCoord.x = ( uDelta + uHorizontalAlign * ( uTextureSize.x - visualSize.x - uGap ) + aPosition.x * visualSize.x - uGap * 0.5 ) / uTextureSize.x + 0.5; diff --git a/dali-toolkit/internal/graphics/shaders/text-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/text-visual-shader.frag index 924d90417c..41e3a526da 100644 --- a/dali-toolkit/internal/graphics/shaders/text-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/text-visual-shader.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM sampler2D sTexture; #ifdef IS_REQUIRED_STYLE UNIFORM sampler2D sStyle; diff --git a/dali-toolkit/internal/graphics/shaders/text-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/text-visual-shader.vert index 04c7152a72..d5a529bdbe 100644 --- a/dali-toolkit/internal/graphics/shaders/text-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/text-visual-shader.vert @@ -2,17 +2,23 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; UNIFORM highp vec3 uSize; +}; +UNIFORM_BLOCK VisualVertBlock +{ //Visual size and offset - UNIFORM mediump vec2 offset; + UNIFORM highp vec2 offset; UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -20,7 +26,7 @@ UNIFORM_BLOCK VertBlock vec4 ComputeVertexPosition() { - vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ); + vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize; vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy); return vec4( (aPosition + anchorPoint) * visualSize + visualOffset + origin * uSize.xy, 0.0, 1.0 ); } diff --git a/dali-toolkit/internal/graphics/shaders/video-view-texture.frag b/dali-toolkit/internal/graphics/shaders/video-view-texture.frag index 3be448dedc..4d2959a1e4 100644 --- a/dali-toolkit/internal/graphics/shaders/video-view-texture.frag +++ b/dali-toolkit/internal/graphics/shaders/video-view-texture.frag @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 vTexCoord; UNIFORM samplerExternalOES sTexture; UNIFORM_BLOCK FragBlock diff --git a/dali-toolkit/internal/graphics/shaders/video-view-texture.vert b/dali-toolkit/internal/graphics/shaders/video-view-texture.vert index 5d10ec27dd..9bf1b999ea 100644 --- a/dali-toolkit/internal/graphics/shaders/video-view-texture.vert +++ b/dali-toolkit/internal/graphics/shaders/video-view-texture.vert @@ -2,8 +2,10 @@ //@version 100 -INPUT mediump vec2 aPosition; -OUTPUT mediump vec2 vTexCoord; +precision highp float; + +INPUT highp vec2 aPosition; +OUTPUT highp vec2 vTexCoord; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; @@ -11,7 +13,6 @@ UNIFORM_BLOCK VertBlock UNIFORM highp vec2 uSizeRatio; UNIFORM highp mat2 uRotationMatrix; }; -OUTPUT mediump vec2 sTexCoordRect; highp vec2 getSize(highp vec2 size) { diff --git a/dali-toolkit/internal/graphics/shaders/video-view.frag b/dali-toolkit/internal/graphics/shaders/video-view.frag index 3baad97289..4d320c3240 100644 --- a/dali-toolkit/internal/graphics/shaders/video-view.frag +++ b/dali-toolkit/internal/graphics/shaders/video-view.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + void main() { gl_FragColor = vec4(0.0); diff --git a/dali-toolkit/internal/graphics/shaders/video-view.vert b/dali-toolkit/internal/graphics/shaders/video-view.vert index 7723ddc679..e09374ec61 100644 --- a/dali-toolkit/internal/graphics/shaders/video-view.vert +++ b/dali-toolkit/internal/graphics/shaders/video-view.vert @@ -2,7 +2,9 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; @@ -11,7 +13,7 @@ UNIFORM_BLOCK VertBlock void main() { - mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0); + highp vec4 vertexPosition = vec4(aPosition, 0.0, 1.0); vertexPosition.xyz *= uSize; gl_Position = uMvpMatrix * vertexPosition; } diff --git a/dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.frag index ed173fa340..d3001495f4 100644 --- a/dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.frag @@ -2,6 +2,8 @@ //@version 100 +precision highp float; + UNIFORM_BLOCK FragBlock { UNIFORM lowp vec4 uColor; diff --git a/dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.vert index 74c29b7e84..c7e6db4524 100644 --- a/dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.vert @@ -2,15 +2,21 @@ //@version 100 -INPUT mediump vec2 aPosition; +precision highp float; + +INPUT highp vec2 aPosition; UNIFORM_BLOCK VertBlock { UNIFORM highp mat4 uMvpMatrix; UNIFORM highp vec3 uSize; +}; -//Visual size and offset - UNIFORM mediump vec2 offset; - UNIFORM highp vec2 size; +UNIFORM_BLOCK VisualVertBlock +{ + //Visual size and offset + UNIFORM highp vec2 offset; + UNIFORM highp vec2 size; + UNIFORM highp vec2 extraSize; UNIFORM mediump vec4 offsetSizeMode; UNIFORM mediump vec2 origin; UNIFORM mediump vec2 anchorPoint; @@ -18,7 +24,7 @@ UNIFORM_BLOCK VertBlock vec4 ComputeVertexPosition() { - vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ); + vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize; vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy); return vec4( (aPosition + anchorPoint)*visualSize + visualOffset + origin * uSize.xy, 0.0, 1.0 ); }