Monitor Auflösung heraus finden (Für Mac)
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
RayManBetreff: Monitor Auflösung heraus finden (Für Mac) |
Sa, Mai 26, 2007 18:16 Antworten mit Zitat |
|
---|---|---|
Hallo!
Ich bin neu hier bei euch und möchte erstmal alle begrüßen! Ich hätte da mal eine Frage: Ich programmiere mit BlitzMax auf einem Mac. Jetzt möchte ich die Bildschirmauflösung ( Desktopauflösung ) ermitteln. Hoffentlich kann mir einer weiterhelfen. Auf jeden Fall schon mal Danke im voraus!!!! Gruß RayMan |
||
simi |
Sa, Mai 26, 2007 18:18 Antworten mit Zitat |
|
---|---|---|
https://www.blitzforum.de/foru...hp?t=18005 | ||
#ReaperNewsposter |
Sa, Mai 26, 2007 21:48 Antworten mit Zitat |
|
---|---|---|
Falls du MaxGUI hast kannst du auch einfach folgendes verwenden:
Code: [AUSKLAPPEN] ClientWidth(Desktop()) ClientHeight(Desktop()) Ganz simpel |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
RayMan |
So, Mai 27, 2007 16:22 Antworten mit Zitat |
|
---|---|---|
Danke für eure Hilfe !
@ Reaper Ich benutze MaxGUI mit deinem Code und er klappt in Windows auch gut aber auf einem Mac gibt es dabei ein Problem . Der Mac hat ein Dock das sich links oder unten befindet. Die Größe des Docks ist variabel. Dadurch verändern sich dann die Resultate deiner beiden Befehle . Wie ich das nun löse muß ich noch genau durchdenken . Gruß RayMan |
||
Dreamora |
So, Mai 27, 2007 19:27 Antworten mit Zitat |
|
---|---|---|
Inwiefern verändern sie sich?
Solange du nicht vollbild machst ist das das maximum was du rausholen kannst wie unter Windows auch, wenn du die Bar unter Windows ohne hide und mit "immer im vordergrund" geflagt hast auch. Weil dann halt einfach die nutzbare Desktop Grösse != reale Desktop grösse und was anderes bekommst du von fensterbasierenden Befehlen nicht zurück ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
#ReaperNewsposter |
So, Mai 27, 2007 19:41 Antworten mit Zitat |
|
---|---|---|
Dreamora hat Folgendes geschrieben: Inwiefern verändern sie sich?
Solange du nicht vollbild machst ist das das maximum was du rausholen kannst wie unter Windows auch, wenn du die Bar unter Windows ohne hide und mit "immer im vordergrund" geflagt hast auch. Weil dann halt einfach die nutzbare Desktop Grösse != reale Desktop grösse und was anderes bekommst du von fensterbasierenden Befehlen nicht zurück ... Das stimmt so scheinbar nicht. Bei mir ist die Taskleiste auch immer im Vordergrund und ohne AutoHide, und ich bekomm dennnoch die korrekte Höhe/Breite. Für mich ist da eher nur die Frage, wie man herausbekommen kann, wie hoch/breit die "nutzbare" Desktopfläche nun wirklich ist, um z.B. Fenster andocken zu lassen. |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Dreamora |
So, Mai 27, 2007 19:44 Antworten mit Zitat |
|
---|---|---|
Gut, unter Windows führts dazu das du falsche Angaben über die nutzbare Fläche bekommst, denn die Bar wird immer weggecuttet wenn sie im Vordergrund ist.
Unter OSX kannst du jedoch net einfach ma rasch das Dock austricksen, Apple forciert ihre Designstandards recht brutal seit Cocoa ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
RayMan |
So, Mai 27, 2007 19:56 Antworten mit Zitat |
|
---|---|---|
Ich schreibe ein Spiel im Vollbild Modus . Dafür brauche ich die Desktop Auflösung wegen der unterschiedlichen Zollgrößen der TFTs , da sonst das Bild nicht korrekt dargestellt wird .
Gruß RayMan |
||
Dreamora |
So, Mai 27, 2007 20:16 Antworten mit Zitat |
|
---|---|---|
Wie wärs mit der Möglichkeit das der User selbst auswählen kann und das dann speichern
Nicht jeder der 1680x1050 Auflösung hat hat auch eine Grafikkarte drin, die da 2D durch 3D mit vielen Sprites verträgt zb. Oder anders: nicht jeder User hat den Desktop auf der Auflösung die er zum spielen nutzt. Ich denke da zb an Dual Bildschirm Systeme mit Desktop span. Da bekommst du dann 3XXX breiten, wenn du damit versuchst ein Max2D Screen zu machen fliegt es dir um die Ohren denn DX7 hat zb keinen Multimonitor support |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
RayMan |
So, Mai 27, 2007 21:02 Antworten mit Zitat |
|
---|---|---|
Zitat: Wie wärs mit der Möglichkeit das der User selbst auswählen kann und das dann speichern
Wenn man mein Spiel startet kann man verschiedene Grundeinstellungen vornehmen u.a. auch die Bildschirmauflösung. Aber ich möchte das auch die Darstellung dieses Menü der Grundeinstellungen schon perfekt dargestellt wird. Ich bin jetzt auf die Idee gekommen mein Spiel erstmal mit 1024*768 ( Mindestvoraussetzung ) zu starten. Wenn man dann bei den Grundeinstellungen die Bildschirmauflösung ändert, wird diese Änderung direkt vorgenommen und gespeichert. D.h. auch die Darstellung des Einstellungsmenü wird direkt angepasst. Gruß RayMan |
||
d-bug |
Fr, Jun 01, 2007 19:06 Antworten mit Zitat |
|
---|---|---|
[Infomertial]
Und RayMan, hast du DesktopExtension mal ausprobiert? Da weiß ich dass es zumindest auf Windows einwandfrei funktioniert und über die Mac Version hab ich auch noch keine Klagen gehört. Vorteil dabei ist außerdem, dass es mehrere Desktops unterstützt. Link ist in meiner Signatur... [/Infomertial] |
||
RayMan |
Sa, Jun 02, 2007 16:14 Antworten mit Zitat |
|
---|---|---|
Hi d-bug
Zitat: Und RayMan, hast du DesktopExtension mal ausprobiert? Da weiß ich dass es zumindest auf Windows einwandfrei funktioniert und über die Mac Version hab ich auch noch keine Klagen gehört. Vorteil dabei ist außerdem, dass es mehrere Desktops unterstützt.
Ja aber MaxGUI und DesktopExtension arbeiten nicht richtig zusammen. Wenn ich DesktopWidth() benutze geht BlitzMax nicht mehr, deshalb habe ich DesktopExtension wieder gelöscht ! ( Nur auf dem Mac getestet ) Gruss RayMan |
||
d-bug |
Sa, Jun 02, 2007 19:01 Antworten mit Zitat |
|
---|---|---|
Hm, leider kann ich da nichts mehr dran ändern, weil derjenige, der die OSX-Version des Moduls programmierte mittlerweile kein BlitzMax mehr besitzt. Wahrscheinlich werde ich demnächst den OSX-Support dafür einstellen müssen, mangels OSX...
cheers |
||
RayMan |
Sa, Jun 02, 2007 19:25 Antworten mit Zitat |
|
---|---|---|
Hi d-bug !
Zitat: Hm, leider kann ich da nichts mehr dran ändern, weil derjenige, der die OSX-Version des Moduls programmierte mittlerweile kein BlitzMax mehr besitzt. Wahrscheinlich werde ich demnächst den OSX-Support dafür einstellen müssen, mangels OSX...
Das ist echt schade. Ich habe ja einen Mac. Wenn du eine Idee hast wie ich dir weiterhelfen kann, ohne großen Programmieraufwand für mich, dann werde ich das gerne tun. Ich kann mich da zeitlich nur nicht reinhängen da ich selber an einem zeitaufwändigen Projekt arbeite. Gruss RayMan |
||
d-bug |
Sa, Jun 02, 2007 20:23 Antworten mit Zitat |
|
---|---|---|
Da kannst du nur helfen, wenn du C kannst...
Für die Mac-Version gibt es nämlich extra eine kleine C Library, die die benötigten Funktionen beinhaltet. In der Beziehung mal ein Hoch auf Windows, da ging das ganze recht leicht per API zu bewerkstelligen. |
||
RayMan |
So, Jun 03, 2007 16:23 Antworten mit Zitat |
|
---|---|---|
Hi d-bug
Zitat: Da kannst du nur helfen, wenn du C kannst...
Für die Mac-Version gibt es nämlich extra eine kleine C Library, die die benötigten Funktionen beinhaltet. Ich habe vor Jahren mit C programmiert. Ich will mich da aber nicht mehr einarbeiten. C ist mir zu umständlich und zeitaufwändig... Zitat: In der Beziehung mal ein Hoch auf Windows, da ging das ganze recht leicht per API zu bewerkstelligen.
Das mit der API stimmt schon, sie ist nur leider nicht Plattform unabhängig. Gruß RayMan |
||
Dreamora |
Mo, Jun 04, 2007 8:55 Antworten mit Zitat |
|
---|---|---|
OS Kernbestandteile wird es auch nie OS unabhängig geben, das kann auch BM nicht, drum hats 3 (früher 4 bis OSX pre 10.3 gekickt wurde) verschiedene Systemimplementationen.
Entweder BM hat die Funktionalität oder du musst sie dir implementieren oder halt auf OSX verzichten. PS: Das mit "musst C nehmen" ist blödsinn. BM unterstützt auch objective C unter OSX. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
RayMan |
Do, Jun 21, 2007 19:02 Antworten mit Zitat |
|
---|---|---|
Nach längerer Zeit habe ich mir wieder etwas überlegt wie ich mein Problem lösen könnte.
Ich habe mir im Internet alle gängigen Monitor Auflösungen bis 30" herausgesucht und eine Liste davon erstellt. Mein Programm ermittelt die Grafikauflösungen die mir zur Verfügung stehen und vergleicht sie mit der von mir erstellten Liste. Mein Programm nimmt dann die höchste Auflösung bei der die Daten übereinstimmen. Und schwups, dürften bei einem TFT keine Verzerrungen mehr auftreten. Mir ist schon klar das die Sache nicht 100 %ig ist, aber ich finde es immer noch besser als wenn mein Spiel standartmäßig mit 1024*768 gestartet wird.... Sollte er keinen Abgleich bei der Grafikauflösung und meiner Liste finden, dann verwende ich eine Auflösung die der Monitor auf jeden Fall kann. Das muß ich aber noch programmieren.... Ich bin mich ja immer noch mit BlitzMAX am eingewöhnen, ich habe ja vorher mit Purebasic programmiert. Gruß RayMan Code: [AUSKLAPPEN] Local auf_liste_x[100]
Local auf_liste_y[100] Local speicher_x[100] Local speicher_y[100] Local TFT_X[20] Local TFT_Y[20] ' Die Monitor Liste TFT_X[0] = 2560 TFT_Y[0] = 1600 TFT_X[1] = 1920 TFT_Y[1] = 1200 TFT_X[2] = 1680 TFT_Y[2] = 1050 TFT_X[3] = 1280 TFT_Y[3] = 1024 TFT_X[4] = 1440 TFT_Y[4] = 900 TFT_X[5] = 1280 TFT_Y[5] = 800 TFT_X[6] = 1024 TFT_Y[6] = 768 ' ***** Monitor Aufloesung einlesen ***** For mode:TGraphicsMode=EachIn GraphicsModes() bildschrim_breite = mode.width bildschrim_hoehe = mode.height bildschrim_farben = mode.depth If bildschrim_breite >=1024 If bildschrim_hoehe >=768 If bildschrim_farben = 16 auf_liste_x[i] = bildschrim_breite auf_liste_y[i] = bildschrim_hoehe i=i+1 EndIf EndIf EndIf Next auf_bis = i-1 ' ***************************************** ' **** Doppelte aus der Liste löschen ***** i=0 For a=0 To auf_bis drin = 0 For b=0 To auf_bis If speicher_x(b) = auf_liste_x[a] If speicher_y(b) = auf_liste_y[a] drin = 1 EndIf EndIf Next If drin=0 speicher_x(i) = auf_liste_x[a] speicher_y(i) = auf_liste_y[a] i=i+1 EndIf Next For r=0 To i-1 auf_liste_x[r] = speicher_x(r) auf_liste_y[r] = speicher_y(r) Next auf_bis = r-1 ' ***************************************** ' **** Den besten Monitor nehmen ********* For i=auf_bis To 0 Step - 1 For r=0 To 6 If TFT_X[r] = auf_liste_x[i] If TFT_Y[r] = auf_liste_y[i] text$ = TFT_X(r)+ " "+TFT_Y(r) Goto test EndIf EndIf Next Next #test ' *************************************** ' ***** Liste zeigen ********************** For i=0 To auf_bis Print auf_liste_x[i]+" "+ auf_liste_y[i] Next ' ***************************************** Print "-----------------------------------" Print "Spiel Aufloesung :"+text |
||
shure_kyuNewsposter |
Di, Jul 03, 2007 13:22 Antworten mit Zitat |
|
---|---|---|
RayMan hat Folgendes geschrieben: Ich schreibe ein Spiel im Vollbild Modus . Dafür brauche ich die Desktop Auflösung wegen der unterschiedlichen Zollgrößen der TFTs , da sonst das Bild nicht korrekt dargestellt wird .
Gruß RayMan du willst vor dem spiel start die auflösung wissen ??? mach doch einfach eine standart audlösung zum anfang und später kann man in den einstellungen die auflösung wechseln ... !!! so machen das alle spiele fang mit 800x600 an !!! |
||
_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________ ◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de► ¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯ BBP-RSS FEED Halt dich auf dem laufenden! (C)Shure_kyu |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group