Freigeben über


MDLAsset Konstruktoren

Definition

Überlädt

MDLAsset()

Der Standardkonstruktor initialisiert eine neue Instanz dieser Klasse.

MDLAsset(NSObjectFlag)

Konstruktor, der für abgeleitete Klassen aufgerufen werden soll, um die Initialisierung zu überspringen und das Objekt nur zuzuordnen.

MDLAsset(NSUrl)

Erstellt eine neue MDLAsset, indem die Datei an der angegebenen URL geladen wird.

MDLAsset(IMDLMeshBufferAllocator)

Erstellt ein neues Modell-E/A-Objekt mithilfe des bereitgestellten bufferAllocator.

MDLAsset(IntPtr)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen nicht verwalteter Objekte verwendet wird; Wird von der Runtime aufgerufen.

MDLAsset(NSUrl, MDLVertexDescriptor, IMDLMeshBufferAllocator)

Erstellt einen neuen MDLAsset, indem die Datei an der angegebenen URL in die vom Pufferzuweisungsgeber bereitgestellten Puffer geladen und die Daten im Arbeitsspeicher wie vom Vertexdeskriptor beschrieben formatiert werden.

MDLAsset(NSUrl, MDLVertexDescriptor, IMDLMeshBufferAllocator, Boolean, NSError)

Erstellt einen neuen MDLAsset, indem die Datei an der angegebenen URL in die vom Pufferzuweisungsgeber bereitgestellten Puffer geladen und die Daten im Arbeitsspeicher wie vom Vertexdeskriptor beschrieben formatiert werden.

MDLAsset()

Der Standardkonstruktor initialisiert eine neue Instanz dieser Klasse.

[Foundation.Export("init")]
public MDLAsset ();
Attribute

Gilt für:

MDLAsset(NSObjectFlag)

Konstruktor, der für abgeleitete Klassen aufgerufen werden soll, um die Initialisierung zu überspringen und das Objekt nur zuzuordnen.

protected MDLAsset (Foundation.NSObjectFlag t);
new ModelIO.MDLAsset : Foundation.NSObjectFlag -> ModelIO.MDLAsset

Parameter

t
NSObjectFlag

Nicht verwendeter Sentinelwert, übergeben Sie NSObjectFlag.Empty.

Hinweise

Dieser Konstruktor sollte von abgeleiteten Klassen aufgerufen werden, wenn sie das Objekt vollständig in verwaltetem Code erstellen und nur möchten, dass die Runtime das NSObject ordnet und initialisiert. Dies ist erforderlich, um den zweistufigen Initialisierungsprozess zu implementieren, den Objective-C verwendet. Der erste Schritt besteht darin, die Objektzuordnung durchzuführen, der zweite Schritt besteht darin, das Objekt zu initialisieren. Wenn Entwickler den Konstruktor aufrufen, der NSObjectFlag.Empty verwendet, nutzen sie einen direkten Pfad, der bis zu NSObject reicht, um nur den Arbeitsspeicher des Objekts zuzuweisen und die Objective-C- und C#-Objekte miteinander zu binden. Die tatsächliche Initialisierung des Objekts liegt beim Entwickler.

Dieser Konstruktor wird in der Regel vom Bindungsgenerator verwendet, um das Objekt zuzuordnen, aber die eigentliche Initialisierung zu verhindern. Nachdem die Zuordnung erfolgt ist, muss der Konstruktor das Objekt initialisieren. Bei Konstruktoren, die vom Bindungsgenerator generiert werden, bedeutet dies, dass eine der "init"-Methoden manuell aufgerufen wird, um das Objekt zu initialisieren.

Es liegt in der Verantwortung des Entwicklers, das Objekt vollständig zu initialisieren, wenn es mithilfe des Pfads NSObjectFlag.Empty verkettet wird.

Wenn der Konstruktor des Entwicklers die Basisimplementierung NSObjectFlag.Empty aufruft, sollte er im Allgemeinen eine Objective-C-Init-Methode aufrufen. Wenn dies nicht der Fall ist, sollten Entwickler stattdessen eine Verkettung mit dem richtigen Konstruktor in ihrer Klasse ausführen.

Der Argumentwert wird ignoriert und stellt lediglich sicher, dass der einzige Code, der ausgeführt wird, die Erstellungsphase ist die grundlegende NSObject-Zuordnung und Laufzeittypregistrierung. In der Regel sieht die Verkettung wie folgt aus:

//
// The NSObjectFlag merely allocates the object and registers the
// C# class with the Objective-C runtime if necessary, but no actual
// initXxx method is invoked, that is done later in the constructor
//
// This is taken from Xamarin.iOS's source code:
//
[Export ("initWithFrame:")]
public UIView (System.Drawing.RectangleF frame) : base (NSObjectFlag.Empty)
{
// Invoke the init method now.
	var initWithFrame = new Selector ("initWithFrame:").Handle;
	if (IsDirectBinding)
		Handle = ObjCRuntime.Messaging.IntPtr_objc_msgSend_CGRect (this.Handle, initWithFrame, frame);
	else
		Handle = ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper_CGRect (this.SuperHandle, initWithFrame, frame);
}

