From 04ab1a3420b46af046a898ee5510e0d9b25ed24c Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Sun, 27 Aug 2017 20:24:28 +0500 Subject: 2017-08-27 --- cwd/shaders/gui.fs | 21 +++++++++++++++++++++ cwd/shaders/gui.vs | 27 +++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 cwd/shaders/gui.fs create mode 100644 cwd/shaders/gui.vs (limited to 'cwd/shaders') diff --git a/cwd/shaders/gui.fs b/cwd/shaders/gui.fs new file mode 100644 index 0000000..95196b9 --- /dev/null +++ b/cwd/shaders/gui.fs @@ -0,0 +1,21 @@ +#version 330 core + +in vec2 uv; + +uniform vec4 widgetTexture; +uniform sampler2D textureAtlas; + +vec2 TransformTextureCoord(vec4 TextureAtlasCoords, vec2 UvCoords) { + float x = TextureAtlasCoords.x; + float y = TextureAtlasCoords.y; + float w = TextureAtlasCoords.z; + float h = TextureAtlasCoords.w; + vec2 A = vec2(x, 1 - y - h); + vec2 B = vec2(x + w, 1 - y); + return A + UvCoords * (B - A); +} + +void main(){ + vec4 color = texture(textureAtlas,TransformTextureCoord(widgetTexture,uv)); + gl_FragColor = color; +} \ No newline at end of file diff --git a/cwd/shaders/gui.vs b/cwd/shaders/gui.vs new file mode 100644 index 0000000..b6f848b --- /dev/null +++ b/cwd/shaders/gui.vs @@ -0,0 +1,27 @@ +#version 330 core + +uniform vec4 transform; + +layout (location = 0) in vec3 position; +layout (location = 1) in vec2 UvCoordinates; + +out vec2 uv; + +vec2 TransfromWidgetCoord() { + vec2 origin = vec2((transform.x * 2.0f) - 1.0f, (0.5 - transform.y) * 2.0f); + + float x = transform.x; + float y = transform.y; + float w = transform.z; + float h = transform.w; + vec2 A = vec2(x, 1 - y - h); + vec2 B = vec2(x + w, 1 - y); + vec2 ret = vec2(A + position.xy * (B - A)); + return vec2(ret.x-1.0f,ret.y); +} + +void main(){ + uv = UvCoordinates; + + gl_Position = vec4(TransfromWidgetCoord(),0,1); +} \ No newline at end of file -- cgit v1.2.3