Edit Mode Engine: Fix shader compilation on AMD. Also fix Bweight display.

This commit is contained in:
2017-04-19 11:08:38 +02:00
parent b3edd94e42
commit 76ecbd38f2
3 changed files with 13 additions and 6 deletions

View File

@@ -18,7 +18,7 @@ in ivec4 vData[];
/* these are the same for all vertices
* and does not need interpolation */
flat out vec3 edgesCrease;
flat out vec3 edgesSharp;
flat out vec3 edgesBweight;
flat out ivec3 flag;
flat out vec4 faceColor;
flat out int clipCase;
@@ -131,7 +131,7 @@ void main()
flag[2] = vData[0].y | (vData[0].x << 8);
edgesCrease[2] = vData[0].z / 255.0;
edgesSharp[2] = vData[0].w / 255.0;
edgesBweight[2] = vData[0].w / 255.0;
doVertex(1, pPos[1] + vec4( dirs2.zw, 0.0, 0.0));
doVertex(1, pPos[1] + vec4(-dirs2.zw, 0.0, 0.0));

View File

@@ -33,7 +33,7 @@ in ivec4 vData[];
/* these are the same for all vertices
* and does not need interpolation */
flat out vec3 edgesCrease;
flat out vec3 edgesSharp;
flat out vec3 edgesBweight;
flat out ivec3 flag;
flat out vec4 faceColor;
flat out int clipCase;
@@ -126,11 +126,11 @@ void main()
return;
/* Edge */
ivec3 eflag; vec3 ecrease, esharp;
ivec3 eflag; vec3 ecrease, ebweight;
for (int v = 0; v < 3; ++v) {
flag[v] = eflag[v] = vData[v].y | (vData[v].x << 8);
edgesCrease[v] = ecrease[v] = vData[v].z / 255.0;
edgesSharp[v] = esharp[v] = vData[v].w / 255.0;
edgesBweight[v] = ebweight[v] = vData[v].w / 255.0;
}
/* Face */
@@ -244,7 +244,7 @@ void main()
flag[1] = (vData[vaf].x << 8);
flag[2] = eflag[vbe];
edgesCrease[2] = ecrease[vbe];
edgesSharp[2] = esharp[vbe];
edgesBweight[2] = ebweight[vbe];
doVertex(vaf, pPos[vaf]);
doVertex(vaf, pPos[vaf] + vec4(fixvecaf[v], 0.0, 0.0));

View File

@@ -13,9 +13,14 @@ in ivec4 data;
/* these are the same for all vertices
* and does not need interpolation */
flat out vec3 edgesCrease;
flat out vec3 edgesBweight;
flat out ivec3 flag;
flat out vec4 faceColor;
flat out int clipCase;
#ifdef VERTEX_SELECTION
smooth out vec3 vertexColor;
#endif
/* See fragment shader */
noperspective out vec4 eData1;
@@ -30,6 +35,8 @@ vec2 proj(vec4 pos)
void main()
{
clipCase = 0;
edgesCrease = vec3(0.0);
edgesBweight = vec3(0.0);
vec4 pPos = ModelViewProjectionMatrix * vec4(pos, 1.0);