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

Aktuelle Zeit: Fr Aug 01, 2025 20:59

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: 2D Scene ca 20 Pixel zu hoch
BeitragVerfasst: So Sep 19, 2004 12:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 09, 2003 19:00
Beiträge: 15
Hallo,

ich bin derzeit dabei meinen 2D Map-Editor von DirectDraw auf OpenGL umzustellen. Meine Testings haben ergeben das OGL um einiges schneller ist als DirectDraw, ausserdem hat es schöne features wie Alpha-Blending usw, darum möchte ich lieber OGL nutzen :)

Ein Problem was ich dabei festgestellt habe, ist das die Scene zirka 20 Pixel zu hoch ist. Wenn ich ein Quad an XY=0,0 rendere, ist das Quad 20 Pixel zu weit oben, als wäre es an XY=0,-20. Wobei sich die 20 Pixel auf die Höhe der Titelleiste von den Fenster beziehen. Ich kann zwar die Position mittels glOrtho an die richtige Position setzten, aber da die Titelleiste unter z.B. Win2k und WinXP (mit Theme) unterschiedliche Höhen hat, ist das Ergebnis nicht zufriedenstellend.

Wenn ich den BorderStyle vom Formular auf bsNone stelle, ist es so wie ich es wünsche. Nur möchte ich die Titelleiste schon noch haben.

Hat jemand eine Idee wie ich das Problem lösen kann?

Danke im Vorraus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 19, 2004 12:54 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
als höhe "ClientHeight" anstatt "Height" verwenden ;)

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 19, 2004 13:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 09, 2003 19:00
Beiträge: 15
Fiji-Fighter hat geschrieben:
als höhe "ClientHeight" anstatt "Height" verwenden ;)


Das ist es leider nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 19, 2004 13:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich tippe mal darauf dass du ohne API rendertst? Denn wenn du es via VCL machst, bekommst du mit Rect(0,0,ClientWidth,ClientHeight) genau den Bereich im Rand des Fensters, und musst dich nicht um die Ausmaße der Ränder bzw. der Titelleiste kümmern. Für die API gibts AFAIK auch einen passenden Befehl mit dem man die Clientarea ermitteln kann, aber den Namen der Funktion hab ich leider nicht parat.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 19, 2004 13:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 09, 2003 19:00
Beiträge: 15
Hallo,

das Testprojekt ist VCL. Ich nutze auch ClientWidth und ClientRect. :?

Ich habe das Beispiel mal hier hochgeladen. Falls jemand mal ein Blick riskieren mag, wäre das super.


Danke im Vorraus.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 19, 2004 14:26 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
na, danns chau dir mal die onResize-Methode an ;-)
wenn du sie so abänderst (wie vermutet fälschlicherweise ein Height anstatt Clientheight), dann funktioniert es:
Code:
  1. procedure TForm1.FormResize(Sender: TObject);
  2. begin
  3.   FRenderer.Resize(ClientWidth, ClientHeight);
  4. end;

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 19, 2004 14:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 09, 2003 19:00
Beiträge: 15
Ahh verdammt, ich bin ein Superhirni .. ich Honk :?

Alles klar, danke!


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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.007s | 14 Queries | GZIP : On ]