summaryrefslogtreecommitdiff
path: root/Runtime/Export/UnityEngineApplication.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/Export/UnityEngineApplication.txt')
-rw-r--r--Runtime/Export/UnityEngineApplication.txt657
1 files changed, 657 insertions, 0 deletions
diff --git a/Runtime/Export/UnityEngineApplication.txt b/Runtime/Export/UnityEngineApplication.txt
new file mode 100644
index 0000000..e79f7e6
--- /dev/null
+++ b/Runtime/Export/UnityEngineApplication.txt
@@ -0,0 +1,657 @@
+C++RAW
+
+#include "UnityPrefix.h"
+
+#include <ctime>
+
+#include "Configuration/UnityConfigure.h"
+#include "Configuration/UnityConfigureVersion.h"
+
+#include "Runtime/Graphics/Transform.h"
+#include "Runtime/Utilities/PathNameUtility.h"
+#include "Runtime/Input/InputManager.h"
+#include "Runtime/Input/TimeManager.h"
+#include "Runtime/Misc/ResourceManager.h"
+#include "Runtime/Mono/MonoBehaviour.h"
+#include "Runtime/Mono/MonoManager.h"
+#include "Runtime/BaseClasses/Tags.h"
+#include "Runtime/Misc/DebugUtility.h"
+#include "Runtime/Misc/PlayerSettings.h"
+#include "Runtime/GameCode/CloneObject.h"
+#include "Runtime/Math/Random/Random.h"
+#include "Runtime/Misc/PreloadManager.h"
+#include "Runtime/Animation/Animation.h"
+#include "Runtime/Math/Color.h"
+#include "Runtime/Utilities/PlayerPrefs.h"
+#include "Runtime/Camera/Camera.h"
+#include "Runtime/Dynamics/RigidBody.h"
+#include "Runtime/Utilities/Word.h"
+#include "Runtime/Camera/Light.h"
+#include "Runtime/Filters/Misc/TextMesh.h"
+#include "Runtime/Dynamics/ConstantForce.h"
+#include "Runtime/Filters/Renderer.h"
+#include "Runtime/Misc/SaveAndLoadHelper.h"
+#include "Runtime/Network/NetworkView.h"
+#include "Runtime/Camera/RenderLayers/GUIText.h"
+#include "Runtime/Camera/RenderLayers/GUITexture.h"
+#include "Runtime/Dynamics/Collider.h"
+#include "Runtime/Dynamics/HingeJoint.h"
+#include "Runtime/Filters/Particles/ParticleEmitter.h"
+#include "Runtime/Misc/AssetBundleUtility.h"
+#include "Runtime/Misc/Player.h"
+#include "Runtime/BaseClasses/IsPlaying.h"
+#include "Runtime/Misc/CaptureScreenshot.h"
+#include "Runtime/Misc/GameObjectUtility.h"
+#include "Runtime/Misc/Plugins.h"
+#include "Runtime/Utilities/PathNameUtility.h"
+#include "Runtime/Utilities/File.h"
+#include "Runtime/Network/NetworkManager.h"
+#include "Runtime/Input/GetInput.h"
+#include "Runtime/Misc/BuildSettings.h"
+#include "Runtime/Animation/AnimationManager.h"
+#include "Runtime/Animation/AnimationClip.h"
+#include "Runtime/BaseClasses/RefCounted.h"
+#include "Runtime/Misc/GOCreation.h"
+#include "Runtime/Utilities/URLUtility.h"
+#include "Runtime/Graphics/ScreenManager.h"
+#include "Runtime/Serialize/PersistentManager.h"
+#include "Runtime/Shaders/GraphicsCaps.h"
+#include "Runtime/Misc/SystemInfo.h"
+#include "Runtime/Utilities/FileUtilities.h"
+#include "Runtime/Misc/GraphicsDevicesDB.h"
+#include "Runtime/File/ApplicationSpecificPersistentDataPath.h"
+#include "Runtime/Mono/Coroutine.h"
+#include "Runtime/Utilities/UserAuthorizationManager.h"
+#include "Runtime/Scripting/ScriptingUtility.h"
+#include "Runtime/Scripting/ScriptingManager.h"
+#include "Runtime/Scripting/ScriptingObjectWithIntPtrField.h"
+
+#if WEBPLUG
+# include "PlatformDependent/CommonWebPlugin/UnityWebStream.h"
+# include "PlatformDependent/CommonWebPlugin/WebScripting.h"
+#endif
+
+#if UNITY_EDITOR
+# include "Editor/Src/EditorSettings.h"
+# include "Editor/Src/EditorUserBuildSettings.h"
+# include "Editor/Mono/MonoEditorUtility.h"
+#endif
+
+#if UNITY_WII
+# include "PlatformDependent/Wii/WiiUtility.h"
+#endif
+
+#if UNITY_ANDROID
+# include "PlatformDependent/AndroidPlayer/EntryPoint.h"
+#endif
+
+using namespace Unity;
+using namespace std;
+
+CSRAW
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Collections;
+using UnityEngineInternal;
+
+namespace UnityEngine
+{
+
+// Describes network reachability options.
+ENUM NetworkReachability
+ // Network is not reachable
+ NotReachable = 0,
+ // Network is reachable via carrier data network
+ ReachableViaCarrierDataNetwork = 1,
+ // Network is reachable via WiFi or cable
+ ReachableViaLocalAreaNetwork = 2
+END
+
+
+// Access to application run-time data.
+
+CLASS Application
+ C++RAW
+
+
+ // Quits the player application. Quit is ignored in the editor or the web player.
+ CUSTOM static void Quit ()
+ {
+ GetInputManager ().QuitApplication ();
+ }
+
+ // Cancels quitting the application. This is useful for showing a splash screen at the end of a game.
+ CUSTOM static void CancelQuit ()
+ {
+ GetInputManager ().CancelQuitApplication ();
+ }
+
+ // The level index that was last loaded (RO).
+ CUSTOM_PROP static int loadedLevel { return PlayerGetLoadedLevel (); }
+
+ // The name of the level that was last loaded (RO).
+ CUSTOM_PROP static string loadedLevelName { return scripting_string_new(PlayerGetLoadedLevelName()); }
+
+
+ ///*listonly*
+ CSRAW static public void LoadLevel (int index) { LoadLevelAsync(null, index, false, true); }
+
+ // Loads the level by its name or index.
+ CSRAW static public void LoadLevel (string name) { LoadLevelAsync(name, -1, false, true); }
+
+
+ ///*listonly*
+ CSRAW static public AsyncOperation LoadLevelAsync (int index) { return LoadLevelAsync(null, index, false, false); }
+
+ // Loads the level asynchronously in the background.
+ CSRAW static public AsyncOperation LoadLevelAsync (string levelName)
+ {
+ return LoadLevelAsync(levelName, -1, false, false);
+ }
+
+
+ ///*listonly*
+ CSRAW static public AsyncOperation LoadLevelAdditiveAsync (int index) { return LoadLevelAsync(null, index, true, false); }
+
+ // Loads the level additively and asynchronously in the background.
+ CSRAW static public AsyncOperation LoadLevelAdditiveAsync (string levelName)
+ {
+ return LoadLevelAsync(levelName, -1, true, false);
+ }
+
+ CUSTOM static private AsyncOperation LoadLevelAsync (string monoLevelName, int index, bool additive, bool mustCompleteNextFrame)
+ {
+ string levelName = monoLevelName;
+ string levelPath;
+ string assetPath;
+
+ if (!GetLevelAndAssetPath (levelName, index, &levelPath, &assetPath, &index))
+ return SCRIPTING_NULL;
+
+ PreloadLevelOperation::LoadingMode mode = additive ? PreloadLevelOperation::kLoadAdditiveLevel : PreloadLevelOperation::kLoadLevel;
+ AsyncOperation* result = PreloadLevelOperation::LoadLevel(levelPath, assetPath, index, mode, mustCompleteNextFrame);
+ #if UNITY_FLASH
+
+ result->Release();
+
+ // ToDo: if we're returning AsyncOperation, it throws:
+ // ReferenceError: Error #1069: Property http://unity3d.com/cil2as::DefaultValue not found on class UnityEngine.AsyncOperation and there is no default value.
+ // at UnityEngine.Marshalling::Marshaller$/GetUninitializedObject()
+ // at com.unity::UnityNative$/Ext_Scripting_InstantiateObject()
+ // ...
+ return SCRIPTING_NULL;
+ #else
+ ScriptingObjectPtr o = scripting_object_new(MONO_COMMON.asyncOperation);
+ ScriptingObjectWithIntPtrField<AsyncOperation>(o).SetPtr(result);
+ return o;
+ #endif
+ }
+
+ ///*listonly*
+ CSRAW static public void LoadLevelAdditive (int index) { LoadLevelAsync (null, index, true, true); }
+ // Loads a level additively.
+ CSRAW static public void LoadLevelAdditive (string name) { LoadLevelAsync (name, -1, true, true); }
+
+ // Is some level being loaded? (RO)
+ CUSTOM_PROP static bool isLoadingLevel { return IsLoadingLevel(); }
+
+ // The total number of levels available (RO).
+ CUSTOM_PROP static int levelCount { return PlayerGetLevelCount (); }
+
+ CUSTOM private static float GetStreamProgressForLevelByName (string levelName) {
+ #if WEBPLUG
+ return GetUnityWebStream().GetProgressForLevel(GetBuildSettings().GetLevelIndexChecked (levelName));
+ #else
+ return 1.0F;
+ #endif
+ }
+
+ // How far has the download progressed? [0...1]
+ CUSTOM public static float GetStreamProgressForLevel (int levelIndex) {
+ #if WEBPLUG
+ return GetUnityWebStream().GetProgressForLevel(levelIndex);
+ #else
+ if (levelIndex >= 0 && levelIndex < GetBuildSettings().levels.size())
+ return 1.0F;
+ else
+ return 0.0F;
+ #endif
+ }
+
+ // How far has the download progressed? [0...1]
+ CSRAW public static float GetStreamProgressForLevel (string levelName) { return GetStreamProgressForLevelByName(levelName); }
+
+ // How many bytes have we downloaded from the main unity web stream (RO).
+ CUSTOM_PROP static int streamedBytes
+ {
+ #if WEBPLUG
+ return GetUnityWebStream().GetDownloadedBytes();
+ #else
+ return 0;
+ #endif
+ }
+
+ CUSTOM private static bool CanStreamedLevelBeLoadedByName (string levelName) {
+ string cppName = levelName;
+ #if WEBPLUG
+ return GetUnityWebStream().CanLevelBeLoaded(GetBuildSettings().GetLevelIndex (cppName)) || GetHasLateBoundLevelFromAssetBundle(cppName);
+ #else
+ return GetBuildSettings().GetLevelIndex (cppName) != -1 || GetHasLateBoundLevelFromAssetBundle(cppName);
+ #endif
+ }
+
+ // Can the streamed level be loaded?
+ CUSTOM public static bool CanStreamedLevelBeLoaded (int levelIndex) {
+ #if WEBPLUG
+ return GetUnityWebStream().CanLevelBeLoaded(levelIndex);
+ #else
+ return levelIndex >= 0 && levelIndex < GetBuildSettings().levels.size();
+ #endif
+ }
+
+ // Can the streamed level be loaded?
+ CSRAW public static bool CanStreamedLevelBeLoaded (string levelName) { return CanStreamedLevelBeLoadedByName(levelName); }
+
+ // Returns true when in any kind of player (RO).
+ CUSTOM_PROP static bool isPlaying { return IsWorldPlaying (); }
+
+ // Are we running inside the Unity editor? (RO)
+ CUSTOM_PROP static bool isEditor
+ {
+ #if UNITY_EDITOR
+ return true;
+ #else
+ return false;
+ #endif
+ }
+
+ // Are we running inside a web player? (RO)
+ CUSTOM_PROP static bool isWebPlayer
+ {
+ int platform = systeminfo::GetRuntimePlatform();
+ return platform == WindowsWebPlayer || platform == OSXWebPlayer;
+ }
+
+ // Returns the platform the game is running (RO).
+ THREAD_SAFE
+ CUSTOM_PROP static RuntimePlatform platform { return systeminfo::GetRuntimePlatform(); }
+
+
+ // Captures a screenshot at path /filename/ as a PNG file.
+ CUSTOM static void CaptureScreenshot (string filename, int superSize = 0)
+ {
+ #if CAPTURE_SCREENSHOT_AVAILABLE
+ QueueScreenshot (filename, superSize);
+ #endif
+ }
+
+ // Should the player be running when the application is in the background?
+ CUSTOM_PROP static bool runInBackground { return GetPlayerRunInBackground(); } { SetPlayerRunInBackground(value); }
+
+ OBSOLETE warning use Application.isEditor instead
+ CSRAW public static bool isPlayer { get { return !isEditor; } }
+
+ /// Is Unity activated with the Pro License?
+ CUSTOM static bool HasProLicense()
+ {
+ return GetBuildSettings().hasPROVersion;
+ }
+
+ CUSTOM static internal bool HasAdvancedLicense()
+ {
+ return GetBuildSettings().hasAdvancedVersion;
+ }
+
+ OBSOLETE warning Use Object.DontDestroyOnLoad instead
+ CUSTOM static void DontDestroyOnLoad (Object mono)
+ {
+ Object* o = mono;
+ if (o)
+ DontDestroyOnLoad (*o);
+ }
+
+ // Contains the path to the game data folder (RO).
+ CUSTOM_PROP static string dataPath { return scripting_string_new( GetAppDataPath() ); }
+
+ // Contains the path to the StreamingAssets folder (RO).
+ CUSTOM_PROP static string streamingAssetsPath { return scripting_string_new( GetStreamingAssetsPath() ); }
+
+ // Contains the path to a persistent data directory (RO).
+ CSRAW #if !UNITY_WP8 && !UNITY_METRO
+ CSRAW [System.Security.SecurityCritical]
+ CSRAW #endif
+ CUSTOM_PROP static string persistentDataPath { return scripting_string_new( GetPersistentDataPathApplicationSpecific() ); }
+
+ // Contains the path to a temporary data / cache directory (RO).
+ CUSTOM_PROP static string temporaryCachePath { return scripting_string_new( GetTemporaryCachePathApplicationSpecific() ); }
+
+ // The path to the web player data file relative to the html file (RO).
+ CUSTOM_PROP static string srcValue { return scripting_string_new(GetPlayerSettings().srcValue); }
+
+ // The absolute path to the web player data file (RO).
+ CUSTOM_PROP static string absoluteURL { return scripting_string_new(GetPlayerSettings().absoluteURL); }
+
+ OBSOLETE warning Please use absoluteURL instead
+ CSRAW public static string absoluteUrl { get { return absoluteURL; } }
+
+ // Converts an object to a JavaScript text representation.
+ CONDITIONAL ENABLE_MONO
+ CSRAW private static string ObjectToJSString( object o )
+ {
+ if( o == null ) {
+ return "null";
+ } else if( o is string ) {
+ string s = o.ToString().Replace( "\\", "\\\\" ); // escape \ into \\, JS vulnerability.
+ s = s.Replace( "\"", "\\\"" );
+ s = s.Replace( "\n", "\\n" );
+ s = s.Replace( "\r", "\\r" );
+ s = s.Replace( "\u0000", ""); // String-terminator. JS vulnerability.
+ s = s.Replace( "\u2028", ""); // Line-terminator via ecma-262-7.3 JS vulnerability.
+ s = s.Replace( "\u2029", ""); // Same as above
+ return '"' + s + '"';
+ } else if( o is Int32 || o is Int16 || o is UInt32 || o is UInt16 || o is Byte ) {
+ return o.ToString();
+ } else if( o is Single ) {
+ System.Globalization.NumberFormatInfo nf = System.Globalization.CultureInfo.InvariantCulture.NumberFormat;
+ return ((Single)o).ToString( nf );
+ } else if( o is Double ) {
+ System.Globalization.NumberFormatInfo nf = System.Globalization.CultureInfo.InvariantCulture.NumberFormat;
+ return ((Double)o).ToString( nf );
+ } else if( o is Char ) {
+ if( (Char)o == '"' )
+ return "\"\\\"\""; // escape the '"' character
+ else
+ return '"' + o.ToString() + '"';
+ } else if( o is System.Collections.IList ) {
+ // Any IList object is dumped as JS Array
+ System.Collections.IList list = (System.Collections.IList)o;
+
+ System.Text.StringBuilder sb = new System.Text.StringBuilder();
+ sb.Append( "new Array(" );
+ int size = list.Count;
+ for( int i = 0; i < size; ++i ) {
+ if( i != 0 )
+ sb.Append( ", " );
+ sb.Append( ObjectToJSString(list[i]) );
+ }
+ sb.Append( ")" );
+ return sb.ToString();
+ } else {
+ // Unrecognized objects are dumped as strings
+ return ObjectToJSString(o.ToString());
+ }
+ }
+
+ // Calls a function in the containing web page __(Web Player only)__.
+ CSRAW public static void ExternalCall (string functionName, params object[] args)
+ {
+ #if ENABLE_MONO
+ Internal_ExternalCall(BuildInvocationForArguments(functionName,args));
+ #elif UNITY_FLASH
+ Internal_ExternalCall_Flash(functionName,(object)args);
+ #endif
+ }
+
+ CONDITIONAL UNITY_FLASH
+ CUSTOM private static void Internal_ExternalCall_Flash(string script, object args)
+ {
+ ScriptingObjectPtr arg = args;
+ if(args){
+ Ext_ExternalCall(script.AsUTF8().c_str(), arg);
+ }
+ }
+
+ CONDITIONAL ENABLE_MONO
+ CSRAW private static string BuildInvocationForArguments(string functionName, params object[] args)
+ {
+ var sb = new System.Text.StringBuilder();
+ sb.Append( functionName );
+ sb.Append( '(' );
+ int size = args.Length;
+ for( int i = 0; i < size; ++i ) {
+ if( i != 0 )
+ sb.Append( ", " );
+ sb.Append( ObjectToJSString(args[i]) );
+ }
+ sb.Append( ')' );
+ sb.Append( ';' );
+ return sb.ToString();
+ }
+
+
+ // Evaluates script snippet in the containing web page __(Web Player only)__.
+ CONDITIONAL ENABLE_MONO
+ CSRAW public static void ExternalEval (string script)
+ {
+ if (script.Length > 0 && script[script.Length-1] != ';')
+ script += ';';
+ Internal_ExternalCall(script);
+ }
+
+ CONDITIONAL ENABLE_MONO
+ CUSTOM private static void Internal_ExternalCall(string script) {
+ #if WEBPLUG
+ WebScripting::Get().ExternalCall(script);
+ #else
+ LogString(Format ("External Call: %s", script.AsUTF8().c_str()));
+ #endif
+ }
+
+ // The version of the Unity runtime used to play the content.
+ CUSTOM_PROP static string unityVersion
+ {
+ return scripting_string_new(UNITY_VERSION);
+ }
+
+ CUSTOM internal static int GetBuildUnityVersion ()
+ {
+ return GetBuildSettings().GetIntVersion();
+ }
+
+ CUSTOM internal static int GetNumericUnityVersion (string version)
+ {
+ return GetNumericVersion (version);
+ }
+
+
+ // Indicates whether Unity's webplayer security model is enabled.
+ THREAD_SAFE
+ CUSTOM_PROP static bool webSecurityEnabled
+ {
+ #if WEBPLUG
+ return true;
+ #endif
+ #if UNITY_EDITOR
+ return (GetBuildTargetGroup( GetEditorUserBuildSettings().GetActiveBuildTarget ()) == kPlatformWebPlayer);
+ #endif
+ return false;
+ }
+
+ //*undocumented
+ THREAD_SAFE
+ CUSTOM_PROP static string webSecurityHostUrl
+ {
+ #if UNITY_EDITOR
+ return scripting_string_new(GetEditorSettings().GetWebSecurityEmulationHostUrl());
+ #elif WEBPLUG
+ return scripting_string_new(GetPlayerSettings().absoluteURL);
+ #else
+ return scripting_string_new("");
+ #endif
+ }
+
+ // Opens the /url/ in a browser.
+
+
+ CUSTOM static void OpenURL (string url)
+ {
+ #if WEBPLUG
+ #if UNITY_OSX && !UNITY_PEPPER
+ if (systeminfo::IsRunningInDashboardWidget ())
+ WebScripting::Get().ExternalCall("goToUrl(\"" + url.AsUTF8() + "\");");
+ else
+ #endif
+ WebScripting::Get().ExternalCall("location.href=\"" + url.AsUTF8() + "\";");
+ #elif UNITY_WII
+ wii::FatalError( "OpenURL not supported" );
+ #elif UNITY_PS3
+ printf("ERROR: OpenURL not supported\n"); exit(-1);
+ #elif UNITY_XENON
+ printf_console("ERROR: OpenURL not supported\n"); exit(-1);
+ #elif UNITY_FLASH
+ Ext_OpenURL(url.AsUTF8().c_str());
+ #else
+ OpenURL (url);
+ #endif
+ }
+
+ OBSOLETE warning For internal use only
+ CUSTOM public static void CommitSuicide (int mode)
+ {
+ if (mode == 0)
+ {
+ printf_console("Committing suicide -- Intentionally Dereferencing NULL pointer\n");
+ int* p = NULL;
+ *p = 5;
+ }
+ else if (mode == 1)
+ {
+ FatalErrorString("Intentionally caused fatal error");
+ }
+ else if (mode == 2)
+ {
+ abort();
+ }
+ }
+
+ // Instructs game to try to render at a specified frame rate.
+ CUSTOM_PROP static int targetFrameRate
+ {
+ return GetTargetFrameRateFromScripting();
+ }
+ {
+ SetTargetFrameRate(value);
+ }
+
+ // The language the user's operating system is running in.
+ CUSTOM_PROP static SystemLanguage systemLanguage
+ {
+ return (SystemLanguage)systeminfo::GetSystemLanguage();
+ }
+
+ // Register a delegate to be called on log messages.
+ CSRAW public static void RegisterLogCallback (Application.LogCallback handler)
+ {
+ s_LogCallback = handler; SetLogCallbackDefined(handler != null, false);
+ }
+
+ // Register a delegate to be called on log messages.
+ CSRAW public static void RegisterLogCallbackThreaded (Application.LogCallback handler) {
+ s_LogCallback = handler;
+ SetLogCallbackDefined(handler != null, true);
+ }
+
+ CSRAW private static volatile LogCallback s_LogCallback;
+
+ CSRAW private static void CallLogCallback(string logString, string stackTrace, LogType type)
+ {
+ if ( s_LogCallback != null )
+ s_LogCallback(logString, stackTrace, type);
+ }
+
+ // Use this delegate type with RegisterLogCallback to monitor what gets logged.
+ CSRAW public delegate void LogCallback (string condition, string stackTrace, LogType type);
+
+ // Log callback that calls into the mono log callback
+ C++RAW
+ static void LogCallbackImplementation(const std::string& condition, const std::string &stackTrace, int type)
+ {
+#if ENABLE_MONO || UNITY_WINRT
+ if ( !GetMonoManagerPtr() )
+ return;
+
+ ScriptingInvocation invocation(MONO_COMMON.callLogCallback);
+ invocation.AddString(condition.c_str());
+ invocation.AddString(stackTrace.c_str());
+ invocation.AddInt(type);
+ invocation.Invoke<ScriptingObjectPtr>();
+#endif
+ }
+ CUSTOM private static void SetLogCallbackDefined(bool defined, bool threaded)
+ {
+ RegisterLogCallback(defined ? LogCallbackImplementation : NULL, threaded);
+ }
+
+ // Priority of background loading thread.
+ CUSTOM_PROP static ThreadPriority backgroundLoadingPriority
+ {
+ return GetPreloadManager().GetThreadPriority();
+ }
+ {
+ GetPreloadManager().SetThreadPriority(value);
+ }
+
+ // Returns the type of Internet reachability currently possible on the device.
+ CUSTOM_PROP static NetworkReachability internetReachability
+ {
+ return GetInternetReachability ();
+ }
+
+
+ // Returns false if application is altered in any way after it was built.
+ CUSTOM_PROP static bool genuine
+ {
+ return IsApplicationGenuine ();
+ }
+
+ // Returns true if application integrity can be confirmed.
+ CUSTOM_PROP static bool genuineCheckAvailable
+ {
+ return IsApplicationGenuineAvailable ();
+ }
+
+ // Request authorization to use the webcam or microphone in the Web Player.
+ CUSTOM static AsyncOperation RequestUserAuthorization (UserAuthorization mode)
+ {
+ #if ENABLE_MONO
+ AsyncOperation* result = GetUserAuthorizationManager().RequestUserAuthorization (mode);
+ MonoObject* mono = mono_object_new(mono_domain_get(), MONO_COMMON.asyncOperation);
+ ExtractMonoObjectData<AsyncOperation*>(mono) = result;
+ return mono;
+ #else
+ return SCRIPTING_NULL;
+ #endif
+ }
+
+ // Check if the user has authorized use of the webcam or microphone in the Web Player.
+ CUSTOM static bool HasUserAuthorization (UserAuthorization mode)
+ {
+ return GetUserAuthorizationManager().HasUserAuthorization (mode);
+ }
+
+ CUSTOM static internal void ReplyToUserAuthorizationRequest (bool reply, bool remember = false)
+ {
+ return GetUserAuthorizationManager().ReplyToUserAuthorizationRequest (reply, remember);
+ }
+
+ CUSTOM static private int GetUserAuthorizationRequestMode_Internal ()
+ {
+ return GetUserAuthorizationManager().GetAuthorizationRequest();
+ }
+
+ CSRAW static internal UserAuthorization GetUserAuthorizationRequestMode ()
+ {
+ return (UserAuthorization)GetUserAuthorizationRequestMode_Internal();
+ }
+END
+
+// Constants to pass to [[Application.RequestUserAuthorization]].
+ENUM UserAuthorization
+ // Request permission to use any video input sources attached to the computer.
+ WebCam = 1,
+ // Request permission to use any audio input sources attached to the computer.
+ Microphone = 2
+END
+
+CSRAW }