Nachteile von OpenWindowedScreen() bei Spielen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Delle
Beiträge: 1132
Registriert: 10.05.2005 22:48

Nachteile von OpenWindowedScreen() bei Spielen

Beitrag von Delle »

Hallo,

irgendwelche Nachteile hatte doch OpenWindowedScreen() bei Spielen oder?

Mir fällt nur auf, daß sie im Vergleich zu Fullscreen verschwommen und langsamer sind...
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8814
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Verschwommen ist bei OpenScreen nichts.

Der Nachteil ist allerdings, dass die FPS-Rate durch die Bildwiederholfrequenz begrenzt wird, die bei Windows im Desktop-Mode eingestellt ist.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

NicTheQuick hat geschrieben:Verschwommen ist bei OpenScreen nichts.

Der Nachteil ist allerdings, dass die FPS-Rate durch die Bildwiederholfrequenz begrenzt wird, die bei Windows im Desktop-Mode eingestellt ist.
Das wage ich mal zu bezweifeln. Das ist in meinen Augen eher ein Bug.
PB sieht eine Funktion zum Limitieren der Framerate vor. Allerdings
funktioniert dieses nur im Windowed Screen richtig, wenn ich mich
richtig erinnere. Im Fullscreen Mode ist die Framerate dann doppelt
so hoch wie sie eigentlich seien sollte.
Bild
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Die Unteschiede von einem DX-Vollbildschirm zum gefensterten Screen kannst du schon an der FPS sehen.

Versuchs mal.

Code: Alles auswählen

;Remi Meier
;PureBasic-Lounge.de
 ;Gibt die anzahl der Bilder pro sek. zurück.
Procedure GetFPS()
  Static GetFPS_Count,GetFPS_FPS,GetFPS_Start
  GetFPS_Count+1
  If GetTickCount_()-GetFPS_Start >= 1000
    GetFPS_FPS   = GetFPS_Count
    GetFPS_Count = 0
    GetFPS_Start + 1000
  EndIf
  ProcedureReturn GetFPS_FPS
EndProcedure
ThomasT
Beiträge: 7
Registriert: 26.06.2005 21:24
Wohnort: Nürnberg

ich hab Probleme mit der Maus

Beitrag von ThomasT »

Mein Programm läuft im Vollbild problemlos, im Fenster hab ich das Problem, dass nach dem ersten Mausklick Mousebutton(1) immer einen geklickten Button zurück liefert.
Denke nie gedacht zu haben denn das Denken der Gedanken ist gedankenloses Denken und wer denkt er denkt der denkt nur dass er denkt aber denken tut er nie.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Eine IMO gute Methode ist, das Spiel anstatt in einem WindowedScreen, in einem ImageGadget anzuzeigen.
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

vonTurnundTaxis hat geschrieben:Eine IMO gute Methode ist, das Spiel anstatt in einem WindowedScreen, in einem ImageGadget anzuzeigen.
Sorry, das ist eher eine schlechte Methode.

Warum:
DirectX ist dann ausgeschlossen, es werden 'nur' die GDI Grafikfunktionen angewendet (und die sind nicht performant).
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Noch eine wichtige Ergänzung:

In der PB-Hilfe zu der PureBasic - Mouse Library steht:
... Verwenden Sie die Befehle dieser Library nicht in einer regulären Applikation, realisieren Sie in diesem Fall die Mausabfrage mittels WindowMouseX(), WindowMouseY() und EventType()...
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
ThomasT
Beiträge: 7
Registriert: 26.06.2005 21:24
Wohnort: Nürnberg

Beitrag von ThomasT »

IceSoft hat geschrieben:Noch eine wichtige Ergänzung:

In der PB-Hilfe zu der PureBasic - Mouse Library steht:
... Verwenden Sie die Befehle dieser Library nicht in einer regulären Applikation, realisieren Sie in diesem Fall die Mausabfrage mittels WindowMouseX(), WindowMouseY() und EventType()...
ist denn ein "Windowed Screen" eine reguläre Applikation?
Er verhält sich ja etwas anders, z.B. kann die Maus das Fenster nicht verlassen.
Denke nie gedacht zu haben denn das Denken der Gedanken ist gedankenloses Denken und wer denkt er denkt der denkt nur dass er denkt aber denken tut er nie.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Nachteile von OpenWindowedScreen() bei Spielen

Beitrag von Kaeru Gaman »

Delle hat geschrieben:... im Vergleich zu Fullscreen verschwommen ...
wenn darstellungsgröße und interne pixelzahl nicht gleich sind
(z.b. einen 800x600 WindowedScreen in der größe 720x540 dargestellt)
dann wird die bildinformation von der hardware weichgerechnet.

das ist abhängig von fenstergröße, position im fenster, autostretch, randoffsets, etc.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten