#version 150 #define SAMPLER_BINDING(x) #define float2 vec2 #define float3 vec3 #define float4 vec4 #define uint2 uvec2 #define uint3 uvec3 #define uint4 uvec4 #define int2 ivec2 #define int3 ivec3 #define int4 ivec4 #define frac fract #define lerp mix struct Light { int4 color; float4 cosatt; float4 distatt; float4 pos; float4 dir; }; layout(std140) uniform VSBlock { float4 cpnmtx[6]; float4 cproj[4]; int4 cmtrl[4]; Light clights[8]; float4 ctexmtx[24]; float4 ctrmtx[64]; float4 cnmtx[32]; float4 cpostmtx[64]; float4 cpixelcenter; }; struct VS_OUTPUT { float4 pos; float4 colors_0; float4 colors_1; float3 tex0; float4 clipPos; }; in float4 rawpos; // ATTR0, in float3 rawnorm0; // ATTR2, out VertexData { centroid out float4 pos; centroid out float4 colors_0; centroid out float4 colors_1; centroid out float3 tex0; centroid out float4 clipPos; } vs; void main() { VS_OUTPUT o; float4 pos = float4(dot(cpnmtx[0], rawpos), dot(cpnmtx[1], rawpos), dot(cpnmtx[2], rawpos), 1.0); float3 _norm0 = normalize(float3(dot(cpnmtx[3].xyz, rawnorm0), dot(cpnmtx[4].xyz, rawnorm0), dot(cpnmtx[5].xyz, rawnorm0))); o.pos = float4(dot(cproj[0], pos), dot(cproj[1], pos), dot(cproj[2], pos), dot(cproj[3], pos)); int4 lacc; float3 ldir, h, cosAttn, distAttn; float dist, dist2, attn; { int4 mat = cmtrl[2]; lacc = cmtrl[0]; lacc.w = cmtrl[0].w; ldir = normalize(clights[0].pos.xyz - pos.xyz); attn = (dot(_norm0, ldir) >= 0.0) ? max(0.0, dot(_norm0, clights[0].dir.xyz)) : 0.0; cosAttn = clights[0].cosatt.xyz; distAttn = (clights[0].distatt.xyz); attn = max(0.0f, dot(cosAttn, float3(1.0, attn, attn*attn))) / dot(distAttn, float3(1.0, attn, attn*attn)); lacc.xyzw += int4(round(attn * float4(clights[0].color.xyzw))); lacc = clamp(lacc, 0, 255); o.colors_0 = float4((mat * (lacc + (lacc >> 7))) >> 8) / 255.0; } o.colors_1 = o.colors_0; float4 coord = float4(0.0, 0.0, 1.0, 1.0); { coord = float4(0.0, 0.0, 1.0, 1.0); coord = float4(rawnorm0.xyz, 1.0); o.tex0.xyz = float3(dot(coord, ctexmtx[0]), dot(coord, ctexmtx[1]), dot(coord, ctexmtx[2])); float4 P0 = cpostmtx[61]; float4 P1 = cpostmtx[62]; float4 P2 = cpostmtx[63]; o.tex0.xyz = float3(dot(P0.xyz, o.tex0.xyz) + P0.w, dot(P1.xyz, o.tex0.xyz) + P1.w, dot(P2.xyz, o.tex0.xyz) + P2.w); } o.clipPos = o.pos; o.pos.z = o.pos.w + o.pos.z * 2.0; o.pos.xy = o.pos.xy - o.pos.w * cpixelcenter.xy; vs.pos = o.pos; vs.colors_0 = o.colors_0; vs.colors_1 = o.colors_1; vs.tex0 = o.tex0; vs.clipPos = o.clipPos; gl_Position = o.pos; } ERROR: 1:29: 'centroid' : syntax error syntax error