UseBuffer geht nicht unter DX9

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
hörmi
Beiträge: 106
Registriert: 10.07.2007 15:20
Kontaktdaten:

UseBuffer geht nicht unter DX9

Beitrag von hörmi »

Hallo,
also ich habe folgendes Problem, bei mir geht der Befehl UseBuffer seit PB 4.40 nicht mehr.
Unter DX7 als subsystem geht es zwar schon noch aber ich möchte gern DX9 und die 32Bit bilder beibehalten.
wisst ihr evtl. eine alternative oder irgendeine lösung?
Ergebniss unter DX7 (so wie es sein sollte)
Ergebniss unter DX9 (ignoriert usebuffer komplett)

Code: Alles auswählen

InitSprite()
InitKeyboard()
ExamineDesktops()

OpenScreen(DesktopWidth(0),DesktopHeight(0),DesktopDepth(0),"Nur ein Test")

CreateSprite(0,500,500)

CreateSprite(1,200,200)

StartDrawing(SpriteOutput(1));Zeichne Karomuster
Box(  0,  0,100,100,$FF0000)
Box(100,  0,100,100,$0000FF)
Box(  0,100,100,100,$0000FF)
Box(100,100,100,100,$FF0000)
StopDrawing()

Repeat
 ExamineKeyboard()
 FlipBuffers()
 ClearScreen($FFFFFF)
 
 UseBuffer(0)
 For x=0 To 2
  For y=0 To 2
   DisplaySprite(1,x*100,y*100)
  Next
 Next
 
 UseBuffer(#PB_Default)
 
 DisplaySprite(0,0,0)

Until KeyboardPushed(-1)
BildBild Bild
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: UseBuffer geht nicht unter DX9

Beitrag von WPö »

Hallo!

Kein Schimmer von dem Befehl, nur eine Idee:
Ändert den standardmäßigen Rendering-Buffer (normalerweise der Bildschirm) auf das angegebene '#Sprite'. Dies bedeutet, dass alle folgenden DisplaySprite() ähnlichen Befehle auf dem '#Sprite' ausgegeben werden.

Um die Ausgabe wieder auf den Bildschirm-Buffer umzuleiten, benutzen Sie #PB_Default als '#Sprite' Parameter.
Wenn Du keine weiteren Sprite-Befehle nach Deinem UseBuffer() nutzt, hat er ohnehin keine Auswirkungen. Außerdem stellst Du den Puffer auf seinen Standard zurück. Um eine Veränderung zu haben, muß ein UseBuffer() mit Argument ungleich PB_Default vor einem Sprite-Befehl stehen. Das sehe ich nicht.

Gruß - WPo
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Benutzeravatar
hörmi
Beiträge: 106
Registriert: 10.07.2007 15:20
Kontaktdaten:

Re: UseBuffer geht nicht unter DX9

Beitrag von hörmi »

Ich weiß jetzt nicht genau auf was du hinauswillst, aber ich nutze schon noch andere befehle nach dem UseBuffer(). Das hier ist ja nur ein kleines beispiel um euch mein problem zeigen zu können.
Außerdem verwende ich schon auch noch einen anderen buffer als den default (Zeile 23: UseBuffer(0) )
WPo hat geschrieben:Kein Schimmer von dem Befehl, ...
UseBuffer ist am ehesten mit StartDrawing/StopDrawing zu vergleichen nur das es einen bedeutenden Geschwindigkeitsvorteil hat
BildBild Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: UseBuffer geht nicht unter DX9

Beitrag von Kaeru Gaman »

sorry, es gibt zur Zeit keine Lösung.
Fred hat geschrieben:No, DX9 doesn't support fast UseBuffer(), we are still looking for a viable solution. Just stick with DX7 if you really need it.
http://www.purebasic.fr/english/viewtop ... 58#p307558

Ich rate dir zu einem völlig anderen Ansatz.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
hörmi
Beiträge: 106
Registriert: 10.07.2007 15:20
Kontaktdaten:

Re: UseBuffer geht nicht unter DX9

Beitrag von hörmi »

Schade eigentlich,
aber trotzdem danke

vielleicht könnten sie ja in die hilfedatei reinschreiben das es zZ unter dx9 nicht geht
BildBild Bild
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: UseBuffer geht nicht unter DX9

Beitrag von WPö »

Aua, übersehen. :oops: Einmal Wüste und zurück...

Gruß - WPo
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Antworten