From 3b47d573536d728f519c6904de6d56b736cb53f4 Mon Sep 17 00:00:00 2001 From: ChaoticByte Date: Fri, 10 Jan 2025 21:58:23 +0100 Subject: [PATCH] shaderlib: Remove hsv_multiply and hsv_offset, rename hsv.gdshaderinc to colorspaces.gdshaderinc, update autocomplete and example accordingly; implements #36 --- examples/color_and_pixelate.gdshader | 7 +++-- ...sv.gdshaderinc => colorspaces.gdshaderinc} | 28 ------------------- src/Editor.gd | 4 +-- 3 files changed, 6 insertions(+), 33 deletions(-) rename shaderlib/{hsv.gdshaderinc => colorspaces.gdshaderinc} (59%) diff --git a/examples/color_and_pixelate.gdshader b/examples/color_and_pixelate.gdshader index 7c2c0ef..bf5f18a 100644 --- a/examples/color_and_pixelate.gdshader +++ b/examples/color_and_pixelate.gdshader @@ -1,6 +1,6 @@ shader_type canvas_item; -#include "res://shaderlib/hsv.gdshaderinc" +#include "res://shaderlib/colorspaces.gdshaderinc" #include "res://shaderlib/effects.gdshaderinc" //!load ./images/swamp.jpg @@ -8,6 +8,7 @@ shader_type canvas_item; void fragment() { COLOR = pixelate(TEXTURE, UV, 200.0); vec4 hsv = rgb2hsv(COLOR); - COLOR = hsv_offset(COLOR, 0.65, .42-(hsv.y*.3), -.125); - COLOR = hsv_multiply(COLOR, 1.0, 1.0, 1.25); + hsv.xyz += vec3(0.65, .42-(hsv.y*.3), -.125); + hsv.xyz *= vec3(1.0, 1.0, 1.25); + COLOR = hsv2rgb(hsv); } diff --git a/shaderlib/hsv.gdshaderinc b/shaderlib/colorspaces.gdshaderinc similarity index 59% rename from shaderlib/hsv.gdshaderinc rename to shaderlib/colorspaces.gdshaderinc index e1d9fdc..080884c 100644 --- a/shaderlib/hsv.gdshaderinc +++ b/shaderlib/colorspaces.gdshaderinc @@ -20,31 +20,3 @@ vec4 hsv2rgb(vec4 c) { vec3 rgb = c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); return vec4(rgb.r, rgb.g, rgb.b, c.a); } - -// Offset the hue, saturation and brightness of a RGB color -vec4 hsv_offset( - vec4 rgba, - float offset_hue, - float offset_saturation, - float offset_brightness -) { - vec4 c = rgb2hsv(rgba); - c.x += offset_hue; - c.y += offset_saturation; - c.z += offset_brightness; - return hsv2rgb(c); -} - -// Multiply the hue, saturation and brightness of a RGB color -vec4 hsv_multiply( - vec4 rgba, - float mult_hue, - float mult_saturation, - float mult_brightness -) { - vec4 c = rgb2hsv(rgba); - c.x *= mult_hue; - c.y *= mult_saturation; - c.z *= mult_brightness; - return hsv2rgb(c); -} diff --git a/src/Editor.gd b/src/Editor.gd index edc4633..6352620 100644 --- a/src/Editor.gd +++ b/src/Editor.gd @@ -129,14 +129,14 @@ const gdshader_preprocessor = [ ] # shaderlib var shaderlib_regex = { - "hsv": RegEx.create_from_string(r'\s*\#include\s+\"res\:\/\/shaderlib\/hsv\.gdshaderinc\"'), + "colorspaces": RegEx.create_from_string(r'\s*\#include\s+\"res\:\/\/shaderlib\/colorspaces\.gdshaderinc\"'), "transform": RegEx.create_from_string(r'\s*\#include\s+\"res\:\/\/shaderlib\/transform\.gdshaderinc\"'), "transparency": RegEx.create_from_string(r'\s*\#include\s+\"res\:\/\/shaderlib\/transparency\.gdshaderinc\"'), "effects": RegEx.create_from_string(r'\s*\#include\s+\"res\:\/\/shaderlib\/effects\.gdshaderinc\"'), "denoise": RegEx.create_from_string(r'\s*\#include\s+\"res\:\/\/shaderlib\/denoise\.gdshaderinc\"') } const shaderlib_functions = { - "hsv": ["rgb2hsv", "hsv2rgb", "hsv_offset", "hsv_multiply"], + "colorspaces": ["rgb2hsv", "hsv2rgb"], "transform": ["place_texture"], "transparency": ["alpha_blend"], "effects": ["pixelate"],