-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Expand file tree
/
Copy pathAttributes.cs
More file actions
136 lines (117 loc) · 4.46 KB
/
Copy pathAttributes.cs
File metadata and controls
136 lines (117 loc) · 4.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// Unity C# reference source
// Copyright (c) Unity Technologies. For terms of use, see
// https://unity3d.com/legal/licenses/Unity_Reference_Only_License
using System;
using System.Collections.Generic;
using UnityEngine.Bindings;
namespace UnityEngine.Scripting
{
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Field | AttributeTargets.Struct | AttributeTargets.Property | AttributeTargets.Constructor | AttributeTargets.Interface | AttributeTargets.Enum, Inherited = false)]
[VisibleToOtherModules]
internal class UsedByNativeCodeAttribute : Attribute
{
public UsedByNativeCodeAttribute()
{
}
public UsedByNativeCodeAttribute(string name)
{
Name = name;
}
public string Name { get; set; }
}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Field | AttributeTargets.Struct | AttributeTargets.Property | AttributeTargets.Constructor | AttributeTargets.Interface | AttributeTargets.Enum, Inherited = false)]
[VisibleToOtherModules]
internal class RequiredByNativeCodeAttribute : Attribute
{
public RequiredByNativeCodeAttribute()
{
}
public RequiredByNativeCodeAttribute(string name)
{
Name = name;
}
public RequiredByNativeCodeAttribute(bool optional)
{
Optional = optional;
}
public RequiredByNativeCodeAttribute(string name, bool optional)
{
Name = name;
Optional = optional;
}
public string Name { get; set; }
public bool Optional { get; set; }
public bool GenerateProxy { get; set; }
}
// Marks a module to be included if the attached type or method is used.
// This is for niche cases where dependencies can be reasoned about.
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = false, AllowMultiple = true)]
[VisibleToOtherModules]
internal class RequiresEngineModuleAttribute : Attribute
{
public RequiresEngineModuleAttribute(string nativeModuleName)
{
}
}
}
namespace UnityEngine
{
[VisibleToOtherModules]
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
internal sealed class AssetFileNameExtensionAttribute : Attribute
{
// the extension that should be given to assets of the decorated type when created from contexts that have limited information about the type
public string preferredExtension { get; }
// other extensions that assets of the decorated type might be given in special contexts
public IEnumerable<string> otherExtensions { get; }
public AssetFileNameExtensionAttribute(string preferredExtension, params string[] otherExtensions)
{
this.preferredExtension = preferredExtension;
this.otherExtensions = otherExtensions;
}
}
[System.AttributeUsage(System.AttributeTargets.Struct)]
[VisibleToOtherModules]
internal class IL2CPPStructAlignmentAttribute : System.Attribute
{
public int Align;
public IL2CPPStructAlignmentAttribute()
{
Align = 1;
}
}
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false)]
[VisibleToOtherModules]
internal class WritableAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Class)]
[VisibleToOtherModules]
internal class RejectDragAndDropMaterial : Attribute
{
}
[AttributeUsage(AttributeTargets.Assembly)]
[VisibleToOtherModules]
internal class UnityEngineModuleAssembly : Attribute
{
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, Inherited = false)]
[VisibleToOtherModules]
internal sealed class NativeClassAttribute : Attribute
{
public string QualifiedNativeName { get; private set; }
public string Declaration { get; private set; }
// Mirrors the value passed to IMPLEMENT_REGISTER_CLASS(Name, id) on the C++ side.
public int PersistentTypeId { get; set; }
public NativeClassAttribute(string qualifiedCppName)
{
QualifiedNativeName = qualifiedCppName;
Declaration = "class " + qualifiedCppName;
}
public NativeClassAttribute(string qualifiedCppName, string declaration)
{
QualifiedNativeName = qualifiedCppName;
Declaration = declaration;
}
}
}