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

pilso

Frischling

  • »pilso« ist der Autor dieses Themas

Beiträge: 6

Beruf: Programmierer

  • Private Nachricht senden

1

17.02.2006, 14:10

tbVertexBuffer::Update() Funktion

Hallo,

Kann es sein, dass die Update()-Funktion in tbVertexBuffer fehlerhaft ist?

Sie ruft zwar Lock() mit D3DLOCK_DISCARD auf, aber beim Kopieren von der internen VB-Kopie in den echten VB wird nur der Teil von m_dwFirstVertex bis m_dwLastVertex reinkopiert. Es müsste doch der gesamte Buffer reinkopiert werden, falls Lock() mit D3DLOCK_DISCARD aufgerufen wurde, oder nicht?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

17.02.2006, 20:04

Da hast Du recht, das ist ein Fehler.
Komischerweise funktioniert es trotzdem!

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

3

18.02.2006, 01:53

Wer will da Anderen das Programmieren beibringen? :ohoh:
Sry, den konnte ich mir nich verkneifen }>

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

18.02.2006, 09:54

Den Fehler habe ich natürlich mit Absicht eingebaut.
Wäre ja sonst langweilig, oder?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

5

18.02.2006, 11:03

Man das ist pädagogik..... spike... echt. So kannn man sehen wer es wirklich verstanden hat und wer nicht ;).

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

6

18.02.2006, 16:00

hrhr mist :roll:

pilso

Frischling

  • »pilso« ist der Autor dieses Themas

Beiträge: 6

Beruf: Programmierer

  • Private Nachricht senden

7

21.02.2006, 14:05

In dem Thread tbVertexBuffer::Update von Stefan könnte es um diesen Fehler gehen, da es bei ihm nur geht wenn er SetFirstVertex(0) und SetLastVertex(max-1) aufruft.

Es kann ja viele Konstellationen geben, in denen sich der Fehler gar nicht auswirkt.

Ich fände es gut, wenn solche Sachen den Buchkorrekturen auf der Website hinzugefügt werden, damit sich nicht noch mehr Leute den Kopf zerbrechen wie ich.

Ich habe eigentlich gefragt, weil ich Gewissheit wollte und nicht um jemanden zu belehren oder so.

Abschliessend muss ich noch sagen, dass ich das Buch wirklich gut finde.

DigitalDream

Frischling

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

8

20.11.2006, 20:07

Zitat von »"David Scherfgen"«

Da hast Du recht, das ist ein Fehler.
Komischerweise funktioniert es trotzdem!


Hast du ,oder jemand von Euch mehr dazu rausfinden können?
Denn code,der laut Definition nicht funktionieren sollte,aber aus wohl unerklärlichen Gründen doch geht,ist eigentlich eine Zeitbombe.

Zumal es auch Bugs auf MS seite gibt,die auf unterschiedlichen Grafikkarten je nach Kombination von CreateDevice flags auftauchen.
Es gab z.B mal ein Problem mit GForce karten bei dynamischen VBs in Kombination mit D3DCREATE_SOFTWARE_VERTEXPROCESSING etc..

Werbeanzeige