diff options
Diffstat (limited to '')
| -rw-r--r-- | glow/src/shader/common/gradient.frag | 32 | ||||
| -rw-r--r-- | glow/src/shader/common/triangle.frag | 2 | ||||
| -rw-r--r-- | glow/src/triangle/gradient.rs | 4 | 
3 files changed, 19 insertions, 19 deletions
| diff --git a/glow/src/shader/common/gradient.frag b/glow/src/shader/common/gradient.frag index 42d0201f..9af0cb6e 100644 --- a/glow/src/shader/common/gradient.frag +++ b/glow/src/shader/common/gradient.frag @@ -1,20 +1,20 @@  #ifdef GL_ES -    #ifdef GL_FRAGMENT_PRECISION_HIGH -        precision highp float; -    #else -        precision mediump float; -    #endif +#ifdef GL_FRAGMENT_PRECISION_HIGH +precision highp float; +#else +precision mediump float; +#endif  #endif  #ifdef HIGHER_THAN_300 -    layout (location = 0) out vec4 fragColor; -    #define gl_FragColor fragColor +layout (location = 0) out vec4 fragColor; +#define gl_FragColor fragColor  #endif  in vec2 raw_position;  uniform vec4 gradient_direction; -uniform uint color_stops_size; +uniform int color_stops_size;  // GLSL does not support dynamically sized arrays without SSBOs so this is capped to 16 stops  //stored as color(vec4) -> offset(vec4) sequentially;  uniform vec4 color_stops[32]; @@ -28,23 +28,23 @@ void main() {      vec2 unit = normalize(gradient_vec);      float coord_offset = dot(unit, current_vec) / length(gradient_vec);      //if a gradient has a start/end stop that is identical, the mesh will have a transparent fill -    fragColor = vec4(0.0, 0.0, 0.0, 0.0); +    gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);      float min_offset = color_stops[1].x; -    float max_offset = color_stops[color_stops_size - 1u].x; +    float max_offset = color_stops[color_stops_size - 1].x; -    for (uint i = 0u; i < color_stops_size - 2u; i += 2u) { -        float curr_offset = color_stops[i+1u].x; -        float next_offset = color_stops[i+3u].x; +    for (int i = 0; i < color_stops_size - 2; i += 2) { +        float curr_offset = color_stops[i+1].x; +        float next_offset = color_stops[i+3].x;          if (coord_offset <= min_offset) {              //current coordinate is before the first defined offset, set it to the start color -            fragColor = color_stops[0]; +            gl_FragColor = color_stops[0];          }          if (curr_offset <= coord_offset && coord_offset <= next_offset) {              //current fragment is between the current offset processing & the next one, interpolate colors -            fragColor = mix(color_stops[i], color_stops[i+2u], smoothstep( +            gl_FragColor = mix(color_stops[i], color_stops[i+2], smoothstep(                  curr_offset,                  next_offset,                  coord_offset @@ -53,7 +53,7 @@ void main() {          if (coord_offset >= max_offset) {              //current coordinate is before the last defined offset, set it to the last color -            fragColor = color_stops[color_stops_size - 2u]; +            gl_FragColor = color_stops[color_stops_size - 2];          }      }  } diff --git a/glow/src/shader/common/triangle.frag b/glow/src/shader/common/triangle.frag index ead40fe5..8260f6a6 100644 --- a/glow/src/shader/common/triangle.frag +++ b/glow/src/shader/common/triangle.frag @@ -14,5 +14,5 @@ out vec4 fragColor;  uniform vec4 color;  void main() { -    fragColor = color; +    gl_FragColor = color;  } diff --git a/glow/src/triangle/gradient.rs b/glow/src/triangle/gradient.rs index 5225612e..d5f26877 100644 --- a/glow/src/triangle/gradient.rs +++ b/glow/src/triangle/gradient.rs @@ -71,14 +71,14 @@ impl Program {                          linear.end.y,                      ); -                    gl.uniform_1_u32( +                    gl.uniform_1_i32(                          Some(                              &self                                  .uniform_data                                  .uniform_locations                                  .color_stops_size_location,                          ), -                        (linear.color_stops.len() * 2) as u32, +                        (linear.color_stops.len() * 2) as i32,                      );                      let mut stops = [0.0; 128]; | 
