Make vertex coordinate relative values use highp + Make UniformBlock for VisualRenderer 85/319285/6
authorEunki, Hong <eunkiki.hong@samsung.com>
Fri, 7 Feb 2025 05:59:12 +0000 (14:59 +0900)
committerEunki Hong <eunkiki.hong@samsung.com>
Fri, 14 Feb 2025 10:48:55 +0000 (10:48 +0000)
- 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 <eunkiki.hong@samsung.com>
108 files changed:
dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag
dali-scene3d/internal/graphics/shaders/default-physically-based-shader.vert
dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.frag
dali-scene3d/internal/graphics/shaders/scene3d-joint-debug.vert
dali-scene3d/internal/graphics/shaders/shadow-map-shader.frag
dali-scene3d/internal/graphics/shaders/shadow-map-shader.vert
dali-scene3d/internal/graphics/shaders/skybox-equirectangular-shader.frag
dali-scene3d/internal/graphics/shaders/skybox-shader.frag
dali-scene3d/internal/graphics/shaders/skybox-shader.vert
dali-toolkit/internal/graphics/shaders/alpha-discard-effect.frag
dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.frag
dali-toolkit/internal/graphics/shaders/animated-gradient-visual-shader.vert
dali-toolkit/internal/graphics/shaders/arc-visual-butt-cap-shader.frag
dali-toolkit/internal/graphics/shaders/arc-visual-round-cap-shader.frag
dali-toolkit/internal/graphics/shaders/arc-visual-shader.vert
dali-toolkit/internal/graphics/shaders/bloom-view-composite-shader.frag
dali-toolkit/internal/graphics/shaders/bloom-view-extract-shader.frag
dali-toolkit/internal/graphics/shaders/blur-effect.frag
dali-toolkit/internal/graphics/shaders/blur-two-images-shader.frag
dali-toolkit/internal/graphics/shaders/blur-two-pass-shader.frag
dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.frag
dali-toolkit/internal/graphics/shaders/border-visual-anti-aliasing-shader.vert
dali-toolkit/internal/graphics/shaders/border-visual-shader.frag
dali-toolkit/internal/graphics/shaders/border-visual-shader.vert
dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.frag
dali-toolkit/internal/graphics/shaders/bouncing-effect-mesh-shader.vert
dali-toolkit/internal/graphics/shaders/bubble-effect-color-adjuster.frag
dali-toolkit/internal/graphics/shaders/bubble-effect.frag
dali-toolkit/internal/graphics/shaders/bubble-effect.vert
dali-toolkit/internal/graphics/shaders/bubble-emitter.frag
dali-toolkit/internal/graphics/shaders/bubble-emitter.vert
dali-toolkit/internal/graphics/shaders/canvas-view.frag
dali-toolkit/internal/graphics/shaders/canvas-view.vert
dali-toolkit/internal/graphics/shaders/color-visual-shader.frag
dali-toolkit/internal/graphics/shaders/color-visual-shader.vert
dali-toolkit/internal/graphics/shaders/control-renderers.frag
dali-toolkit/internal/graphics/shaders/control-renderers.vert
dali-toolkit/internal/graphics/shaders/cube-transition-effect.frag
dali-toolkit/internal/graphics/shaders/cube-transition-effect.vert
dali-toolkit/internal/graphics/shaders/dissolve-effect.frag
dali-toolkit/internal/graphics/shaders/dissolve-effect.vert
dali-toolkit/internal/graphics/shaders/distance-field-effect.frag
dali-toolkit/internal/graphics/shaders/effects-view.frag
dali-toolkit/internal/graphics/shaders/effects-view.vert
dali-toolkit/internal/graphics/shaders/emboss-filter-composite-shader.frag
dali-toolkit/internal/graphics/shaders/emboss-filter-shader.frag
dali-toolkit/internal/graphics/shaders/gaussian-blur-view.frag
dali-toolkit/internal/graphics/shaders/gltf-basecolor-texture.def
dali-toolkit/internal/graphics/shaders/gltf-emit-texture.def
dali-toolkit/internal/graphics/shaders/gltf-ibl-texture.def
dali-toolkit/internal/graphics/shaders/gltf-metallicroughness-texture.def
dali-toolkit/internal/graphics/shaders/gltf-normal-texture.def
dali-toolkit/internal/graphics/shaders/gltf-occulusion-texture.def
dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.frag
dali-toolkit/internal/graphics/shaders/gltf-physically-based-shader.vert
dali-toolkit/internal/graphics/shaders/gradient-visual-shader.frag
dali-toolkit/internal/graphics/shaders/gradient-visual-shader.vert
dali-toolkit/internal/graphics/shaders/image-region-effect.vert
dali-toolkit/internal/graphics/shaders/image-visual-shader.frag
dali-toolkit/internal/graphics/shaders/image-visual-shader.vert
dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.frag
dali-toolkit/internal/graphics/shaders/mesh-visual-normal-map-shader.vert
dali-toolkit/internal/graphics/shaders/mesh-visual-shader.frag
dali-toolkit/internal/graphics/shaders/mesh-visual-shader.vert
dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.frag
dali-toolkit/internal/graphics/shaders/mesh-visual-simple-shader.vert
dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.frag
dali-toolkit/internal/graphics/shaders/model3d-view-nrmmap-shader.vert
dali-toolkit/internal/graphics/shaders/model3d-view-shader.frag
dali-toolkit/internal/graphics/shaders/model3d-view-shader.vert
dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.frag
dali-toolkit/internal/graphics/shaders/model3d-view-simple-shader.vert
dali-toolkit/internal/graphics/shaders/motion-blur-effect.frag
dali-toolkit/internal/graphics/shaders/motion-blur-effect.vert
dali-toolkit/internal/graphics/shaders/motion-stretch-effect.frag
dali-toolkit/internal/graphics/shaders/motion-stretch-effect.vert
dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert
dali-toolkit/internal/graphics/shaders/npatch-visual-mask-shader.frag
dali-toolkit/internal/graphics/shaders/npatch-visual-shader.frag
dali-toolkit/internal/graphics/shaders/npatch-visual-shader.vert
dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.frag
dali-toolkit/internal/graphics/shaders/page-turn-book-spine-effect.vert
dali-toolkit/internal/graphics/shaders/page-turn-effect.frag
dali-toolkit/internal/graphics/shaders/page-turn-effect.vert
dali-toolkit/internal/graphics/shaders/primitive-visual-shader.frag
dali-toolkit/internal/graphics/shaders/primitive-visual-shader.vert
dali-toolkit/internal/graphics/shaders/render-effect.frag
dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.frag
dali-toolkit/internal/graphics/shaders/shadow-view-render-shader.vert
dali-toolkit/internal/graphics/shaders/spread-filter-shader.frag
dali-toolkit/internal/graphics/shaders/super-blur-view.frag
dali-toolkit/internal/graphics/shaders/text-atlas-l8-shader.frag
dali-toolkit/internal/graphics/shaders/text-atlas-rgba-shader.frag
dali-toolkit/internal/graphics/shaders/text-atlas-shader.vert
dali-toolkit/internal/graphics/shaders/text-controller-background-shader.frag
dali-toolkit/internal/graphics/shaders/text-controller-background-shader.vert
dali-toolkit/internal/graphics/shaders/text-decorator-shader.frag
dali-toolkit/internal/graphics/shaders/text-decorator-shader.vert
dali-toolkit/internal/graphics/shaders/text-scroller-shader.frag
dali-toolkit/internal/graphics/shaders/text-scroller-shader.vert
dali-toolkit/internal/graphics/shaders/text-visual-shader.frag
dali-toolkit/internal/graphics/shaders/text-visual-shader.vert
dali-toolkit/internal/graphics/shaders/video-view-texture.frag
dali-toolkit/internal/graphics/shaders/video-view-texture.vert
dali-toolkit/internal/graphics/shaders/video-view.frag
dali-toolkit/internal/graphics/shaders/video-view.vert
dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.frag
dali-toolkit/internal/graphics/shaders/wireframe-visual-shader.vert

