Buffer Fehler?
Übersicht

jeykeyBetreff: Buffer Fehler? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Folgendes Problem:
Ich schreibe momentan an einen Spiel, bei dem der Bildschirm nicht bei jeden Schleifendurchlauf durch "Cls" gelöscht und gezeichnet wird sondern nur ein kleiner Teil neu darauf gezeichnet wird. Im Fenstermodus funktioniert das alles perfekt, doch sobald man in den Vollbildmodus schaltet, gibt es bei einigen Auflösungen, vor allen auf meinen MacBook und unter meinen Linux (OpenSuse) folgenden Fehler: Irgentwie wird bei jeden Flip nicht der gleiche BackBuffer angezeigt, ich habe das Gefühl das es zwei BackBuffer gibt die sich immer abwechseln. Um das zu demonstrieren hab ich folgendes Beispielprogramm geschrieben: Code: [AUSKLAPPEN] SuperStrict
SetGraphicsDriver GLMax2DDriver() Graphics 1920, 1080, 24, 60 DrawRect(0, 0, 200, 200)' Erstes Rechteck zeichnen Flip' Anzeigen WaitKey DrawRect(200, 200, 200, 200)' Zweites Rechteck zeichnen Flip' Anzeigen ' Hier passiert der Fehler: ' Das erste Rechteck verschwindet! WaitKey Flip ' Und nun taucht es wieder auf! WaitKey End Die Auflösung (1920*1080) kann natürlich geändert werden, es ist blos eine der Auflösungen bei welcher der Fehler bei mir auftritt. Wie gesagt, nach meiner Erfahrung taucht der Fehler nur im Vollbildmodus auf. Allerdings auch nicht bei jeder Auflösung... Hatte jemand schon mal ein ähnliches Problem? jeykey |
||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei Flip wird zwischen Front und Backbuffer gewechselt. Daher diese "2 Backbuffer". ist also kein fehler.
Dass es im Fenstermodus geht, liegt daran, dass, glaube ich, auf betriebssystemen dann das buffern vom system übernommen wird. |
||
Warbseite |
jeykey |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gibt es unter BlitzMax auch die Möglichkeit direkt in den FrontBuffer zu schreiben oder den Austausch der beiden Buffer zu verhindern?
Zu meinen Spiel: Ich schreibe ein ähnliches Spiel wie IpCurve: ![]() Mit diesen Buffer "Fehler" macht das echt keinen Spaß mehr, es flimmert das ganze Bild xD... |
||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
es ist besser beide buffer zu verwenden:)
BlitzMax: [AUSKLAPPEN] Repeat Dadurch schließt man eventuelle buffer fehler aus. nicht, dass man auf einmal im backbuffer zeichnet und keiner siehts:) |
||
Warbseite |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Noch dazu gibt es Systeme die triplebuffern. Von daher würde ich dir raten einfach imer alles neu zu zeichnen. Sollte eigentlich im Regelfall die Performance nicht zu arg belasten. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
jeykey |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
An die Möglichkeit hab ich auch schon gedacht, ich bevorzuge meistens die einfachste bzw. schnellste Variante, aber so wie es auschaut gibt es wohl keine Alternative^^ | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das was Du vorhattest war zu Zeiten des C64 die effektive und schnelle Variante. Heutzutage kaufst du dir nur Probleme wenn Du die Architektur moderner Hardware zu umgehen versuchst. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group