From f60446c37b1a5c4d9acce5789907f1560b40c903 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 28 Mar 2024 16:50:47 +0100 Subject: [PATCH] Fix shader source code preview in editor --- Source/Editor/Managed/ManagedEditor.Internal.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/Editor/Managed/ManagedEditor.Internal.cpp b/Source/Editor/Managed/ManagedEditor.Internal.cpp index 43c805bf4..b2867c2df 100644 --- a/Source/Editor/Managed/ManagedEditor.Internal.cpp +++ b/Source/Editor/Managed/ManagedEditor.Internal.cpp @@ -263,22 +263,22 @@ DEFINE_INTERNAL_CALL(MString*) EditorInternal_GetShaderAssetSourceCode(BinaryAss INTERNAL_CALL_CHECK_RETURN(obj, nullptr); if (obj->WaitForLoaded()) DebugLog::ThrowNullReference(); - auto lock = obj->Storage->Lock(); - if (obj->LoadChunk(SHADER_FILE_CHUNK_SOURCE)) return nullptr; + // Decrypt source code BytesContainer data; obj->GetChunkData(SHADER_FILE_CHUNK_SOURCE, data); + auto source = data.Get(); + auto sourceLength = data.Length(); + Encryption::DecryptBytes(data.Get(), data.Length()); + source[sourceLength - 1] = 0; - Encryption::DecryptBytes((byte*)data.Get(), data.Length()); - + // Get source and encrypt it back const StringAnsiView srcData((const char*)data.Get(), data.Length()); - const String source(srcData); - const auto str = MUtils::ToString(source); - - Encryption::EncryptBytes((byte*)data.Get(), data.Length()); + const auto str = MUtils::ToString(srcData); + Encryption::EncryptBytes(data.Get(), data.Length()); return str; }