2013-09-23 07:15:01 +02:00
|
|
|
|
|
|
|
uniform mat4 projMat;
|
|
|
|
|
|
|
|
uniform mat4 spriteMat;
|
|
|
|
|
|
|
|
uniform vec2 texSizeInv;
|
2021-11-29 06:58:41 -05:00
|
|
|
uniform vec2 patternSizeInv;
|
|
|
|
uniform vec2 patternScroll;
|
2021-11-29 18:57:43 -05:00
|
|
|
uniform vec2 patternZoom;
|
2021-11-29 06:58:41 -05:00
|
|
|
uniform bool renderPattern;
|
2021-11-29 18:57:43 -05:00
|
|
|
uniform bool patternTile;
|
2013-09-23 07:15:01 +02:00
|
|
|
|
|
|
|
attribute vec2 position;
|
|
|
|
attribute vec2 texCoord;
|
|
|
|
|
|
|
|
varying vec2 v_texCoord;
|
2021-11-29 06:58:41 -05:00
|
|
|
varying vec2 v_patCoord;
|
2013-09-23 07:15:01 +02:00
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
gl_Position = projMat * spriteMat * vec4(position, 0, 1);
|
2021-11-29 06:58:41 -05:00
|
|
|
|
2021-11-29 18:57:43 -05:00
|
|
|
v_texCoord = texCoord * texSizeInv;
|
|
|
|
|
2021-11-29 06:58:41 -05:00
|
|
|
if (renderPattern) {
|
2021-11-29 18:57:43 -05:00
|
|
|
if (patternTile) {
|
2021-11-29 21:58:18 -05:00
|
|
|
vec2 scroll = patternScroll * (patternSizeInv / texSizeInv);
|
|
|
|
v_patCoord = (texCoord * (patternSizeInv / patternZoom)) - (scroll * patternSizeInv);
|
2021-11-29 18:57:43 -05:00
|
|
|
}
|
|
|
|
else {
|
2021-11-29 21:58:18 -05:00
|
|
|
vec2 scroll = patternScroll * (patternSizeInv / texSizeInv);
|
|
|
|
v_patCoord = (texCoord * (texSizeInv / patternZoom)) - (scroll * texSizeInv);
|
2021-11-29 18:57:43 -05:00
|
|
|
}
|
2021-11-29 06:58:41 -05:00
|
|
|
}
|
2013-09-23 07:15:01 +02:00
|
|
|
}
|