from ursina import color
from ursina.shader import Shader

camera_grayscale_shader = Shader(
fragment='''
#version 430

uniform sampler2D tex;
in vec2 uv;
out vec4 color;

void main() {
    vec3 rgb = texture(tex, uv).rgb;
    float gray = rgb.r*.3 + rgb.g*.59 + rgb.b*.11;
    color = vec4(gray, gray, gray, 1.0);
}

''',
geometry='')



if __name__ == '__main__':
    from ursina import *
    app = Ursina()

    e = Entity(model='sphere', color=color.orange)
    e = Entity(model='cube', y=-1)
    camera.shader = camera_grayscale_shader
    # camera.set_shader_input('contrast', 1)
    EditorCamera()

    def input(key):
        if key == 'space':
            if camera.shader:
                camera.shader = None
            else:
                camera.shader = camera_grayscale_shader

    Sky()
    app.run()
