|
|
|
R"(
|
|
|
|
|
|
|
|
#if VER <= 300
|
|
|
|
#define layout(x)
|
|
|
|
#endif
|
|
|
|
#if VER < 300
|
|
|
|
#define in attribute
|
|
|
|
#define out varying
|
|
|
|
#endif
|
|
|
|
|
|
|
|
layout(location = LOC_ATTR_POSITION) in vec3 inPosition;
|
|
|
|
#if ATTR_COLOR
|
|
|
|
layout(location = LOC_ATTR_COLOR) in vec4 inColor;
|
|
|
|
#endif
|
|
|
|
#if ATTR_TEXCOORD0
|
|
|
|
layout(location = LOC_ATTR_TEXCOORD0) in vec2 inTexCoord0;
|
|
|
|
#endif
|
|
|
|
#if ATTR_TEXCOORD1
|
|
|
|
layout(location = LOC_ATTR_TEXCOORD1) in vec2 inTexCoord1;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if ATTR_NORMAL
|
|
|
|
in vec3 inNormal;
|
|
|
|
#endif
|
|
|
|
#if ATTR_COLOR
|
|
|
|
out vec4 vColor;
|
|
|
|
#endif
|
|
|
|
#if ATTR_TEXCOORD0
|
|
|
|
out vec2 vTexCoord0;
|
|
|
|
#endif
|
|
|
|
#if ATTR_TEXCOORD1
|
|
|
|
out vec2 vTexCoord1;
|
|
|
|
#endif
|
|
|
|
#if ATTR_NORMAL
|
|
|
|
out vec3 vNormal;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
uniform mat4 uMVP;
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
gl_Position = uMVP * vec4(inPosition,1.0f);
|
|
|
|
#if ATTR_COLOR
|
|
|
|
vColor = inColor;
|
|
|
|
#endif
|
|
|
|
#if ATTR_NORMAL
|
|
|
|
vNormal = inNormal;
|
|
|
|
#endif
|
|
|
|
#if ATTR_TEXCOORD0
|
|
|
|
vTexCoord0 = inTexCoord0;
|
|
|
|
#endif
|
|
|
|
#if ATTR_TEXCOORD1
|
|
|
|
vTexCoord1 = inTexCoord1;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
)"
|