summaryrefslogtreecommitdiff
path: root/source/Asura.Editor/graphics/shaders/image_slice.shader.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/Asura.Editor/graphics/shaders/image_slice.shader.h')
-rw-r--r--source/Asura.Editor/graphics/shaders/image_slice.shader.h64
1 files changed, 0 insertions, 64 deletions
diff --git a/source/Asura.Editor/graphics/shaders/image_slice.shader.h b/source/Asura.Editor/graphics/shaders/image_slice.shader.h
deleted file mode 100644
index 58be2b1..0000000
--- a/source/Asura.Editor/graphics/shaders/image_slice.shader.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef __ASURA_EDITOR_SHADER_H__
-#include "../shader.h"
-#endif
-
-// ŹָͼƬ
-static AsuraEditor::Graphics::ShaderProgram image_slice_shader =
-{
-R"(
-in vec2 _position;
-
-uniform _mvp_matrix;
-
-out vec2 offset; // top-left
-
-void main()
-{
- gl_Position = _mvp_matrix * vec4(_position, 0, 1);
- offset = _position - vec2(0.5, 0.5);
-}
-
-)",
-
-R"(
-in vec2 offset;
-
-uniform vec4 _sliceline; // l, r, t, b
-uniform vec2 _texsize; // w0, h0 in pixel
-uniform sampler2D _maintex;
-uniform vec2 _area; // w, h
-// (a, b]Χڣ1򷵻0
-int factor(float v, float a, float b)
-{
- return clamp(sign(v-a), 0, 1) * step(-b, -v);
-}
-
-void main()
-{
- float x = offset.x;
- float y = offset.y;
- float l = _sliceline.x;
- float r = _sliceline.y;
- float t = _sliceline.z;
- float b = _sliceline.w;
- float w0 = _texsize.x;
- float h0 = _texsize.y;
- float w = _area.x;
- float h = _area.y;
-
- vec2 uv = vec2(0, 0);
-
- //uv.x *= 0; // x = 0
- uv.x *= factor(x, 0, l) * x / w0; // 0<x<=l
- uv.x *= factor(x, l, w-r) * (l/w0 + (x-l)/(w-l-r) * (w0-l-r) / w0); // l<x<=w-r
- uv.x *= factor(x, w-r, w) * (1 - (w-x)/w0); // w-r<x<=w
-
- //uv.y *= 0; // y = 0
-
-
- gl_FragColor = texture2D(_maintex, uv);
-
-}
-
-)"
-};