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

Aktuelle Zeit: Mi Apr 24, 2024 16:25

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



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Dez 03, 2014 23:14 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
ich versuch gerade den neunen 4.4 Header zu implementieren.
Dabei ist mir aufgefallen, das glDepthMask(GL_False) nicht funktioniert.
=> [DCC Fehler] Unit1.pas(190): E2010 Inkompatible Typen: 'ByteBool' und 'Integer'

Laut Wiki sollte dies aber so gehen (und mit den uralt Headern von M. Lischke geht das auch). Was mach ich denn falsch?

user69


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Dez 04, 2014 11:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
glDepthMask(True) sollte gehen.

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Dez 04, 2014 11:21 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
ist das dann ein Fehler im Header?

Laut Sepc und Wiki ist das ja GL_True


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Dez 04, 2014 13:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
An sich ja, evtl. werde ich das bei Gelegenheit mal fixen.

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Dez 04, 2014 18:42 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
Somit wäre folgendes im Header zu ändern:
GLboolean = BYTEBOOL;
zu ersetzen durch
GLboolean = UCHAR;

Ist das korrekt? (So war es in der M. Lischke Version)?
Die hat aber einen Einfluss auf viele andere Funktionen in dem Header - scheint dort aber auch korrekt zu sein.

User69


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Dez 04, 2014 18:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Sollte man nicht eher GL_TRUE und GL_FALSE als ByteBools definieren? ByteBool ist ja der korrekte Pascal-Typ für das was da gefragt ist.

viele Grüße,
Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Dez 04, 2014 21:12 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
Ja, klingt logisch.
Also muss es heißen:
GL_TRUE: ByteBool = True;
GL_FALSE: ByteBool = False;

Weiterhin ist dann noch folgendes geändert werden:
GLU_TRUE: ByteBool = True;
GLU_FALSE: ByteBool = False;



Es gibt aber noch einen weitere Fehler/Verbesserungen:

1.)
{$IFDEF CPU386}
Set8087CW($133F);
{$ENDIF}
Hier fehlt die 64 Bit Variante (und das wird benötigt):
SetExceptionMask([exInvalidOp..exPrecision]); // disable all FP

2.)
Folgendes sollte aus Kompatibilitätsgründen ergänzt werden
unter: // Datatypes corresponding to OpenGL12.pas for easy porting
TVector3f = TGLVectorf3;

3.)
Folgendes gibt in Windows eine Compiler Warnung (das stört leider durchaus)
Result := nil; in dglGetProcAddress Line 14875

User69


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Dez 06, 2014 12:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Danke für die Korrekturen, habe den Header aktualisiert (Commit) : https://bitbucket.org/saschawillems/dglopengl/overview

Den letzten Punkt kann ich mit der letzten Version nicht nachvollziehen, die Warnung wurde afair bereits mit einem vorherigen Commit korrigiert.

Hinweis : Da ich kein Delphi mehr nutze habe ich nur mit FPC getestet (Win32 und Win64). Wäre toll wenn jemand mit nem aktuellen Delphi mal kurz testen könnte obs klappt.

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Dez 06, 2014 13:13 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
Danke @Sasha.

Habs getestet. Du hast recht, Die Warnung ist weg (ich habe mit Header 4.4 Download von DelphiGL gearbeitet).

Aber trotzdem hast du einen Fehler drin:

Dein Code (die 64 Bit Sahleife wird nie ausgeführt):
{$IFDEF CPU386}
Set8087CW($133F);
{$IFDEF DGL_64BIT}
SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide,exOverflow, exUnderflow, exPrecision]);
{$ENDIF}
{$ENDIF}

Dann eher so:
{$IFDEF CPU386}
Set8087CW($133F);
{$ENDIF}
{$IFDEF DGL_64BIT}
SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide,exOverflow, exUnderflow, exPrecision]);
{$ENDIF}

User69


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Dez 06, 2014 15:18 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
Noch eine Sache:

Die Definition PPointer und PCardinal ist ja ab Delphi7 nicht mehr nötig.
Deren definition führt aber leider in höheren Delphi zum Mix der Typen (mal von System, mal von OpenGL)
Ich würde vorschlagen diese Typen nur für die zu definieren, die sie auch brauchen. z.B.:

{$IFDEF DELPHI6_AND_DOWN}
// Needed for Delphi 6 and less (defined in system.pas for Delphi 7)
PPointer = ^Pointer;
PCardinal = ^Cardinal;
{$ENDIF}

Usser69


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Dez 07, 2014 10:35 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Danke für den Hinweis, die Änderungen hab ich eingecheckt.

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


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 54 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.269s | 19 Queries | GZIP : On ]