Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

1

30.12.2012, 22:46

Vertex Declaration in Vertexformat umwandeln

Ich habe ein CustomVertexFormat und eine VertexDeclaration:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
D3DVERTEXELEMENT9 g_vertexElements[] =
{
    {0,  0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
    {0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL,   0},
    {0, 24, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT,  0},
    {0, 40, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
    D3DDECL_END()
};
IDirect3DVertexDeclaration9 *g_pVertexDecl;
//...

dev.CreateVertexDeclaration(g_vertexElements, &g_pVertexDecl);

Wenn ich jetzt einen VertexBuffer mithilfe von CreateVertexBuffer erzeugen will, muss ich ein Vertexformat in Form von DWORD übergeben. Jetzt ist die Frage: Wie kann ich aus meiner VeretxDeclaration ein Vertexformat machen, damit ich ein Vertexbuffer erstellen kann?
Ich habe folgenden Code für C# gefunden:

Quellcode

1
2
3
4
5
6
vertexBuffer = new VertexBuffer(
    graphics.GraphicsDevice,
    typeof(CustomVertex1),
    number_of_vertices,
    BufferUsage.None
    );

Aber dei Funktion "typeof()" gibt es in C++ nicht.
-Directx9, C++
Danke.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

30.12.2012, 23:14

Wenn ich jetzt einen VertexBuffer mithilfe von CreateVertexBuffer erzeugen will, muss ich ein Vertexformat in Form von DWORD übergeben.

Nope, musst du nicht. Und damit hat sich dein Problem dann wohl auch erledigt... ;)

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

3

31.12.2012, 00:10

Doch so einfach. Naja gut, danke ;)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Werbeanzeige

Ähnliche Themen