mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
46 lines
1013 B
GLSL
46 lines
1013 B
GLSL
#version 150
|
|
|
|
uniform vec4 uPalette[256];
|
|
uniform usampler2DArray uTexture;
|
|
|
|
flat in ivec4 fClip;
|
|
flat in int fFlags;
|
|
in vec4 fColour;
|
|
flat in int fTexAtlasIndex;
|
|
in vec2 fTexColourCoords;
|
|
in vec2 fTexMaskCoords;
|
|
flat in int fMask;
|
|
|
|
in vec2 fPosition;
|
|
in vec2 fTextureCoordinate;
|
|
|
|
out vec4 oColour;
|
|
|
|
void main()
|
|
{
|
|
if (fPosition.x < fClip.x || fPosition.x > fClip.z ||
|
|
fPosition.y < fClip.y || fPosition.y > fClip.w)
|
|
{
|
|
discard;
|
|
}
|
|
|
|
vec4 mask = uPalette[texture(uTexture, vec3(fTexMaskCoords, float(fTexAtlasIndex))).r];
|
|
vec4 texel = uPalette[texture(uTexture, vec3(fTexColourCoords, float(fTexAtlasIndex))).r];
|
|
|
|
if (fMask != 0)
|
|
{
|
|
oColour = texel * mask;
|
|
}
|
|
else
|
|
{
|
|
if ((fFlags & 1) != 0)
|
|
{
|
|
oColour = vec4(fColour.rgb, fColour.a * texel.a);
|
|
}
|
|
else
|
|
{
|
|
oColour = texel;
|
|
}
|
|
}
|
|
}
|