index 98eb049375b42c24d6baff0be31d7a11f490b87a..e0ca78018eee080fd7b29f1806dbc47fba9c3fc8 100644 (file)
@@ -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
 // [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
index bd3baff2c2a1e730b06d150a8fb565fe0fe398cd..8fba287eab543e21d7399398b2b4eb684d61dcfc 100644 (file)
@@ -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;
index 2a5c4e3e05d8d34bffe4cc44418e5c83dee488a7..3c6b4c517980910c3b0fd74aaea97a7ff6df5175 100644 (file)
@@ -1,6 +1,9 @@
+//@name scene3d-joint-debug.frag
+
 //@version 100
 
-precision mediump float;
+precision highp float;
+
 UNIFORM_BLOCK FragBlock
 {
   UNIFORM lowp vec4 uColor;
index 3c03ef6ea1791f6677eedbfce9dbec2b0288c8e8..ff07455bf7d596ff112f5276617fdc6134b61cd5 100644 (file)
@@ -1,6 +1,9 @@
+//@name scene3d-joint-debug.vert
+
 //@version 100
 
-precision mediump float;
+precision highp float;
+
 UNIFORM_BLOCK VertBlock
 {
   UNIFORM mat4 uMvpMatrix;
index c69c4e98ebaaaef8c23ee7dc343fb23f640eb09e..c02d3873d9121a22c5e48936218f3e7b21f3a25c 100644 (file)
@@ -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
index 33a7a4fc2f3d4deb442cee825e9fda566c54e7e0..47754547b12c9b75b94db6229734e1a8e012cde7 100644 (file)
@@ -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;
index 7663afc46f6153afc88f9c990bd848cf63a238f4..c8f49bdae7187bf3e37c6aa7750b6466258617ed 100644 (file)
@@ -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
index 834898af1dc6bac772ff1db7b4fdce9873669c56..94d840e0dbd414965a88e7eb905fa8ab6aab00d1 100644 (file)
@@ -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()
 {
index e0a29db99f9945e99b687a7ca04ab54156542bf7..bbe9e62640cf14a953465f1c63d12bb4985dc34c 100644 (file)
@@ -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.
index 04127627846fecf3cdfdf29250fc0058672262be..166114ea5f62292f1461f98a6e63483919390f5b 100644 (file)
@@ -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;
 };
 
 
index f9c1acba52943905f674d513dbb9b20cf48846cc..987240622ff8b56682e42b3d7b563f5e9a54a281 100644 (file)
@@ -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)
 {
index 0a36bf37a082b47543170263c08688e7ee22e348..d0ac0077de95b09ce820959ef44bf9aa5ea5a920 100644 (file)
@@ -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 );
 }
