cat_engine 0.6.5

A 2D graphics engine with audio output support
Documentation
#version 140

in vec2 position; // window coordinate system

uniform float cos;
uniform float sin;
uniform vec2 rotation_center;
uniform vec2 window_center;

void main() {
    vec2 new_rotation_center = vec2(rotation_center.x - window_center.x, window_center.y - rotation_center.y);

    vec2 new_position = vec2(position.x - window_center.x, window_center.y - position.y);

    new_position = new_position - new_rotation_center;

    new_position = vec2(new_position.x * cos - new_position.y * sin, new_position.x * sin + new_position.y * cos);

    new_position = new_position + new_rotation_center;

    gl_Position = vec4(
        new_position.x / window_center.x,
        new_position.y / window_center.y,
        0.0,
        1.0
    );
}