2010-12-28 12 views
0

Ich versuche, Mesh in DirectX10 zu kopieren. Ich schrieb dieses:ID3DX10Mesh :: CloneMesh

HR(mesh->CloneMesh(mesh->GetFlags(),data.GetPosSemantic(),data.GetInputElementDesc(), 
     data.GetDescCount(),&mMesh)); 

aber wenn ich versuche, das Maschennetz darzustellen, erscheint nichts auf dem Schirm.

wenn ich schreibe

mMesh = mesh; 

Es gibt keine Probleme mit der Wiedergabe (es sei denn, wenn ich loslassen „Netz“).

Vielen Dank im Voraus.

Antwort

1

Wenn Sie das Netz ohne Änderungen duplizieren möchten, sollten Sie den zweiten Ansatz verwenden und dann mMesh->AddRef() aufrufen, um zu deklarieren, dass die Daten von zwei Zeigern gehört (bessere Idee ist, eine Art Smartpointer zu verwenden - COM oder boost::shared_ptr angepasst zu COM-ähnlichen Objekten).

Aber der erste Fall sollte auch funktionieren - was ist das data Objekt über?

+0

Danke, es hat funktioniert. Ich denke, ich sollte mehr COM abhören. Ich verwende das Datenobjekt, um die Eingabedeklarationen, den semantischen Namen der Position und die Anzahl der Deklarationen zu übergeben. Vor wenigen Tagen sah ich, dass es unnötig ist, aber ich habe es noch nicht entfernt. – Dani