Monitor Auflösung heraus finden (Für Mac)

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

RayMan

Betreff: Monitor Auflösung heraus finden (Für Mac)

BeitragSa, Mai 26, 2007 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Mai 26, 2007 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...hp?t=18005
 

#Reaper

Newsposter

BeitragSa, Mai 26, 2007 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls du MaxGUI hast kannst du auch einfach folgendes verwenden:

Code: [AUSKLAPPEN]

ClientWidth(Desktop())
ClientHeight(Desktop())


Ganz simpel Wink
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

BeitragSo, Mai 27, 2007 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Mai 27, 2007 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
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.
 

#Reaper

Newsposter

BeitragSo, Mai 27, 2007 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Mai 27, 2007 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Mai 27, 2007 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Mai 27, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs mit der Möglichkeit das der User selbst auswählen kann und das dann speichern Smile

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

BeitragSo, Mai 27, 2007 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Jun 01, 2007 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
[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

BeitragSa, Jun 02, 2007 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jun 02, 2007 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
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... Very Happy

cheers
 

RayMan

BeitragSa, Jun 02, 2007 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jun 02, 2007 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Da kannst du nur helfen, wenn du C kannst... Smile
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

BeitragSo, Jun 03, 2007 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jun 04, 2007 8:55
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Jun 21, 2007 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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_kyu

Newsposter

BeitragDi, Jul 03, 2007 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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 !!!


Very Happy

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄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

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group