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