index 766120c4ebd88823df31bf0730e5661b04443734..3ae1c973d6a855e9f78a2663a44974627c66b39a 100644 (file)
@@ -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;
 }
index 2cf77abd6e308157d35c34e5c2bab5ddfb4810e9..f4bda5a6b68766093ad1c5604eb7f99fa8b6ac92 100644 (file)
@@ -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 ) ) );
 }
 
index 77dad610c90f11307975705dc558fae051939562..3c8e8f669e789e7e18bd1ec0ad583d0852fffcf7 100644 (file)
@@ -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 );
index affb1571bfe7d72eaf68adad9dd41c4ad1ad1fea..41e0138d964ea8696a550b4e87a567473b2d66e0 100644 (file)
@@ -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;
index d65579704c797f109f834c5ff06749b02773312d..481d8e17f962c58ef2dfa71d1038e457f9dd25d4 100644 (file)
@@ -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);
index ebe3511f8bc1d35c50686b3bfe405d811fb853dd..65b2551d7792fff5fc04ed556634604531fe7ccb 100644 (file)
@@ -2,6 +2,8 @@
 
 //@version 100
 
+precision highp float;
+
 INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
index 765780eef46fb074c6c3fcea19151ac34573244c..a844a1be134b8b78eef1ff32655235bd7663f82e 100644 (file)
@@ -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()
 {
index 733335ed1c449c02fa55b529637b15f5eab36f65..bcaf9da721544bd1a5b766993e6bb9eaa240fdd1 100644 (file)
@@ -3,7 +3,8 @@
 //@version 100
 
 precision highp float;
-INPUT mediump vec2 vTexCoord;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
 {
index 9fe7a27216f0880e376e262bd0ff9a8f7951c437..d4d6808ba5f239ffd61c71eb4d1b1038669e63d5 100644 (file)
@@ -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()
index 4e8573dcae40db700bb46a9040dd73ea992fbc04..3c7041913affd8bec712b161b075c7717225603c 100644 (file)
@@ -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
index 8fc99cd757cd6ae0f112f53c8cf99e2166791431..bcdad288598df536f54e46cb6638669b482e1e28 100644 (file)
@@ -2,6 +2,8 @@
 
 //@version 100
 
+precision highp float;
+
 UNIFORM_BLOCK FragBlock
 {
   UNIFORM lowp vec4 uColor;
index 96b3a84c4928dd191f8542e3fb1d07a4d3bc0d43..605a8b5588271323ecc9f10998a8bc6ae83d5376 100644 (file)
@@ -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;
 }
index b9b939876d36c50a1d6d1106c9e98a345bfa8452..a13de180fa8a131acadfa423ffc8b5faf27d045b 100644 (file)
@@ -2,6 +2,8 @@
 
 //@version 100
 
+precision highp float;
+
 // Use the actor color to paint every layer
 UNIFORM_BLOCK FragBlock
 {
index fa5ba13a18a8496307277f484de1faf2adb87837..e784fa9067e084f87782535c8331a5c6df39ab3f 100644 (file)
@@ -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()
index 3d881d868b202923bbf3fd6b478dafd47ffc8562..d68c8bf4549a9e2578b43290d39e260a4c26fba2 100644 (file)
@@ -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)
index 17772c8bd3259cc0e2761f2815ff742c9da7ffa8..eb187bc81d8f9eca38d1cee99b0bcef60b5bd58e 100644 (file)
@@ -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
 {
index c4d113535f9d275dcf4cfb7cb3c159826b86e2ac..b5b04de587b55a7788aae6048bbe2370b2387b50 100644 (file)
@@ -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()
 {
index e66b29fa205a4d48b4444ce9ed9274a3464f0feb..7b593074008855387f3aa06917a393ddc0cdb39a 100644 (file)
@@ -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)
index 9b296039cd0ae40dc20a2f3a1cb583f032204ecb..b772443ccfa61ebd498a74ee9164a4a8b51fd47e 100644 (file)
@@ -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()
 {
index eb742786936dabe7afe8ef591b3715a318a87640..8dc34eb0958aa0ce6e4fbb889b27fe9d90004836 100644 (file)
@@ -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()
index dca16ef288398030cc021209bb2c569f4768b65f..016f79e5756bd976a901f4c024fb91116d33a37b 100644 (file)
@@ -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;
index 8276a4671868324b2b02fce90efec8591ae97cc8..356eb7a193e4827f8bc0e2b5b6e9de347e030a4f 100644 (file)
@@ -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);
index 36e88984885cd75042b6d02136d44db0f7491d74..526e6c2153b2429756cd3ded3739fb5162491239 100644 (file)
@@ -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
 };
 
index 1d7852d7936db36909acf4ee888a94c432b30a6a..b398ee4ed471482c09e8907d90455b146940813e 100644 (file)
@@ -3,6 +3,7 @@
 //@version 100
 
 precision highp float;
+
 INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragColor
index 5b52919e76593f65399f4fe5c9a92cf4dbd542a3..cf70fa519ec713b863d6f1b709ace0738c7100d2 100644 (file)
@@ -3,6 +3,7 @@
 //@version 100
 
 precision highp float;
+
 INPUT highp vec2 aPosition;
 OUTPUT highp vec2 vTexCoord;
 UNIFORM_BLOCK VertBlock
index 532cb1178c6ea31c4df710541c62d7cbd4f65ea1..d9423b442c90df36497cb920bb3f2f263697cf04 100644 (file)
@@ -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()
index 2ede71ca99b106d5b530526d74643a4d47cc1848..d35f3f09c03ea293ce06c3294a36690ddc1be677 100644 (file)
@@ -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;
 
index ca8f4f9d72bf9be91f88e27e4cfac3a217196754..ea27644fa5479004d7ba181727429c268daf35cb 100644 (file)
@@ -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
index e03d9c551b907b84b8f34b038e3854e2422a1037..06e23589fd60bc3f4ce13f8ff1efdaf7a93b22f2 100644 (file)
@@ -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()
 {
index 8c83c138f532ceb0ed4a74f7fa124d679ab4bd07..22e77e37372ffcf3c267d247fd531195ccd73c03 100644 (file)
@@ -2,7 +2,9 @@
 
 //@version 100
 
-INPUT mediump vec2 vTexCoord;
+precision highp float;
+
+INPUT highp vec2 vTexCoord;
 
 UNIFORM_BLOCK FragBlock
 {
index bf6f369194e40762472225b7ecff464695cd4f81..4750edd4691ecbcca00b8dc5fa982c59aa1f6c2a 100644 (file)
@@ -2,7 +2,9 @@
 
 //@version 100
 
-INPUT mediump vec2 vTexCoord;
+precision highp float;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 
 UNIFORM_BLOCK FragBlock
index 0b3975e01b699bd85e1924c14132211e0bdc6ec0..071a38b5b55495312ed64eb34fcf4d31a3952ee7 100644 (file)
@@ -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;
index 0dca02b1094eace07352a2935502707df0e6eb08..166ef1c63e0d8ae51cca59c3fd6c4dd7df70752b 100644 (file)
@@ -2,7 +2,9 @@
 
 //@version 100
 
-INPUT mediump vec2 vTexCoord;
+precision highp float;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
 {
index b73e22f7243842f5bd3b234fbfbb474ae94ad0c4..83995e584ecd1e139f957dfd973b101de62ec1c4 100644 (file)
@@ -3,7 +3,8 @@
 //@version 100
 
 precision highp float;
-INPUT mediump vec2 vTexCoord;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
 {
index 438042cbdffda23802a4a2d6033f7b4e33b61b18..ea4352c59f6ccc61349bd1da8ad0fd96638bf7bc 100644 (file)
@@ -2,6 +2,8 @@
 
 //@version 100
 
+precision highp float;
+
 INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
index 41797cc8df45bbe25e269168a330227cc5096e7a..0b8499bfbb4b4703f565cfe1ade72575359f48cb 100644 (file)
@@ -4,5 +4,5 @@ UNIFORM sampler2D uBaseColorSampler;
 
 UNIFORM_BLOCK FragBlockBaseColor
 {
-  UNIFORM int uBaseColorTexCoordIndex;
+  UNIFORM highp int uBaseColorTexCoordIndex;
 };
index e0bf29740552411e67f7ac1be6d92ea55104953f..f02ca2ec21bcae03c08ceceed405b9d907d5a79d 100644 (file)
@@ -3,6 +3,6 @@
 UNIFORM sampler2D uEmissiveSampler;
 UNIFORM_BLOCK FragBlockEmissive
 {
-  UNIFORM int  uEmissiveTexCoordIndex;
-  UNIFORM vec3 uEmissiveFactor;
+  UNIFORM highp int  uEmissiveTexCoordIndex;
+  UNIFORM highp vec3 uEmissiveFactor;
 };
index 617e882802b7ef14c92e22a6bf99f571abb65523..b8dc01004b697a39744af58c207a2436d3e89f8d 100644 (file)
@@ -6,6 +6,6 @@ UNIFORM samplerCube uSpecularEnvSampler;
 
 UNIFORM_BLOCK FragBlockIBL
 {
-  UNIFORM vec4        uScaleIBLAmbient;
+  UNIFORM highp vec4  uScaleIBLAmbient;
   UNIFORM highp float uMipmapLevel;
 };
index 4df8eba31ae9e36b8d99c72e234d384ed9bcd184..2091e6098149a2643bf633fbf3ca6cc583f5f87f 100644 (file)
@@ -4,5 +4,5 @@ UNIFORM sampler2D uMetallicRoughnessSampler;
 
 UNIFORM_BLOCK FragBlockMetRough
 {
-  UNIFORM int uMetallicRoughnessTexCoordIndex;
+  UNIFORM highp int uMetallicRoughnessTexCoordIndex;
 };
index b469b3b39ec851f507937462b9f7cf03a3893844..985bd4d4b74d04f2c67c6344da9888eba663b625 100644 (file)
@@ -3,6 +3,6 @@
 UNIFORM sampler2D uNormalSampler;
 UNIFORM_BLOCK     FragBlockNormal
 {
-  UNIFORM float uNormalScale;
-  UNIFORM int   uNormalTexCoordIndex;
+  UNIFORM highp float uNormalScale;
+  UNIFORM highp int   uNormalTexCoordIndex;
 };
index 828252b7140b272539659a6fb548371db3067e23..5dabfa44f198a4f8bf3568441a0d49e1d50f9fa1 100644 (file)
@@ -3,6 +3,6 @@
 UNIFORM sampler2D uOcclusionSampler;
 UNIFORM_BLOCK     FragBlockOcclusion
 {
-  UNIFORM int   uOcclusionTexCoordIndex;
-  UNIFORM float uOcclusionStrength;
+  UNIFORM highp int   uOcclusionTexCoordIndex;
+  UNIFORM highp float uOcclusionStrength;
 };
index 8c1672daf361396d75f4cb290affb0b5679bef9a..4267c80a39bdcb57097cdd3d14c55e5287bfc7d0 100644 (file)
@@ -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;
 
index 7d4b5b883757ff106d08a057cd27c3f347643391..f94d29994ad83e466de392cf7e4346233c037ec6 100644 (file)
@@ -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;
 
index 90afff5a2a4167fd5b462e5415e061983ff43052..7a2572b55070f5e9cf54dd39b4eb73d63fbbef81 100644 (file)
@@ -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);
index ad27699776bbfb034f9a4eaec0ec7d6f714003fa..18a7c37f5bb4b17cfe6a0062f56ffdfa0182cecf 100644 (file)
@@ -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)
index 9ec5ca5c3201fd5b3c5ebb2723c263fb293c0e41..e4e9e08f0fc0b034baf87ef133b108f23c8da458 100644 (file)
@@ -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;
 
index 795ff7078d10cbdcc78ad46816923a80fe987970..973630c7b7c537dd0b309a546ccc67d6aed34470 100644 (file)
@@ -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;
index 9859b9bcf63bbfaf4f5759260190cea3928a29e0..112c9d40d865e2e75663b803557e3311534fb90b 100644 (file)
@@ -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
index b66e74f3753777bf68ee53e70e85065b82530151..8acbb934cba342b440b1a9aa87c86d223c12eab1 100644 (file)
@@ -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;
index 472d03cdcbc153fe9c840fdca0401d3a5d3302ff..9d8b5bdb26a292bbe922f994a5c189e574ed9806 100644 (file)
@@ -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);
index 7922573e23dd3d814de8f38eeb7bcf41cdd8a1cb..93e909549aeee81fd9ea08c5649580ee233126b2 100644 (file)
@@ -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
 {
index 5ba26c17326d12027a82f8ef60ac4942e0fd37c8..2ec8bd2096fc88500f6aaeb653e3a42895b4fbc4 100644 (file)
@@ -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);
index b28c0ee77e27648a79dbf83f8710c400685e483a..a386665a3b8793a79090ff7c92fdb96a8a8053b8 100644 (file)
@@ -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;
index a5d1221a3b780d74d5fe26464e9cd2d47fc743b6..5047d209d1d6905cca60642aae7dade4a4820cc0 100644 (file)
@@ -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);
index 2fde9654fce8f71f56395598a6d7f4c7fd2dcdf2..85311ae845e715cd46adc633d74681f36987f21f 100644 (file)
@@ -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;
index 198322a972c9b3b31ecc29d42c5fabf5cbb43953..ed2f14e6135f05f13699684f07709e1dc7765d79 100644 (file)
@@ -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()
index a3209f4da04b7c96f447b7a1999fb0d2e05f9edc..7944c2d0f50f7f9fdc22cce35cbb00570dba0449 100644 (file)
@@ -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
 {
index 4e63eedf5f6940d121848b60388f287ae65b804c..bb5bd0603a13fad5da42f1d40ad767c92ddb3e0c 100644 (file)
@@ -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()
index 2fb0094cf52ad9fb0b5c5de070cb28fd417d3eda..367a85430ed2bd982f23460afa8fc76e7435e2a1 100644 (file)
@@ -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;
index 6f63114e30eb47492c4d17caeae55d17c39a3cd1..008cb66e38e484b784a7fd952721c3ae0bba7cb7 100644 (file)
@@ -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()
index aebb9c04330985d95560366ccb872d950f91e6f3..39d06e1cf0161531aab0329ecc18711f75651b29 100644 (file)
@@ -2,7 +2,7 @@
 
 //@version 100
 
-precision mediump float;
+precision highp float;
 
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
index f55f6b65166497e3f7f047619d6267d01df0435e..146e2acee0af137ceb2b7ec3731c27b94b8950ba 100644 (file)
@@ -2,7 +2,7 @@
 
 //@version 100
 
-precision mediump float;
+precision highp float;
 
 INPUT vec2 aPosition;
 
index 86c2fcff9e76e308f8b852858e8fe4a1a9fe758c..c11fda7cd2a2771b91dc47dc741931e31698a9e3 100644 (file)
@@ -2,7 +2,7 @@
 
 //@version 100
 
-precision mediump float;
+precision highp float;
 
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
index 61a64372fc42cd1e718ba6e01b2754ea06f4e074..51477ddd9436b07e6793e5e39fb5798d4f363d37 100644 (file)
@@ -2,7 +2,7 @@
 
 //@version 100
 
-precision mediump float;
+precision highp float;
 
 INPUT vec2 aPosition; // Use position to calculate uvs
 
index 94909504f99c2daf3af886c7a6f07ccd4c5b52eb..90de3d0107f5702d403bd8667071a650cd7947d5 100644 (file)
@@ -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()
index 6ca69c02c11c11ddec035ce441c27f31a31ebc18..cbb9b573dd47ff6fe79d3560bd943d86ed18e754 100644 (file)
@@ -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);
index 9371ddba828bf79a92b009a445904c6e0933b3f3..596484646b754845227753d80041657bb76224fd 100644 (file)
@@ -2,7 +2,9 @@
 
 //@version 100
 
-INPUT mediump vec2 vTexCoord;
+precision highp float;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 
 UNIFORM_BLOCK FragBlock
index 2bb31683b86b4e4ba3b9d268e6882051aaabb15d..bb84cd3b7407e0197fae1501da13428f610d7eb9 100644 (file)
@@ -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()
index 4e355bdea18d8a401135a0a476aed88d9cafa46e..137f906cd3ef6b2ceb83f919bbe6cf5497bf5243 100644 (file)
@@ -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
index 13b9a766ffabec9fbb0848063aee8d0bd2ae6d1b..89f298b025807ce527799161b3fcda540cc0eb89 100644 (file)
@@ -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;
index d351a5de23ea077da2c7db8e12ab9a42b4e505a7..ee809c138838efe651ab695f6c382ba6006b47de 100644 (file)
@@ -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()
 {
index 1ee681ff7a702fd96d1d77828b361b2ab39aad14..b259861c45a8f8382e6bb57700d41ea81bfc253d 100644 (file)
  * ([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()
 {
index c7e144a3c138dea88a59c83b265cf6b5219b9aaa..f4e0653aecfb13d35bffda52a19adb8392cba9bf 100644 (file)
@@ -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
 {
index aae2d7f0038159e8d76cdeff7d9a7f927f1ca3d3..8eec6347538db1b06fd1c923de2d37ae393118f2 100644 (file)
@@ -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);
index 8c5cb72d316193901b52311db1274d5a1afdbba6..9e8916f51cef589370c6bcc54adbc3a81d075575 100644 (file)
@@ -3,6 +3,7 @@
 //@version 100
 
 precision highp float;
+
 INPUT highp vec2 vTexCoord;
 INPUT highp vec2 vOptRectSize;
 INPUT highp vec4 vCornerRadius;
index bcc39f7d199df258acec722217e5726c7a0196d5..1d631b58c5d814f82fda85bb7ad638ea1d535892 100644 (file)
@@ -2,7 +2,9 @@
 
 //@version 100
 
-INPUT mediump vec2 vTexCoord;
+precision highp float;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM_BLOCK FragBlock
 {
   UNIFORM lowp vec4 uShadowColor;
index 6ed9c9bc9e0705bc9560406a49a9f298c9418c14..6758533b931d5f2e7f226a5cbcfde57b33ea6221 100644 (file)
@@ -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;
index a6a19d6cd3b04f3e005f634d1091680b4dbf536d..2cfd351af7514ae977d0ed65a7c98762da0c2e8b 100644 (file)
@@ -3,7 +3,8 @@
 //@version 100
 
 precision highp float;
-INPUT mediump vec2 vTexCoord;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
 {
index 591287e90ff3f04703f062da3d8273ba7c72fccb..100f117e911b938a84bf7d7324809406c020d635 100644 (file)
@@ -2,7 +2,9 @@
 
 //@version 100
 
-INPUT mediump vec2 vTexCoord;
+precision highp float;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 UNIFORM_BLOCK FragBlock
 {
index 9140b69f88d90415f41680475cf1fc6195ca5449..e232d80660b1cfa0477f4dfeadca7b2abf40ba67 100644 (file)
@@ -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()
 {
index d63b685b3824e86a9e0a5feaf1381ede2b52ffaf..4e6890a207f0066f33c58779af20c2f10745523a 100644 (file)
@@ -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()
 {
index 9edcda8b500c13103f76957489e853baecbf6e1d..ac88152cce0d5d04af799a4fceffebc55d7b4a71 100644 (file)
@@ -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()
 {
index 4cc103b661c04aed03a7056c0bffcd4f33e82860..07fdd7e667e8463364b93f28d478054e5f4171b9 100644 (file)
@@ -2,7 +2,9 @@
 
 //@version 100
 
-INPUT mediump vec4      vColor;
+precision highp float;
+
+INPUT highp vec4      vColor;
 UNIFORM_BLOCK FragBlock
 {
   UNIFORM lowp    vec4      uColor;
index 60b51171db53170fe8bca97cf1970fd2bcde856d..125bf94878cfca073f1c60e2740abdfaceec8d05 100644 (file)
@@ -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;
 }
index 836e39f2fc8afacc4d8d95a1df903a38b7deddcf..69efc556a3aca969ee9207e9600275bf26424982 100644 (file)
@@ -2,6 +2,8 @@
 
 //@version 100
 
+precision highp float;
+
 UNIFORM_BLOCK FragBlock
 {
   UNIFORM lowp vec4 uColor;
index ef08b5e1ada7674b47face77699886640619b273..c0e7d6f1c9a3d68a5609e0dd61bb3effd13d3beb 100644 (file)
@@ -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;
 }
index cc7689db0dbe4255dd864ed9f93f521b16d7942f..2b38cb23451c8aef683381bd70df564bbbfe74f8 100644 (file)
@@ -2,6 +2,8 @@
 
 //@version 100
 
+precision highp float;
+
 INPUT highp vec2 vTexCoord;
 UNIFORM sampler2D sTexture;
 
index ef61fd01fe4c2cf23af3c409070e0c4c40f85699..8a74212432a72f1dad878cf986ade51448cd7162 100644 (file)
@@ -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;
index 924d90417cc7060ec9ac12827c6637bd1226e4ea..41e3a526da9a813d220d734682e5d98f17fe3cb0 100644 (file)
@@ -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;
index 04c7152a726304e70c8db347995770a055b6d033..d5a529bdbe64c6e450689a5213ccb22c79a4d3d3 100644 (file)
@@ -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 );
 }
index 3be448dedc415872c2dc6c651f0c8d3c5080060e..4d2959a1e46680b5608ba7f495e5f32e4d1712d6 100644 (file)
@@ -2,7 +2,9 @@
 
 //@version 100
 
-INPUT mediump vec2 vTexCoord;
+precision highp float;
+
+INPUT highp vec2 vTexCoord;
 UNIFORM samplerExternalOES sTexture;
 
 UNIFORM_BLOCK FragBlock
index 5d10ec27dde3cdd8492ec9e2fce8ce7fe1a494d4..9bf1b999eab7968c22eab2b52954a71f2ba21c92 100644 (file)
@@ -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)
 {
index 3baad9728925d89c29026cdb99c6882d97483bc6..4d320c3240f7c34b4e226617ddbe4cb86412a1e8 100644 (file)
@@ -2,6 +2,8 @@
 
 //@version 100
 
+precision highp float;
+
 void main()
 {
   gl_FragColor = vec4(0.0);
index 7723ddc679a63e6c27e85c1d2d4c2a9973a9a75f..e09374ec6127efcfe81470b54ff501b4632d041b 100644 (file)
@@ -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;
 }
index ed173fa34045d6adb4bc99d7a481ba66ee6ccea5..d3001495f4741d6330fa97a15edaade717f8d9f7 100644 (file)
@@ -2,6 +2,8 @@
 
 //@version 100
 
+precision highp float;
+
 UNIFORM_BLOCK FragBlock
 {
   UNIFORM lowp vec4 uColor;
index 74c29b7e84d393406c18b5b65abcc1648634a265..c7e6db45245aef3a861abd7371558127adb638aa 100644 (file)
@@ -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 );
 }