From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai <chaifix@163.com> Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/Misc/GraphicsScriptingUtility.cpp | 36 +++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Runtime/Misc/GraphicsScriptingUtility.cpp (limited to 'Runtime/Misc/GraphicsScriptingUtility.cpp') diff --git a/Runtime/Misc/GraphicsScriptingUtility.cpp b/Runtime/Misc/GraphicsScriptingUtility.cpp new file mode 100644 index 0000000..64c209f --- /dev/null +++ b/Runtime/Misc/GraphicsScriptingUtility.cpp @@ -0,0 +1,36 @@ +#include "GraphicsScriptingUtility.h" +#include "Runtime/Scripting/ICallString.h" + +#if ENABLE_MONO +# include "Runtime/Mono/MonoIncludes.h" +# include "Runtime/Scripting/ScriptingUtility.h" +#endif + +ShaderLab::FastPropertyName ScriptingStringToProperty(ICallString& iCallString) +{ + if(iCallString.IsNull()) + return ShaderLab::FastPropertyName(); + +#if ENABLE_MONO + MonoString* msname = iCallString.str; + int const kShortString = 255; + char namebuf [kShortString+1]; + + if( msname->length <= kShortString && FastTestAndConvertUtf16ToAscii(namebuf, mono_string_chars(msname), mono_string_length(msname))) + { + namebuf [mono_string_length(msname)] = '\0'; + return ShaderLab::Property(namebuf); + } + + char* name = mono_string_to_utf8(msname); + ShaderLab::FastPropertyName propertyName(ShaderLab::Property(name)); + g_free(name); + + return propertyName; + +#else + + return ShaderLab::Property(iCallString.AsUTF8().c_str()); + +#endif +} \ No newline at end of file -- cgit v1.1-26-g67d0