WindowedScreen - Auflösung ändern...
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
"volle FPS" ist auch wieder so'n politischer Ausdruck....
wozu brauchst du bei ner Simulation 240 Bilder pro Sekunde?
20, 25, 30 FPS ist schick genug, sowas geht auch mit Images...
http://www.purebasic.fr/german/viewtopic.php?t=19394
... und falls du wirklich nen zigtausend pixel breiten screen erzeugen willst um den Ausschnitt zu scrollen,
hat Fluid allerdings recht, dass das der falsche Ansatz ist.
wozu brauchst du bei ner Simulation 240 Bilder pro Sekunde?
20, 25, 30 FPS ist schick genug, sowas geht auch mit Images...
http://www.purebasic.fr/german/viewtopic.php?t=19394
... und falls du wirklich nen zigtausend pixel breiten screen erzeugen willst um den Ausschnitt zu scrollen,
hat Fluid allerdings recht, dass das der falsche Ansatz ist.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
@Stargate: Aber nur weil alle (bzw. die Mehrheit) das so machen, heißt das eben noch lange nicht, dass dies der beste Weg ist. Vielleicht ist es denen bloß technisch auch nicht anders möglich. Aber ein in der Größe veränderbarer Screen ist doch klar ein Vorteil hinsichtlich Benutzerfreundlichkeit (ich stecke es nun mal in diese Schublade, die richtige dürfte, wenn, nicht weit entfernt sein). Das in Kombination mit relativen Größen des angezeigten Inhaltes ist das Optimum an Desktopintegration. Ich finde es ziemlich ätzend, ein Spiel gänzlich neu starten zu müssen (besonders bei Hammern wie Prey und ähnlichen), nur um die Auflösung zu ändern.
Wenn man zum Beispiel OpenGL benutzt, reicht es den ViewPort zu vergrößern bzw. verkleinern, ohne dass irgendetwas anderes groß geändert werden muss (vielleicht liegt es mal wieder (Verweis auf Threads) an DirectX selbst?). Wobei ich mir nicht vorstellen kann, dass es an DirectX liegt, da im DirectX SDK Anwendungen enthalten sind die ein Verändern der Renderfenstergröße erlauben (jedoch wird da nicht die Auflösung des Rendering Outputs angepasst).
Ein Grundsatz: Der Computer (bzw. die Software) soll sich an den Menschen der davor sitzt anpassen, nicht umgekehrt. Das halte ich für wichtig.
Wenn man zum Beispiel OpenGL benutzt, reicht es den ViewPort zu vergrößern bzw. verkleinern, ohne dass irgendetwas anderes groß geändert werden muss (vielleicht liegt es mal wieder (Verweis auf Threads) an DirectX selbst?). Wobei ich mir nicht vorstellen kann, dass es an DirectX liegt, da im DirectX SDK Anwendungen enthalten sind die ein Verändern der Renderfenstergröße erlauben (jedoch wird da nicht die Auflösung des Rendering Outputs angepasst).
Ein Grundsatz: Der Computer (bzw. die Software) soll sich an den Menschen der davor sitzt anpassen, nicht umgekehrt. Das halte ich für wichtig.
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Mir is die Funktion von Scrollen bewusst, selbstverständlich scrolle ich auch den Inhalt und nicht den Screen, ich wollte damit nur ausdrücken das der Inhalt immer Pixel zu Pixel angezeigt werden kann, es wird lediglich mehr oder weniger angezeigt, der eigentliche Inhalt ist viel größer als der Screen...Fluid Byte hat geschrieben:Falscher Denkansatz. Du scrollst nicht den Screen sondern den Inhalt. So funktioniert es bei OS-Fenstern ebenfalls. Dies kann ein Bild sein oder eine Datenmatrix wie bspw. bei einem MapEditor.KeyKon hat geschrieben:Bei mir geht es um die Visualisierung einer Simulation bei der der Screen gescrollt werden kann, die sollte schon Pixel zu Pixel sein und auch mit vollen FPS laufen...
(\/) (°,,,°) (\/)
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Kapier ich nicht ...
Vielleicht mal ein anderes Satzzeichen außer Komma verwenden?
Vielleicht mal ein anderes Satzzeichen außer Komma verwenden?
Windows 10 Pro, 64-Bit / Outtakes | Derek
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Ich krieg hier noch die krise, mein Problem hat sich doch schon gelöst -.-
-> Fenster is resizeable und Screen soll mitwandern und nich einfach gezoomt werden sondern Pixel zu Pixel bleiben
-> Da der inhalt eh gescrollt wird ist die Auflösung des Screens egal, es wird lediglich mehr oder weniger angezeigt
PUNKT.
-> Fenster is resizeable und Screen soll mitwandern und nich einfach gezoomt werden sondern Pixel zu Pixel bleiben
-> Da der inhalt eh gescrollt wird ist die Auflösung des Screens egal, es wird lediglich mehr oder weniger angezeigt
PUNKT.
(\/) (°,,,°) (\/)
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
So in der Art:
Code: Alles auswählen
InitSprite()
If Not OpenWindow(0,0,0,800,600,"Windowed Screen",#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget|#PB_Window_SystemMenu)
End
EndIf
If Not OpenWindowedScreen(WindowID(0),0,0,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN),0,0,0)
End
EndIf
Global XScreen = 800
Global YScreen = 600
Repeat
event = WindowEvent()
Select event
Case #PB_Event_CloseWindow
End
Case #PB_Event_SizeWindow, #PB_Event_MoveWindow
XScreen = WindowWidth(0)
YScreen = WindowHeight(0)
EndSelect
ClearScreen(0)
StartDrawing(ScreenOutput())
FrontColor(#White)
BackColor(#Black)
LineXY(0,0,XScreen,YScreen)
LineXY(XScreen,0,0,YScreen)
DrawText(XScreen-100,YScreen/2-10,"Width: "+Str(XScreen))
DrawText(XScreen-100,YScreen/2+10,"Height: "+Str(YScreen))
StopDrawing()
FlipBuffers(#PB_Screen_WaitSynchronization)
ForEver
Zuletzt geändert von KeyKon am 09.05.2009 00:26, insgesamt 1-mal geändert.
(\/) (°,,,°) (\/)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
statt GetSystemMetrix könntest du auch ExamineDesktops anwenden... 
die Lösung mitsieht gut aus. 
btw:
http://www.purebasic.fr/german/viewtopi ... 999#243999
... also vielleichtverwenden, zur vollen Sicherheit.

die Lösung mit
Code: Alles auswählen
Case #PB_Event_SizeWindow
XScreen = WindowWidth(0)
YScreen = WindowHeight(0)

btw:
http://www.purebasic.fr/german/viewtopi ... 999#243999
... also vielleicht
Code: Alles auswählen
Case #PB_Event_SizeWindow, #PB_Event_MoveWindow
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.