minecraft-assets/assets/minecraft/shaders/program/rotscale.vsh

32 lines
759 B
GLSL

#version 120
attribute vec4 Position;
uniform mat4 ProjMat;
uniform vec2 InSize;
uniform vec2 OutSize;
uniform vec2 InScale;
uniform vec2 InOffset;
uniform float InRotation;
uniform float Time;
varying vec2 texCoord;
varying vec2 scaledCoord;
void main(){
vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0);
gl_Position = vec4(outPos.xy, 0.2, 1.0);
texCoord = Position.xy / OutSize;
texCoord.y = 1.0 - texCoord.y;
float Deg2Rad = 0.0174532925;
float InRadians = InRotation * Deg2Rad;
float Cosine = cos(InRadians);
float Sine = sin(InRadians);
float RotU = texCoord.x * Cosine - texCoord.y * Sine;
float RotV = texCoord.y * Cosine + texCoord.x * Sine;
scaledCoord = vec2(RotU, RotV) * InScale + InOffset;
}