From 02dc4b81df35811ae4dbff8efd0e6a7c0e6d5a99 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Thu, 13 Dec 2018 23:37:41 +0100 Subject: [PATCH] Make GL version choosing platform specific Use 4.3 for Windows, and 4.2 with extensions for Linux. Signed-off-by: Tomas Slusny --- .../client/plugins/gpu/GpuPlugin.java | 31 ++++++++++++++++++- .../net/runelite/client/plugins/gpu/comp.glsl | 4 +-- .../client/plugins/gpu/comp_small.glsl | 4 +-- .../client/plugins/gpu/comp_unordered.glsl | 4 +-- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index f3ee20c615..d7c3418790 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -85,6 +85,7 @@ import static net.runelite.client.plugins.gpu.GLUtil.inputStreamToString; import net.runelite.client.plugins.gpu.config.AntiAliasingMode; import net.runelite.client.plugins.gpu.template.Template; import net.runelite.client.ui.DrawManager; +import net.runelite.client.util.OSType; @PluginDescriptor( name = "GPU", @@ -438,7 +439,35 @@ public class GpuPlugin extends Plugin implements DrawCallbacks glGeomShader = gl.glCreateShader(gl.GL_GEOMETRY_SHADER); glFragmentShader = gl.glCreateShader(gl.GL_FRAGMENT_SHADER); - Function resourceLoader = (s) -> inputStreamToString(getClass().getResourceAsStream(s)); + final String glVersionHeader; + + if (OSType.getOSType() == OSType.Linux) + { + glVersionHeader = + "#version 420\n" + + "#extension GL_ARB_compute_shader : require\n" + + "#extension GL_ARB_shader_storage_buffer_object : require\n"; + } + else + { + glVersionHeader = "#version 430\n"; + } + + Function resourceLoader = (s) -> + { + if (s.endsWith(".glsl")) + { + return inputStreamToString(getClass().getResourceAsStream(s)); + } + + if (s.equals("version_header")) + { + return glVersionHeader; + } + + return ""; + }; + Template template = new Template(resourceLoader); String source = template.process(resourceLoader.apply("geom.glsl")); diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp.glsl index 7b79f78d8a..f569bceed6 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp.glsl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp.glsl @@ -23,9 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#version 420 -#extension GL_ARB_compute_shader : require -#extension GL_ARB_shader_storage_buffer_object : require +#include version_header shared int totalNum[12]; // number of faces with a given priority shared int totalDistance[12]; // sum of distances to faces of a given priority diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp_small.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp_small.glsl index fa14aad43a..edb8375900 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp_small.glsl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp_small.glsl @@ -23,9 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#version 420 -#extension GL_ARB_compute_shader : require -#extension GL_ARB_shader_storage_buffer_object : require +#include version_header shared int totalNum[12]; // number of faces with a given priority shared int totalDistance[12]; // sum of distances to faces of a given priority diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp_unordered.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp_unordered.glsl index 0caf9376ff..b4b526838b 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp_unordered.glsl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp_unordered.glsl @@ -23,9 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#version 420 -#extension GL_ARB_compute_shader : require -#extension GL_ARB_shader_storage_buffer_object : require +#include version_header #include comp_common.glsl