Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 07:57

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: SDL Startposition
BeitragVerfasst: Sa Jun 02, 2007 16:54 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
Weiss jemand von euch zufälligerweise, wie man eine Startposition in SDL festsetzen kann. Bei mir sollte der Client auf (0,0) starten und nicht irgendwo.

mfg

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 02, 2007 17:17 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Kein Befehl bekannt. Du musstest dir den HDC des Fensters holen und Windows sagen das es verschieben werden soll. Und dasselbe noch unter Linux implementieren.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 03, 2007 18:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 06, 2005 18:34
Beiträge: 362
Wohnort: Hamburg
Hi ...

ich hab das so gelöst:
erstmal musst du dir die Daten des Fensters hohlen:
Code:
  1.  
  2. SDL_SysWMinfo info;
  3. SDL_VERSION(&info.version);
  4. SDL_GetWMInfo(&info);
  5.  


dann kannste je nach plattform anhand der Daten dein Fenster positionieren:
Code:
  1.  
  2. void SDL_Window::SetPos(int x,int y)
  3. {
  4. #ifdef WIN32
  5.     SetWindowPos(info.window,NULL,x,y,0,0,SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW);
  6. #else
  7.     info.info.x11.lock_func();
  8.     XMoveWindow(info.info.x11.display,info.info.x11.wmwindow,x,y);
  9.     info.info.x11.unlock_func();
  10. #endif
  11. }
  12.  


Musste dir mal in der Doku anschaun wie das alles aussieht ...

Gruß
Shai

_________________
Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 03, 2007 20:36 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Ich hab zu gleichmal noch ne Frage:
Wenn ich bei mir mit SDL Fullscreen aktiviere und mein Fenster ursprünglich eine Auflösung von 200*200 hat, dann behaelt es diese Auflösung beim Fullscreen bei.

Erste Frage: Ist das normal so?


Dass das nicht passiert, setzt ich vor dem Fullscreenmode die Fenstergroesse immer auf die aktuelle Auflösung des Bildschirms. Dazu benutze ich:
Code:
  1.   fParentHandle   := GetDesktopWindow();
  2.  
  3.   GetWindowRect(fParentHandle, fParentWindowRect);


Dann steht in fParentWindowRect die Position und die Größe des Dektops und damit eben auch die Auflösung. Dann kann ich mein Fenster anpassen und alles ist wunderbar. Das Problem ist allerdings, dass bei dieser Funktion fParentWindowRect von Typ TRect sein muss, und auf den Würd ich gern verzichten. Meine eigenen Typen gehen da ja nich, also wollt ich wissen, ob es eine andere möglichkeit gibt, mit SDL an die Auflösung des Bildschirms zu kommen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 04, 2007 00:58 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
SDL_GetVideoInfo + SDL_VideoInfo
Und eine Liste aller Modi:
SDL_ListModes

Und die Frage mit dem Normal beantworte ich mit einer Gegenfrage:
Wieso sollte eine andere Auflösung als die gewollte und eingestellte benutzt werden?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 04, 2007 13:02 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Habs jetzt:
Code:
  1.  
  2. AvailableVModes: PPSDL_Rect;
  3.  
  4.  AvailableVModes := SDL_ListModes(nil, SDL_FULLSCREEN or SDL_HWSURFACE);
  5.  
  6.  
  7.     fScreenWidth  := (AvailableVModes^)^.w;
  8.     fScreenHeight := (AvailableVModes^)^.h;
  9.  



Mit der Auflösung: Ich dachte halt, dass automatisch beim Fullscreenmode die höchste angenommen wird, aber man kann es ja auch selber machen ^^


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]