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

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

1

14.02.2005, 21:20

tbVertexBuffer::Update

Hallo,

ich habe einen VertexBuffer und füge nun Vertices ein und rufe anschließend die Update-Funktion auf und danach füge ich wieder ein paar Vertices ein und rufe wieder die Update-Funktion auf! Leider aber wird dann nicht mehr alles gerendert, ausser ich füge sofort alle Vertices ein und rufe erst ganz am Schluss die Update-Funktion auf! Natürlich möchte ich das so nicht und mich würde es jetzt interessieren, wie ich es machen kann, dass ich auch nach der Update-Funktion noch weitere Vertices hinzufügen kann..irgendwie wird da eine Veriable zurückgestellt oder so...thx


cya,
Stefan

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

2

17.02.2005, 20:41

Kann mir den niemand weiter helfen!?? es wäre nämlich für mich sehr sehr wichtig, damit ich endlich weiter komme..

Also hier vielleicht noch ein bischen Code!
So erstelle ich den Vertex-Buffer:

C-/C++-Quelltext

1
2
3
4
5
6
7
D3DVertex = new tbVertexBuffer;
if(D3DVertex->Init(100000 * sizeof(SVertex2), sizeof(SVertex2),
        D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1, D3DUSAGE_DYNAMIC,
        D3DPOOL_DEFAULT))
    {
        return TB_ERROR;
    }


Naja, und zum einfügen von Vertices gibts wohl nicht viel zu sagen:

C-/C++-Quelltext

1
D3DVertex->AddVertices(12,&Vertex);


hm, wo könnt den hier das Problem sein, dass ich nach der Update Funktion nichts mehr einfügen bzw. Vertices verändern kann?..ich hab leider echt keine Ahnung..


cya,
Stefan

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

3

18.02.2005, 12:54

Problem fast gelöst..

ok, ich habe das Problem jetzt eigentlich gelöst, nur verstehe ich es noch nicht ganz!

C-/C++-Quelltext

1
2
3
3DVertex->SetVertices(i*12,12,&Vertices2);
    D3DVertex->SetFirstVertex(0);
    D3DVertex->SetLastVertex(D3DVertex->GetMaxVertices() - 1);


Also zuerst aktualisiere ich die neuen Vertices die sich geändert haben, anschließend übergebe ich der Funktion SetFirstVertex 0 und der Funktion SetLastVertex() die Gesammt-Anzahl der Vertices und rufe anschließend die Update Funktion auf! Wieso muss ich das ganze mit dem SetFirstVertex,.. machen?? thx

cya,
Stefan

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

18.02.2005, 19:15

Wie sperrst Du denn den Vertex-Buffer? Wenn Du den mit D3DLOCK_DISCARD sperrst, musst Du grundsätzlich den kompletten Buffer neu füllen, da unter Umständen ein komplett neuer Speicherbereich alloziiert wird, der dann natürlich von neuem gefüllt werden muss.

Werbeanzeige