UI: Fix widget shader on certain compiler.

There was a crash with `Intel(R) HD Graphics 4000`.
Thanks to @fclem for the help and review.
This commit is contained in:
Germano Cavalcante 2018-04-09 13:45:17 -03:00
parent c1a2f973da
commit 2a0dca4252
2 changed files with 11 additions and 10 deletions

View File

@ -25,7 +25,8 @@ void main()
fragColor = finalColor;
if (butCo > 0.5) {
fragColor = mix(do_checkerboard(), fragColor, fragColor.a);
vec4 checker = do_checkerboard();
fragColor = mix(checker, fragColor, fragColor.a);
}
if (butCo > 0.0) {

View File

@ -1,4 +1,4 @@
#define BIT_RANGE(x) ((1u << x) - 1u)
#define BIT_RANGE(x) uint((1 << x) - 1)
/* 2 bits for corner */
/* Attention! Not the same order as in UI_interface.h!
@ -7,11 +7,11 @@
#define BOTTOM_RIGHT 1u
#define TOP_RIGHT 2u
#define TOP_LEFT 3u
#define CNR_FLAG_RANGE BIT_RANGE(2u)
#define CNR_FLAG_RANGE BIT_RANGE(2)
/* 4bits for corner id */
#define CORNER_VEC_OFS 2u
#define CORNER_VEC_RANGE BIT_RANGE(4u)
#define CORNER_VEC_RANGE BIT_RANGE(4)
const vec2 cornervec[36] = vec2[36](
vec2(0.0, 1.0), vec2(0.02, 0.805), vec2(0.067, 0.617), vec2(0.169, 0.45), vec2(0.293, 0.293), vec2(0.45, 0.169), vec2(0.617, 0.076), vec2(0.805, 0.02), vec2(1.0, 0.0),
vec2(-1.0, 0.0), vec2(-0.805, 0.02), vec2(-0.617, 0.067), vec2(-0.45, 0.169), vec2(-0.293, 0.293), vec2(-0.169, 0.45), vec2(-0.076, 0.617), vec2(-0.02, 0.805), vec2(0.0, 1.0),
@ -21,7 +21,7 @@ const vec2 cornervec[36] = vec2[36](
/* 4bits for jitter id */
#define JIT_OFS 6u
#define JIT_RANGE BIT_RANGE(4u)
#define JIT_RANGE BIT_RANGE(4)
const vec2 jit[9] = vec2[9](
vec2( 0.468813, -0.481430), vec2(-0.155755, -0.352820),
vec2( 0.219306, -0.238501), vec2(-0.393286, -0.110949),
@ -31,22 +31,22 @@ const vec2 jit[9] = vec2[9](
);
/* 2bits for other flags */
#define INNER_FLAG (1u << 10u) /* is inner vert */
#define EMBOSS_FLAG (1u << 11u) /* is emboss vert */
#define INNER_FLAG uint(1 << 10) /* is inner vert */
#define EMBOSS_FLAG uint(1 << 11) /* is emboss vert */
/* 2bits for color */
#define COLOR_OFS 12u
#define COLOR_RANGE BIT_RANGE(2u)
#define COLOR_RANGE BIT_RANGE(2)
#define COLOR_INNER 0u
#define COLOR_EDGE 1u
#define COLOR_EMBOSS 2u
/* 2bits for trias type */
#define TRIA_FLAG (1u << 14u) /* is tria vert */
#define TRIA_FLAG uint(1 << 14) /* is tria vert */
#define TRIA_FIRST INNER_FLAG /* is first tria (reuse INNER_FLAG) */
/* We can reuse the CORNER_* bits for tria */
#define TRIA_VEC_RANGE BIT_RANGE(6u)
#define TRIA_VEC_RANGE BIT_RANGE(6)
const vec2 triavec[34] = vec2[34](
/* horizontal tria */
vec2(-0.352077, 0.532607), vec2(-0.352077, -0.549313), vec2( 0.330000, -0.008353),