![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > ChangeScreenBuffer() & WinUAE | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2005-07-11, 01:19 h whose Posts: 2156 User |
Ich habe hier ein kleines Problem. Ich programmiere derzeit an einem Spielchen herum, welches bisher auf allen meinen Amigas (inkl. µA1) unter RTG mittels ChangeScreenBuffer()-Methode mit Doublebuffering läuft. Nun habe ich es mal auf meinem Laptop unter WinUAE getestet und zu meinem Ärger bemerkt, daß es unter WinUAE + P96 nicht ordentlich läuft. Der Bildschirmmodus ist völlig daneben (gewünschte Auflösung 640 * 480, tatsächliche Auflösung anscheinend 1024 * 768, also Fullscreen) und der eigentlich unsichtbare Puffer ist sichtbar. Ist das ein (möglicherweise bekannter) Bug von WinUAE oder gibts für dieses Problem eine Abhilfe? Wäre für jeden hilfreichen Tip dankbar, dann könnte ich auch unterwegs ein wenig an dem Spiel weiterarbeiten ![]() Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 11.07.2005 um 01:20 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-07-11, 07:43 h thomas Posts: 7721 User |
Zitat: Wie hast du den Bildschirmmodus denn ausgewählt ? Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2005-07-11, 09:47 h whose Posts: 2156 User |
Zitat: Per BestModeID(). Für ECS/AGA klappt das (wäre auch verwunderlich, wenn nicht ![]() DimensionInfo ergibt ne maximale Auflösung von 640 in X-Richtung, das ist auch nicht so ganz korrekt, wenn man einen 800 * 600 Modus anfordert, oder? Seltsamerweise tuts auf Amithlon problemlos ![]() Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
2005-07-11, 10:17 h thomas Posts: 7721 User |
@whose: Welchen Screenmode bekommst du denn (z.B. uaegfx:800x600 8bit) ? Funktioniert's, wenn du eine Mode-ID als Parameter mitgibst (oder einen Screenmoderequester benutzt) ? Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2005-07-11, 10:48 h whose Posts: 2156 User |
Zitat: Gute Frage. Da sagt mir das OS, daß ich den gewünschten 800 * 600 8 Bit bekommen habe. Allerdings stimmt das definitiv nicht, da das gesamte Bild mit dem Mauszeiger erreichbar ist und die Heimatauflösung des Displays 1024 * 768 ist. Zitat: Das habe ich bisher noch nicht ausprobiert, weil die BestModeID()-Methode auf allen anderen Systemen problemlos funktioniert. Ich wollte eigentlich so arbeiten, daß der Benutzer wenig Last mit der Auswahl eines Screenmodes hat und die Engine sich komplett selbst um alles kümmert, was die Darstellung betrifft. Wenn mein Problem mit einem Bug von WinUAE zusammenhängt, habe ich allerdings ein Problem. Eigentlich wollte ich Extrawürste ja vermeiden ![]() Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
2005-07-11, 13:07 h whose Posts: 2156 User |
Hm, also mit CModeRequestTags() funktionierts, zumindest habe ich ein anderes Programm, welches ChangeScreenBuffer() einsetzt, einwandfrei am Laufen. Scheint also ein Problem mit BestModeID() zu sein. Mal sehen, welche Möglichkeiten es gibt, dem Benutzer die Wahl der Qual ![]() ![]() Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
2005-07-11, 13:32 h Reth Posts: 1860 User |
@whose: Hi, machs doch mit ner Hookfunktion für den ScreenModeRequester. Dann kannst Du die Modi bestimmen, die überhaupt zur Auswahl stehen (z.B. alle mit genau 8Bit Farbtiefe und und und). [ - Answer - Quote - Direct link - ] |
2005-07-11, 15:01 h whose Posts: 2156 User |
Zitat: Jep, das habe ich nun gemacht. Leider ohne Ergebnis ![]() Auf WinUAE zieht der Punkt eine flackernde Linie hinter sich her, die offensichtlich vom zweiten Buffer herkommt, dort also aus irgendeinem Grund nicht gelöscht wird. Zur Erläuterung: Ich arbeite ohne Fenster (input.device-Handler ![]() ![]() ![]() Lustigerweise funktioniert das andere Programm (das auf CGFX umgestrickte DoubleBuffering-Demo von der DevCD) bis auf den flackernden Mauszeiger bestens. Allerdings wird da nur mit dem Blitter gearbeitet, nicht mit SetAPen() & Co. sowie nicht mit Move()/Draw()-Kombination (bzw. diese Funktionen werden auf eine nicht sichtbare Bitmap angewandt). Weiß einer, worans liegt? Ich weiß so langsam nicht mehr weiter ![]() ![]() Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
2005-07-12, 23:05 h whose Posts: 2156 User |
@Alle: Nochmal Danke an alle, inzwischen kenne ich des Übels Wurzel. Es sieht so aus, als würde uaegfx den DrawMode INVERSVID nicht korrekt unterstützen. Setze ich die Hintergrundfarbe von Hand als Zeichenfarbe, läuft das Testprogramm korrekt (löscht den zuletzt gezeichneten Punkt, bevor ein neuer Punkt an neuer Position gesetzt wird). Werds ans UAE-Team melden... Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > ChangeScreenBuffer() & WinUAE | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |