DirectX - BeginScene()



  • Hallo,

    ist es okay wenn ich mehrere BeginScene() EndScene()
    Teile in meinem Code habe bevor ich das ganze zeichne?
    Oder sollte das so wenig wie möglich aufgerufen werden?

    grüße
    Huddi



  • Afaik ist das heutzutage kein Problem mehr, währenddessen dir ältere Grafikkarten da Probleme machen könnten.

    Warum willst du das aber überhaupt machen? Welchen Grund gibt's dafür ... vielleicht gäbe es einen ganz einfachen Workaround 😉

    MfG SideWinder



  • Also ich muss in ein vorhandenes Programm schreiben, und da wird die Methode
    in einem Objekt aufgerufen, in dem ich keinen Zugriff auf gebrauchte Variablen
    hab.



  • Naja, dann wird dir eh nichts anderes übrig bleiben. Probleme sollte es keine mehr geben, aber die MSDN schreibt:

    Multiple non-nested IDirect3DDevice9::BeginScene/IDirect3DDevice9::EndScene pairs between calls to present are legal, but having more than one pair may incur a performance hit.

    MfG SideWinder



  • vielen Dank,

    grüße
    Huddi



  • oh und gleich noch eine Performancefrage :)...

    ich möchte Linien Zeichnen und meine lineList für drawPrimitive ist schon
    relativ lang (so ca 700 Punkte). Liegt das noch im Bereich des vertretbaren?



  • Ich gehe jetzt mal davon aus das du alle 700 Punkte in einem Aufruf von DrawPrimitive rendern läst, also 350 linien, das ist ziemlich wenig, du kannst da auch locker das 1000fache in einem rutsch durchlassen.



  • super! Jo geht alles in einem Ablauf. Hött ich mir eigentlich auch denken können
    wenn man sich mal ein aufwändiges Spiel anschaut ^^



  • Grundsätzlich sollte man imer so wenig Draw Aufrufe wie Möglich haben, also imer soviel wie zusammengeht auch zusammen rendern lassen.


Log in to reply