From 45b0ad28887218c2082838e3991fcdae552de287 Mon Sep 17 00:00:00 2001 From: OLEGSHA Date: Sun, 9 Aug 2020 11:40:41 +0300 Subject: [PATCH] Switched back to GLSL 1.20 because my laptop is a brick --- .../graphics/backend/shaders/CombinedShader.java | 2 +- .../resources/assets/shaders/Flat.fragment.glsl | 13 ++++++++++++- src/main/resources/assets/shaders/Flat.vertex.glsl | 4 ++-- .../assets/shaders/FlatDefault.fragment.glsl | 4 ++-- .../assets/shaders/FlatDefault.vertex.glsl | 4 ++-- .../resources/assets/shaders/Shape.fragment.glsl | 4 ++-- src/main/resources/assets/shaders/Shape.vertex.glsl | 4 ++-- .../resources/assets/shaders/World.fragment.glsl | 4 ++-- src/main/resources/assets/shaders/World.vertex.glsl | 4 ++-- .../assets/shaders/WorldDefault.fragment.glsl | 4 ++-- .../assets/shaders/WorldDefault.vertex.glsl | 4 ++-- 11 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/main/java/ru/windcorp/optica/client/graphics/backend/shaders/CombinedShader.java b/src/main/java/ru/windcorp/optica/client/graphics/backend/shaders/CombinedShader.java index 61ccfb8..dcd9571 100644 --- a/src/main/java/ru/windcorp/optica/client/graphics/backend/shaders/CombinedShader.java +++ b/src/main/java/ru/windcorp/optica/client/graphics/backend/shaders/CombinedShader.java @@ -44,7 +44,7 @@ public class CombinedShader extends Shader { } private static String combine(String[] resources) { - StringBuilder accumulator = new StringBuilder("#version 140\n"); + StringBuilder accumulator = new StringBuilder("#version 120\n"); for (String resourceName : resources) { Resource resource = getShaderResource(resourceName); diff --git a/src/main/resources/assets/shaders/Flat.fragment.glsl b/src/main/resources/assets/shaders/Flat.fragment.glsl index 15da58f..ffc76e6 100644 --- a/src/main/resources/assets/shaders/Flat.fragment.glsl +++ b/src/main/resources/assets/shaders/Flat.fragment.glsl @@ -1,9 +1,20 @@ -#version 140 +#version 120 uniform int maskCount; uniform vec2 masks[3 * 2 * 16]; +mat2 inverse(mat2 matrix) { + mat2 result = mat2( + +matrix[1][1], -matrix[1][0], + -matrix[0][1], +matrix[0][0] + ); + + float det = matrix[0][0] * matrix[1][1] - matrix[1][0] * matrix[0][1]; + + return result / det; +} + bool isInMaskPrimitive(int primitive) { vec2 origin = masks[3 * primitive + 0]; vec2 width = masks[3 * primitive + 1]; diff --git a/src/main/resources/assets/shaders/Flat.vertex.glsl b/src/main/resources/assets/shaders/Flat.vertex.glsl index 9082679..0de49b1 100644 --- a/src/main/resources/assets/shaders/Flat.vertex.glsl +++ b/src/main/resources/assets/shaders/Flat.vertex.glsl @@ -1,5 +1,5 @@ -#version 140 +#version 120 void flatTransferToFragment() { shapeTransferToFragment(); -} \ No newline at end of file +} diff --git a/src/main/resources/assets/shaders/FlatDefault.fragment.glsl b/src/main/resources/assets/shaders/FlatDefault.fragment.glsl index 267244c..34a5a7e 100644 --- a/src/main/resources/assets/shaders/FlatDefault.fragment.glsl +++ b/src/main/resources/assets/shaders/FlatDefault.fragment.glsl @@ -1,8 +1,8 @@ -#version 140 +#version 120 void main(void) { applyTexture(); applyColorMultiplier(); applyAlpha(); applyMask(); -} \ No newline at end of file +} diff --git a/src/main/resources/assets/shaders/FlatDefault.vertex.glsl b/src/main/resources/assets/shaders/FlatDefault.vertex.glsl index a317ef4..aa62d83 100644 --- a/src/main/resources/assets/shaders/FlatDefault.vertex.glsl +++ b/src/main/resources/assets/shaders/FlatDefault.vertex.glsl @@ -1,6 +1,6 @@ -#version 140 +#version 120 void main(void) { gl_Position = applyFinalTransform(vec4(inputPositions, 1.0)); flatTransferToFragment(); -} \ No newline at end of file +} diff --git a/src/main/resources/assets/shaders/Shape.fragment.glsl b/src/main/resources/assets/shaders/Shape.fragment.glsl index d188922..6c3ad58 100644 --- a/src/main/resources/assets/shaders/Shape.fragment.glsl +++ b/src/main/resources/assets/shaders/Shape.fragment.glsl @@ -1,4 +1,4 @@ -#version 140 +#version 120 varying vec3 varyingColorMultiplier; varying vec2 varyingTextureCoords; @@ -45,4 +45,4 @@ void applyAlpha() { if (gl_FragColor.w < 0.01) { discard; } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/shaders/Shape.vertex.glsl b/src/main/resources/assets/shaders/Shape.vertex.glsl index 661252d..62b812a 100644 --- a/src/main/resources/assets/shaders/Shape.vertex.glsl +++ b/src/main/resources/assets/shaders/Shape.vertex.glsl @@ -1,4 +1,4 @@ -#version 140 +#version 120 attribute vec3 inputPositions; @@ -17,4 +17,4 @@ vec4 applyFinalTransform(vec4 vector) { void shapeTransferToFragment() { varyingColorMultiplier = inputColorMultiplier; varyingTextureCoords = inputTextureCoords; -} \ No newline at end of file +} diff --git a/src/main/resources/assets/shaders/World.fragment.glsl b/src/main/resources/assets/shaders/World.fragment.glsl index 691aadf..53cee6d 100644 --- a/src/main/resources/assets/shaders/World.fragment.glsl +++ b/src/main/resources/assets/shaders/World.fragment.glsl @@ -1,4 +1,4 @@ -#version 140 +#version 120 varying vec3 varyingNormals; @@ -10,4 +10,4 @@ void applyShading() { float lightness = (angleCos + 1.5) / 2; linearMultiply(gl_FragColor, vec4(lightness, lightness, lightness, 1.0)); -} \ No newline at end of file +} diff --git a/src/main/resources/assets/shaders/World.vertex.glsl b/src/main/resources/assets/shaders/World.vertex.glsl index 435826d..ec73579 100644 --- a/src/main/resources/assets/shaders/World.vertex.glsl +++ b/src/main/resources/assets/shaders/World.vertex.glsl @@ -1,4 +1,4 @@ -#version 140 +#version 120 attribute vec3 inputNormals; varying vec3 varyingNormals; @@ -10,4 +10,4 @@ void worldTransferToFragment() { mat3 worldRotation = mat3(worldTransform); varyingNormals = normalize(worldRotation * inputNormals); -} \ No newline at end of file +} diff --git a/src/main/resources/assets/shaders/WorldDefault.fragment.glsl b/src/main/resources/assets/shaders/WorldDefault.fragment.glsl index 1e8b869..16fef8d 100644 --- a/src/main/resources/assets/shaders/WorldDefault.fragment.glsl +++ b/src/main/resources/assets/shaders/WorldDefault.fragment.glsl @@ -1,8 +1,8 @@ -#version 140 +#version 120 void main(void) { applyTexture(); applyColorMultiplier(); applyShading(); applyAlpha(); -} \ No newline at end of file +} diff --git a/src/main/resources/assets/shaders/WorldDefault.vertex.glsl b/src/main/resources/assets/shaders/WorldDefault.vertex.glsl index 00a4097..94e3898 100644 --- a/src/main/resources/assets/shaders/WorldDefault.vertex.glsl +++ b/src/main/resources/assets/shaders/WorldDefault.vertex.glsl @@ -1,6 +1,6 @@ -#version 140 +#version 120 void main(void) { gl_Position = applyFinalTransform(vec4(inputPositions, 1.0)); worldTransferToFragment(); -} \ No newline at end of file +}