Seite 1 von 1
openscreen 640x480 nicht möglich
Verfasst: 16.07.2021 17:05
von northstarex
Moin
laut Grafikkarten Mode Liste (win10, unterschiedliche Grafikkarten) ist eine Auflösung von 640x480px zugelassen. Wenn ich aber per OpenScreen(640,480,32,"screen") geht dieser kurz auf und gleich wieder zu. Wie bekomme ich das hin, dass dieser Mode angezeigt wird.
Ach ja.... es geht hier nur 32bit Tiefe, alle anderen Bit-Tiefen bringt das ganze hier zum Absturz, bzw. zu Fehlermeldung.
Gibt es da eine Lösung für Openscreen?
Re: openscreen 640x480 nicht möglich
Verfasst: 16.07.2021 17:59
von STARGÅTE
Darf ich (dürfen wir) davon ausgehen, dass du nach OpenScreen eine valide Event- und Anzeige-Schleife hast?
Oder hast du eine RefreshRate angegeben die nicht unterstützt wird?
Wird der Modus denn bei ExamineScreenModes() aufgelistet?
Code: Alles auswählen
InitSprite()
If ExamineScreenModes()
While NextScreenMode()
Debug Str(ScreenModeWidth())+"x"+Str(ScreenModeHeight())+"x"+Str(ScreenModeDepth())+"@"+Str(ScreenModeRefreshRate())+"Hz"
Wend
EndIf
Re: openscreen 640x480 nicht möglich
Verfasst: 16.07.2021 19:30
von northstarex
mit deinen Codesnipsel zeigt die Liste sogar bis 320x200x32 60hz an:
320x200x32@60Hz
320x240x32@60Hz
400x300x32@60Hz
512x384x32@60Hz
640x400x32@60Hz
640x480x32@60Hz
800x600x32@60Hz
.
.
.
.
.
.
1920x1080x32@60Hz
Hier ein einfaches Script, da wo einfach ein Screen geöffnet wird. Hier funktioniert nur min. 800x600x32. Wenn man, oder ihr jetzt unter OpenScreen 640,480,32 eingibt und startet, dann geht der Screen kurz auf und gleich wieder zu.
Code: Alles auswählen
If InitSprite() And InitKeyboard() = 0
MessageRequester("Error", "Can't open screen & sprite environment!", 0)
End
EndIf
; geht leider nur bis 800x600x32
OpenScreen(800,600,32,"multi-screen")
Repeat
ClearScreen($000000)
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor(RGB(128, 255, 90))
DrawText(0, 10, "da guck")
DrawText(20, 80, "test")
StopDrawing()
FlipBuffers()
; Ausgang -----------------------------------------------------------
ExamineKeyboard()
taste$ = KeyboardInkey()
If taste$="1" Or KeyboardPushed(#PB_Key_Escape)
End
EndIf
ForEver
Re: openscreen 640x480 nicht möglich
Verfasst: 17.07.2021 04:56
von berie
Geht bei mir 640x480x32
Wieso hast du die Tastaturabfrage 2x in der Schleife ?
Re: openscreen 640x480 nicht möglich
Verfasst: 17.07.2021 13:01
von northstarex
ja klar... manche System lassen auch 640x480x32 zu... keine frage. Ich habe gestern mal ein bissel herum gefragt und dabei ist herausgekommen, dass es unterschiedliche Screen-Abarbeitungsmöglichkeiten gibt. Es gibt eine Modi Liste (ich nenn es mal so!), die die Grafikkarte ausgibt, die geht von der höchsten bis zu der absolut kleinsten Auflösung. Bei mir also von 1920x1080 bis 320x200. Dann gibt es die Monitortreiber Modi-Liste, die geht bei mir von 1920x1080 bis 640x480 und dann gibt es noch die Betriebsystem Modi-Liste, die wohl PB abarbeitet oder die Grenze ausliest. Die geht bei mir von 1920x1080 bis 800x600. Das ist dann auch wohl die Lösung warum das ganzen bei mir mit 640x480px nicht funktioniert. Man könnte das jetzt noch mit einen Registry Hack ändern, ist aber nicht so die Lösung. Das Programm soll ja überall funktionieren.
Ich habe es mit einen kleinen Commandlinen Tool gelöst. Das Tool, arbeitet genau die Monitor Auflösungsgrenze ab, also 640x480x32. Dann klappt das auch mit dem Openscreen bei der geforderten Auflösung von 640x480x32. Es sieht so aus, als wenn die Openscreen Routine vorher die aktuelle Auflösung abfragt, bei identischer Auflösung wird wohl diese so übernommen - so funktioniert das mit dem oben genannten Tool.
So ist natürlich die Auslesung mit ExamineScreenModes() ungeeignet, wenn dieser Befehl Modis anzeigt, die der Monitor nicht kann und so nicht zur Verfügung steht.
Da müsste der Openscreen und ExamineScreenModes() Befehlt noch mal gefixt werden... meine Meinung

Re: openscreen 640x480 nicht möglich
Verfasst: 17.07.2021 22:23
von GPI
Alterantive wäre: Ein rahmenloses Fenster zu maximieren und dort drin ein Screen zu erstellen.
So ein Fullscreen würd ich mittlerweile nicht mehr machen, haut nur die Icons auf den Desktop durcheinander und bringt weitere Nachteile mit sich.
Re: openscreen 640x480 nicht möglich
Verfasst: 20.07.2021 01:51
von northstarex
Ja... so habe ich auch zusammengeschraubt. Stellt alle möglich "Retro" Auflösungen da und gut ist. Ich dachte das openscreen könnte man auch ohne weiteres benutzen... egal, was solls
thx