Gilt für:

MDLAsset(NSUrl)

Erstellt eine neue MDLAsset, indem die Datei an der angegebenen URL geladen wird.

[Foundation.Export("initWithURL:")]
public MDLAsset (Foundation.NSUrl url);
new ModelIO.MDLAsset : Foundation.NSUrl -> ModelIO.MDLAsset

Parameter

url
NSUrl
Attribute

Gilt für:

MDLAsset(IMDLMeshBufferAllocator)

Erstellt ein neues Modell-E/A-Objekt mithilfe des bereitgestellten bufferAllocator.

[Foundation.Export("initWithBufferAllocator:")]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 10, 0, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 10, 0, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.MacOSX, 10, 12, ObjCRuntime.PlatformArchitecture.All, null)]
public MDLAsset (ModelIO.IMDLMeshBufferAllocator bufferAllocator);
new ModelIO.MDLAsset : ModelIO.IMDLMeshBufferAllocator -> ModelIO.MDLAsset

Parameter

bufferAllocator
IMDLMeshBufferAllocator

Muss hinzugefügt werden.

Dieser Parameter kann null sein.

Attribute

Gilt für:

MDLAsset(IntPtr)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen nicht verwalteter Objekte verwendet wird; Wird von der Runtime aufgerufen.

protected internal MDLAsset (IntPtr handle);
new ModelIO.MDLAsset : nativeint -> ModelIO.MDLAsset

Parameter

handle
IntPtr

nativeint

Zeiger (Handle) auf das nicht verwaltete Objekt.

Hinweise

Dieser Konstruktor wird von der Laufzeitinfrastruktur (GetNSObject(IntPtr)) aufgerufen, um eine neue verwaltete Darstellung für einen Zeiger auf ein nicht verwaltetes Objective-C-Objekt zu erstellen. Entwickler sollten diese Methode nicht direkt aufrufen, sondern die GetNSObject-Methode aufrufen, da sie verhindert, dass zwei Instanzen eines verwalteten Objekts auf dasselbe systemeigene Objekt verweisen.

Gilt für:

MDLAsset(NSUrl, MDLVertexDescriptor, IMDLMeshBufferAllocator)

Erstellt einen neuen MDLAsset, indem die Datei an der angegebenen URL in die vom Pufferzuweisungsgeber bereitgestellten Puffer geladen und die Daten im Arbeitsspeicher wie vom Vertexdeskriptor beschrieben formatiert werden.

[Foundation.Export("initWithURL:vertexDescriptor:bufferAllocator:")]
public MDLAsset (Foundation.NSUrl url, ModelIO.MDLVertexDescriptor vertexDescriptor, ModelIO.IMDLMeshBufferAllocator bufferAllocator);
new ModelIO.MDLAsset : Foundation.NSUrl * ModelIO.MDLVertexDescriptor * ModelIO.IMDLMeshBufferAllocator -> ModelIO.MDLAsset

Parameter

url
NSUrl
vertexDescriptor
MDLVertexDescriptor

Muss hinzugefügt werden.

Dieser Parameter kann null sein.

bufferAllocator
IMDLMeshBufferAllocator

Muss hinzugefügt werden.

Dieser Parameter kann null sein.

Attribute

Gilt für:

MDLAsset(NSUrl, MDLVertexDescriptor, IMDLMeshBufferAllocator, Boolean, NSError)

Erstellt einen neuen MDLAsset, indem die Datei an der angegebenen URL in die vom Pufferzuweisungsgeber bereitgestellten Puffer geladen und die Daten im Arbeitsspeicher wie vom Vertexdeskriptor beschrieben formatiert werden.

[Foundation.Export("initWithURL:vertexDescriptor:bufferAllocator:preserveTopology:error:")]
public MDLAsset (Foundation.NSUrl url, ModelIO.MDLVertexDescriptor vertexDescriptor, ModelIO.IMDLMeshBufferAllocator bufferAllocator, bool preserveTopology, out Foundation.NSError error);
new ModelIO.MDLAsset : Foundation.NSUrl * ModelIO.MDLVertexDescriptor * ModelIO.IMDLMeshBufferAllocator * bool *  -> ModelIO.MDLAsset

Parameter

url
NSUrl

Muss hinzugefügt werden.

Dieser Parameter kann null sein.

vertexDescriptor
MDLVertexDescriptor

Muss hinzugefügt werden.

Dieser Parameter kann null sein.

bufferAllocator
IMDLMeshBufferAllocator

Muss hinzugefügt werden.

Dieser Parameter kann null sein.

preserveTopology
Boolean
error
NSError
Attribute

Gilt für: