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

Aktuelle Zeit: Mi Jul 16, 2025 16:41

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Dez 18, 2010 16:04 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
Hallo ..
habe eine kurze Verständnisfrage zu den normalen Delphi- und den DGL-Variablen.
Gehe ich richtig in der Annahme, dass die Delphi Variablen wie z.B. Double im RAM adressiert werden und die DGL-Variablen wie GLdouble im Speicher der Grafikkarte?
Gruss Jens


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Dez 18, 2010 16:16 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
Nein. GLdouble ist genau das gleiche wie double und wird im RAM gespeichert. steht auch im DGL-Header:
Code:
  1. type
  2. // ...
  3. GLdouble = Double;


Zuletzt geändert von mrtrain am Mi Aug 31, 2011 21:07, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Dez 18, 2010 16:32 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
Stimmt! :shock:
Danke. Hatte ich übersehen.
Warum wird das dann überhaupt gemacht? Man könnte doch auch die Delphi-Variablen nehmen?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Dez 18, 2010 16:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Warum wird das dann überhaupt gemacht? Man könnte doch auch die Delphi-Variablen nehmen?

OpenGL kommt aus der C-Welt. In C ist z.B. "int" der Integer-Datentyp der von der CPU nativ unterstützt wird und daher nicht simuliert werden muss. Auf den "normalen" Platformen (i686 oder x64_86) entspricht zwar "int" eigentlich immer einem 32bit Integer, aber auf exotischen Platformen (etwa Handy oder so) könnten es durch aus auch mal nur 16bit sein. Wenn du GLint benutzt kannst du sicher sein, dass es sich um einen 32bit Integer handelt.

Ein anderes Beispiel wäre z.B. GoogleWebToolkit. Das simuliert den Java-Typ "float" (aka Single in Delphi) in dem es "double" benutzt, da es in JavaScript eben kein Float gibt.

=> Wenn du GLdouble benutzt kannst du dich darauf verlassen, dass es sich um ein 64bit-Double nach IEEE Standard handelt. Natürlich immer vorausgesetzt dein Header ist für deine Platform geeignet.

Da Delphi nur unter Windows läuft ist das ganze hier natürlich relativ egal. Aber der Header geht ja auch für FreePascal und da kann die Sache wieder anders aussehen. Z.B. gibt es auch FreePascal für Sparc oder ARM Prozessoren. Ich habe davon keine Ahnung, aber falls es da Unterschiede gibt braucht man im Header nur schnell GLdouble umdefinieren und nicht den kompletten Header neu schreiben.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Dez 18, 2010 16:58 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
Okay, hatte gar nicht solch eine ausführliche Antwort erwartet, aber jetzt ists mir klar. :wink:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Dez 18, 2010 17:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jul 23, 2009 04:33
Beiträge: 157
Programmiersprache: Turbo Delphi Pro
Lehrreich ist es sich auch die abweichungen zwischen OpenGL (bzw C) und Delphi einzuprägen
Code:
GLbyte = Shortint
GLshort = SmallInt
GLubyte = Byte
GLushort = Word


Gerade mit GLbyte und GLshort kann man doch böse auf die Schnauze fallen ;)

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)


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 » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 3 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 | 15 Queries | GZIP : On ]