Screenmodes

Für allgemeine Fragen zur Programmierung mit PureBasic.
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag von marco2007 »

Jup, man muss dann allerdings scrollen, wenn man die Taskleiste sehen will :lol:
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Virtuelle Auflösung? Die braucht Kaeru dann aber nicht. Hab mich schon
erschrocken, sah Dich schon mit der Lupe vorm Monitor :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag von marco2007 »

Das schlimme, ich habe mich sogar vertan..naja schätzen ist nicht mein Ding :lol: :oops:
Ich hab`s mal gemessen: 39cm sind eigentlich 15,35" :?
Naja, der Acer Aspire 3630 war vor 2 Jahren der billigste beim MediaMarkt.
Windows 11 - PB 6.03 x64
_________________________________
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ok... ich danke euch erstmal für den Überblick.

die wichtigste Erkenntnis: es gibt keine allgemeingültige Reihenfolge,
aus denen ein Algorithmus irgendwelche Schlüsse ziehen könnte.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

meine weiteren Überlegungen laufen folgendermaßen:

1.)
man speichert alle möglichen screenmodes, sortiert sich die mit 32bit raus,
die 16bit noch zusätzlich bzw. natürlich braucht man die, falls kein 32bit verfügbar ist.
(hab ich auf nem älteren Laptop schon erlebt)

jetzt ermittelt man die momentane desktopauflösung, ermittelt deren seitenverhältnis,
und zieht daraus den (ein klein bischen gewagten) schluß, ob das Display Wide ist oder normal.

anhand dieser folgerung kann man dann die möglichen modes aus
der liste entfernen, die nicht dem seitenverhältnis entsprechen.


2.)
man erstellt einen beliebig großen WindowedScreen mittig auf einem maximized Window.
natürlich muss man auch hier einmal die desktopauflösung ermitteln,
um die richtige x-koordinate und das RightOffset zu ermitteln.
so kann man einen leicht gestreckten aber seitenkorrekten 800x600 screen
mittig auf einem 1152x864 Desktop darstellen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Hier noch die Daten von mir:

15" Laptop...
  • 001: 320x200-32bit @60Hz
    002: 320x240-32bit @60Hz
    003: 400x300-32bit @60Hz
    004: 480x360-32bit @60Hz
    005: 512x384-32bit @60Hz
    006: 640x350-32bit @60Hz
    007: 640x400-32bit @60Hz
    008: 640x480-32bit @60Hz
    009: 720x400-32bit @60Hz
    010: 720x480-32bit @60Hz
    011: 720x576-32bit @60Hz
    012: 768x576-32bit @60Hz
    013: 800x600-32bit @60Hz
    014: 852x480-32bit @60Hz
    015: 853x480-32bit @60Hz
    016: 854x480-32bit @60Hz
    017: 864x480-32bit @60Hz
    018: 1024x640-32bit @60Hz
    019: 1024x768-32bit @60Hz
    020: 1152x864-32bit @60Hz
    021: 1176x664-32bit @60Hz
    022: 1280x720-32bit @60Hz
    023: 1280x768-32bit @60Hz
    024: 1280x800-32bit @60Hz
    025: 1280x854-32bit @60Hz
    026: 1360x768-32bit @60Hz
    027: 1365x768-32bit @60Hz
    028: 1366x768-32bit @60Hz
    029: 1440x900-32bit @60Hz
    030: 320x200-16bit @60Hz
    031: 320x240-16bit @60Hz
    032: 400x300-16bit @60Hz
    033: 480x360-16bit @60Hz
    034: 512x384-16bit @60Hz
    035: 640x350-16bit @60Hz
    036: 640x400-16bit @60Hz
    037: 640x480-16bit @60Hz
    038: 720x400-16bit @60Hz
    039: 720x480-16bit @60Hz
    040: 720x576-16bit @60Hz
    041: 768x576-16bit @60Hz
    042: 800x600-16bit @60Hz
    043: 852x480-16bit @60Hz
    044: 853x480-16bit @60Hz
    045: 854x480-16bit @60Hz
    046: 864x480-16bit @60Hz
    047: 1024x640-16bit @60Hz
    048: 1024x768-16bit @60Hz
    049: 1152x864-16bit @60Hz
    050: 1176x664-16bit @60Hz
    051: 1280x720-16bit @60Hz
    052: 1280x768-16bit @60Hz
    053: 1280x800-16bit @60Hz
    054: 1280x854-16bit @60Hz
    055: 1360x768-16bit @60Hz
    056: 1365x768-16bit @60Hz
    057: 1366x768-16bit @60Hz
    058: 1440x900-16bit @60Hz
    059: 320x200-8bit @60Hz
    060: 320x240-8bit @60Hz
    061: 400x300-8bit @60Hz
    062: 480x360-8bit @60Hz
    063: 512x384-8bit @60Hz
    064: 640x350-8bit @60Hz
    065: 640x400-8bit @60Hz
    066: 640x480-8bit @60Hz
    067: 720x400-8bit @60Hz
    068: 720x480-8bit @60Hz
    069: 720x576-8bit @60Hz
    070: 768x576-8bit @60Hz
    071: 800x600-8bit @60Hz
    072: 852x480-8bit @60Hz
    073: 853x480-8bit @60Hz
    074: 854x480-8bit @60Hz
    075: 864x480-8bit @60Hz
    076: 1024x640-8bit @60Hz
    077: 1024x768-8bit @60Hz
    078: 1152x864-8bit @60Hz
    079: 1176x664-8bit @60Hz
    080: 1280x720-8bit @60Hz
    081: 1280x768-8bit @60Hz
    082: 1280x800-8bit @60Hz
    083: 1280x854-8bit @60Hz
    084: 1360x768-8bit @60Hz
    085: 1365x768-8bit @60Hz
    086: 1366x768-8bit @60Hz
    087: 1440x900-8bit @60Hz
    Allover Number of Modes: 87
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Wenn noch was bringt (erst jetzt den Thread gelesen) hier meine Daten:

Alter 13,3" Lappi (Toshiba Portege 7020CT):

Code: Alles auswählen

001: 640x480-8bit @60Hz
004: 640x480-16bit @60Hz
007: 640x480-24bit @60Hz
010: 800x600-8bit @60Hz
013: 800x600-16bit @60Hz
016: 800x600-24bit @60Hz
019: 1024x768-8bit @60Hz
023: 1024x768-16bit @60Hz
027: 640x400-8bit @60Hz
029: 640x400-16bit @60Hz
031: 320x200-8bit @60Hz
033: 320x240-8bit @60Hz
035: 1024x768-24bit @60Hz
039: 1280x1024-8bit @60Hz
040: 320x200-16bit @60Hz
043: 320x240-16bit @60Hz
Allover Number of Modes: 44
17" Yüsmart TFT:

Code: Alles auswählen

016: 640x480-8bit @60Hz
017: 640x480-16bit @60Hz
018: 640x480-32bit @60Hz
031: 800x600-8bit @60Hz
032: 800x600-16bit @60Hz
033: 800x600-32bit @60Hz
040: 1024x768-8bit @60Hz
041: 1024x768-16bit @60Hz
042: 1024x768-32bit @60Hz
049: 1152x864-8bit @60Hz
050: 1152x864-16bit @60Hz
051: 1152x864-32bit @60Hz
055: 1280x600-8bit @60Hz
056: 1280x600-16bit @60Hz
057: 1280x600-32bit @60Hz
058: 1280x720-8bit @60Hz
059: 1280x720-16bit @60Hz
060: 1280x720-32bit @60Hz
064: 1280x768-8bit @60Hz
065: 1280x768-16bit @60Hz
066: 1280x768-32bit @60Hz
070: 1280x960-8bit @60Hz
071: 1280x960-16bit @60Hz
072: 1280x960-32bit @60Hz
076: 1280x1024-8bit @60Hz
077: 1280x1024-16bit @60Hz
078: 1280x1024-32bit @60Hz
088: 480x640-8bit @60Hz
089: 480x640-16bit @60Hz
090: 480x640-32bit @60Hz
103: 600x800-8bit @60Hz
104: 600x800-16bit @60Hz
105: 600x800-32bit @60Hz
112: 768x1024-8bit @60Hz
113: 768x1024-16bit @60Hz
114: 768x1024-32bit @60Hz
121: 864x1152-8bit @60Hz
122: 864x1152-16bit @60Hz
123: 864x1152-32bit @60Hz
124: 600x1280-8bit @60Hz
125: 600x1280-16bit @60Hz
126: 600x1280-32bit @60Hz
127: 720x1280-8bit @60Hz
128: 720x1280-16bit @60Hz
129: 720x1280-32bit @60Hz
130: 768x1280-8bit @60Hz
131: 768x1280-16bit @60Hz
132: 768x1280-32bit @60Hz
133: 960x1280-8bit @60Hz
134: 960x1280-16bit @60Hz
135: 960x1280-32bit @60Hz
136: 1024x1280-8bit @60Hz
137: 1024x1280-16bit @60Hz
138: 1024x1280-32bit @60Hz
Allover Number of Modes: 138
Zuletzt geändert von rolaf am 29.07.2008 18:35, insgesamt 2-mal geändert.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo danke.
wie gesagt, die bisherige statistik hat bereits genügt, um zu sehen,
dass man mit der nativen Liste nicht SO viel anfangen kann.

das Kernproblem ist, dass man auf einem Widescreen zwar ein 4:3 Screen öffnen kann,
dass der bei den möglichen Einstellungen aufgelistet wird, der dann aber verzerrt dargestellt wird.
also muss man irgendwie herausfinden, ob es ein Wide-Display ist,*
oder aber gleich mit nem WindowedScreen arbeiten.

*) vielleicht gibts dafür auch ne API, aber mir wäre erstmal eine native PB-Lösung lieber...

... ist aber auch nicht so high-priority, ich wills nur generell wissen wies geht für zukünftige projekte ...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Vil. so... :

Code: Alles auswählen

Procedure ggT(a, b)
	If a = b Or b = 0
		ProcedureReturn a
	Else
		ProcedureReturn ggT(b, a % b)
	EndIf
EndProcedure


ExamineDesktops()
width = DesktopWidth(0)
height = DesktopHeight(0)

ggT = ggT(width, height)

sv$ = Str(width / ggT) + " : " + Str(height / ggT)
Debug sv$
... da der Desktop normalerweise im Verhältnis ist...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ah, der rekursive ggT, schön ihn mal wieder zu lesen.

...für diesen fall würde ein einfacher faktor jedoch genügen...

Code: Alles auswählen

Debug " 4: 3 = " + StrF( 4/ 3,3)
Debug " 5: 4 = " + StrF( 5/ 4,3)
Debug "16: 9 = " + StrF(16/ 9,3)
Debug "16:10 = " + StrF(16/10,3)
Debug "-------------"
Debug "1280x 960 = " + StrF(1280/ 960,3)
Debug "1280x1024 = " + StrF(1280/1024,3)
Debug "1280x 720 = " + StrF(1280/ 720,3)
Debug "1280x 800 = " + StrF(1280/ 800,3)
man könnte also sagen, Wide > 1.5, Normal < 1.5
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten