![]() |
DirectX-Forum - Beitragsübersicht - |
|
Thema | DX9: DirectDraw mit DirectX 9 (Windowed Mode) |
Von |
S. P. Gardebiter |
Datum |
06. Januar 2011 um 16:58:33 |
Frage |
Moin, ich habe da mal eine Frage, ich habe nämlich das Problem, dass ich für ein Formular keinen BackBuffer festlegen kann/darf. Ich brauche aber einen damit ich kein hässliches Flimmern habe und das ganze schneller funktioniert, dann dachte ich mir, vielleicht kann ich ja den ganzen BackBuffer einfach auf den FrontBuffer kopieren.
Wenn ich jetzt aber ein zweites Surface createn möchte, funktioniert das ganze nicht, sondern ich bekomme folgende Fehlermeldung:System.ArgumentException wurde nicht behandelt. Message="Der Wert liegt außerhalb des erwarteten Bereichs." Source="Microsoft.DirectX.DirectDraw" Dies ist der relevante Code:Dim BackBuffer As Surface '' BackBuffer Dim FrontBuffer As Surface '' Primary surface Dim DDDevice As Device '' DirectDraw Device ... DDDevice = New Device '' Initialize the Object '' Attach the window To the device DDDevice.SetCooperativeLevel(Me, CooperativeLevelFlags.Normal) ... BackBuffer = New Surface(New SurfaceDescription, DDDevice) Bei der letzten Zeile kriege ich die Fehlermeldung. Wieso? Im übrigen habe ich noch den FrontBuffer, der aber perfekt funktioniert. (habs getestet) Ich arbeite mit VB.NET 2008. |
|
Antwort: |
Von |
Nico |
E-Mail |
nico.schertler@gmx.de |
Datum |
06. Januar 2011 um 21:19:41 |
Antwort |
Hm... wenn du eine andere Überladung des Device-Konstruktors nimmst (nämlich eine mit Window-Handle und PresentParams), kannst du das ganze ziemlich einkürzen. Probiers mal in Anlehnung an meinen Code... Sofern du noch keine Render-Methode hast, sollte auch noch nicht so viel passieren. Aber zumindest keine Fehler. Zur Strategie... Du hast ja sicher eine Datenstruktur dahinter, in der die Map abgespeichert ist. Dann durchlaufe jedes einzelne Objekt und zeichne an die entsprechende Stelle die entsprechende Textur (oder Ausschnitt). Ob das nun innerhalb oder außerhalb der Form ist, ist erstmal nebensächlich.
Nico |
|
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|