From 4c8ee85266388e29f439bf1e8ed73d48195cb70d Mon Sep 17 00:00:00 2001 From: fallenoak Date: Tue, 30 Dec 2025 10:18:12 -0600 Subject: [PATCH] feat(ui): implement CSimpleTexture_SetDesaturated --- src/ui/simple/CSimpleTextureScript.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ui/simple/CSimpleTextureScript.cpp b/src/ui/simple/CSimpleTextureScript.cpp index 4ff62bc..a6ea6ac 100644 --- a/src/ui/simple/CSimpleTextureScript.cpp +++ b/src/ui/simple/CSimpleTextureScript.cpp @@ -2,6 +2,7 @@ #include "ui/Types.hpp" #include "ui/simple/CSimpleTexture.hpp" #include "util/Lua.hpp" +#include "util/StringTo.hpp" #include "util/Unimplemented.hpp" #include @@ -211,7 +212,21 @@ int32_t CSimpleTexture_SetRotation(lua_State* L) { } int32_t CSimpleTexture_SetDesaturated(lua_State* L) { - WHOA_UNIMPLEMENTED(0); + auto type = CSimpleTexture::GetObjectType(); + auto texture = static_cast(FrameScript_GetObjectThis(L, type)); + + auto desaturated = StringToBOOL(L, 2, 1); + auto shader = CSimpleTexture::GetImageModePixelShader(desaturated ? ImageMode_Desaturate : ImageMode_UI); + + if (shader) { + texture->SetShader(shader); + + lua_pushnumber(L, 1); + } else { + lua_pushnil(L); + } + + return 1; } int32_t CSimpleTexture_IsDesaturated(lua_State* L) {