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

Aktuelle Zeit: Mo Okt 26, 2020 02:26

Foren-Übersicht » DGL » Feedback
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Do Jan 16, 2014 18:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 573
Programmiersprache: C++
Moin,
ich habe mal zwei Fragen/mögliche Probleme zum DGL-Header:
  • Sehe ich das richtig, dass die Funktion CreateRenderingContextVersion nur unter Windows zur Verfügung steht?
  • In der Doku (beiliegende HTML-Datei) des Headers steht folgendes Code-Beispiel:
    Code:
    1. procedure MyGLInit;
    2. begin
    3.   InitOpenGL; // Don't forget, or first gl-Call will result in an access violation!
    4.   MyDC := GetDC(...);
    5.   MyRC := CreateRenderingContext(...);
    6.   RC := CreateRenderingContextVersion(DC, [opDoubleBuffered], 4, 2, True, 32, 24, 8, 0, 0, 0); // Creates an OpenGL 4.2 forward-compatible context
    7.   ...
    8. end;
    Für mich sieht das nach einem Fehler aus. In Zeile 5 wird ein alter RC erstellt. Dieser wird nicht weiter benutzt. Wenn man sich den Rumpf der Funktion CreateRenderingContextVersion anschaut, so wird dort bereits ein LegacyRC erstellt. Somit müsste Zeile 5 eigentlich unnötig sein.

Edit: Und noch was:
mathias hat geschrieben:
Wieso steht einmal RC und einmal MyRC ?
Das "My" bei MyDC müsste auch weggenommen werden, damit Zeile 4 und 6 zusammen passen.

Also letztendlich müsste das Code-Beispiel wohl so aussehen:
Code:
  1. procedure MyGLInit;
  2. begin
  3.   InitOpenGL; // Don't forget, or first gl-Call will result in an access violation!
  4.   DC := GetDC(...);
  5.   RC := CreateRenderingContextVersion(DC, [opDoubleBuffered], 4, 2, True, 32, 24, 8, 0, 0, 0); // Creates an OpenGL 4.2 forward-compatible context
  6.   ...
  7. end;

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Mo Jan 20, 2014 20:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5811
Programmiersprache: C++
glAwesome hat geschrieben:
Moin,
ich habe mal zwei Fragen/mögliche Probleme zum DGL-Header:[list][*]Sehe ich das richtig, dass die Funktion CreateRenderingContextVersion nur unter Windows zur Verfügung steht?

Ja, ich hab irgendwo auf der Platte auch eine Version die auch für Linux und MacOSX (halt mit FPC) "funktioniert" (nicht ausgiebig getestet). Momentan bin ich zeitlich aber stark eingeschränkt, und wenn ich privat zum Entwickeln komme, dann Android. Mit Delphi hab ich privat seit Monaten nix mehr gemacht. Wer also was zum DGL-Header beisteuern will kann das gerne machen. Hätte natürlich auch kein Problem damit den in unser git-Repo zu packen.

glAwesome hat geschrieben:
[*]In der Doku (beiliegende HTML-Datei) des Headers steht folgendes Code-Beispiel:...

Ja, das was du schreibst ist vollkommen korrekt. Das entstand damals in Eile, die Doku müsste auch angepasst werden. Aber k.a. wann ich dazu komme...

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Mo Jan 20, 2014 20:53 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 573
Programmiersprache: C++
Die Änderung in der HTML-Datei ist ja wirklich nur Copy&Paste. Also habe ich sie kurzerhand mal angepasst und mit der unveränderten dglOpenGL.pas wieder gezippt. Ergebnis ist im Anhang - leider konnte ich im Wiki nicht finden, wo man die Originaldatei austauscht.

Bei der Linuxversion der CreateRenderingContextVersion-Funktion kann ich leider nicht helfen, da ich weder Linux noch einen Pascalcompiler habe.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Zuletzt geändert von glAwesome am Mi Jan 22, 2014 18:26, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Mo Jan 20, 2014 21:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 573
Programmiersprache: C++
Mir ist noch was aufgefallen:
In meinen Programmen erzeuge ich zuerst DC und GC und dann erst rufe ich glewInit/gl3wInit oder was auch immer (hier: InitOpenGL) auf. Ist es korrekt, das wie im Beispiel umzukehren? Damit würden ja z.B. Functionpointer von OpenGL3/4-Funktionen abgefragt, bevor ein GL3/4-Kontext existiert. Ich bin mir da gerade nicht sicher.

Edit: Hab gerade nochmal nachgeschaut: Bei GLEW wird explizit gefordert, dass der OpenGL-Context bereits zur Verfügung stehen muss, wenn glewInit() aufgerufen wird. mathias hat diese Reihenfolge nun außerdem mit dem DGL-Header getestet und dadurch keine Fehler bekommen. Daher hier die neuere Version.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Zuletzt geändert von glAwesome am So Apr 06, 2014 13:01, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: So Jan 26, 2014 22:14 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1210
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Die Zeile mit InitOpenGL braucht es nicht unbedingt.
In dglOpenGL.pas wird dies aufgerufen, Zeile 19909.

Code:
  1. function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
  2. const
  3.   OBJ_MEMDC          = 10;
  4.   OBJ_ENHMETADC      = 12;
  5.   OBJ_METADC         = 4;
  6.   PFD_DOUBLEBUFFER   = $00000001;
  7.   PFD_STEREO         = $00000002;
  8.   PFD_DRAW_TO_WINDOW = $00000004;
  9.   PFD_DRAW_TO_BITMAP = $00000008;
  10.   PFD_SUPPORT_GDI    = $00000010;
  11.   PFD_SUPPORT_OPENGL = $00000020;
  12.   PFD_TYPE_RGBA      = 0;
  13.   PFD_MAIN_PLANE     = 0;
  14.   PFD_OVERLAY_PLANE  = 1;
  15.   PFD_UNDERLAY_PLANE = LongWord(-1);
  16.   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
  17. var
  18.   PFDescriptor : TPixelFormatDescriptor;
  19.   PixelFormat  : Integer;
  20.   AType        : DWORD;
  21.   LegacyRC     : HGLRC;
  22.   Attribs      : array of Integer;
  23. begin
  24.   if GL_LibHandle = nil then
  25.     InitOpenGL;
  26.  
  27.   if not Assigned(GL_LibHandle) then
  28.     raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');  
  29. ....

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: So Apr 06, 2014 13:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 573
Programmiersprache: C++
Es wurde noch ein Fehler im DGL-Header gefunden. Der dritte Parameter von glGetProgramInfoLog war fälschlicherweise als GLint statt PGLsizei deklariert. Die offizielle OpenGL-Seite ist derzeit leider nicht erreichbar, aber die Version im Google-Cache bestätigt, dass es sich nicht um einen Fehler in unserem Wiki handelt.

Im Anhang befindet sich die korrigierte Version des Headers. Allerdings wäre es mMn langsam mal Zeit, dies auch in die offizielle Version des Headers zu übernehemen.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: So Apr 06, 2014 14:49 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5811
Programmiersprache: C++
Ich schaus mir die Tage an, komme momentan eher weniger privat zum Coden.

Allerdings will ich den Header eh schon seit geraumer Zeit irgendwo einem öffentlichen Repo hochladen, an dem ihr dann auch Änderungen vornehmen könntet. Irgendwelche Vorschläge? Ich nutze privat BitBucket (git).

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: So Apr 06, 2014 16:14 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ein DGL-Git-Repository! Gibts bei mir per PM mit SSH-PubKey und Reponamen.

grüße

_________________
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  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: So Apr 06, 2014 19:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5811
Programmiersprache: C++
Lord Horazont hat geschrieben:
Ein DGL-Git-Repository! Gibts bei mir per PM mit SSH-PubKey und Reponamen.

grüße


I know, ich hätt die Header aber lieder auf einer der großen Quellverwaltungs-Plattformen, allein wegen der Sichtbarkeit und der größeren Zielgruppe. Ich kenn einige nicht-DGLler die auch zum Header beigetragen haben und es ggf. auch wieder tun würden, da ist mir unser GIT irgendwie zu versteckt.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Mo Apr 07, 2014 18:08 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich nutze für die „Veröffentlichung“ github, möchte aber auf lange sicht davon weg. Gibt es denn leute, die ohne vorherige Bekanntmachung beigetragen haben? Wenn nein, ergibt das auch nicht viel sinn, das auf github zu packen.

Ansonsten wäre auch noch die Option, das Repository von DGL auf Github zu replizieren. Summa sumarum fände ich es recht gut, wenn github nicht das einzige öffentliche Repository wäre, da github nunmal eine kommerzielle cloud-Firma ist.

grüße

_________________
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  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Mo Apr 07, 2014 18:28 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1212
Programmiersprache: Delphi/FPC
Hey,

ich würde es auf alle Fälle parallel bei uns hosten, bin da der selben Meinung wie Lord Horazont, allerdings hat Sascha auch nicht ganz Unrecht, denn auf github könnten auch Andere durch Zufall auf unseren Header aufmerksam werden und dann dort ggf. bei der Implementierung helfen oder nachbessern (entsprechende Schreibrechte vorrausgesetzt).
Was das erstellen des Context unter Linux angeht. Der glContext kann das *werbung mach* ;)

MfG Bergmann

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Di Apr 29, 2014 17:31 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 573
Programmiersprache: C++
Die Diskussion ist ja zum Erliegen gekommen. Ich würde mich auch dafür aussprechen, sich nicht von einem einzelnen Unternehmen wie github abhängig zu machen. Wir sollten allerdings nicht den Fehler machen, nichts zu tun, nur weil nicht jeder der gleichen Meinung ist. In ein paar Wochen wird voraussichtlich das erste OpenGL3-Tutorial fertig sein. Es wäre schade, wenn dort ein absichtlicher Bug drin wäre, um einen Workaround für einen Fehler im DGL-Header zu haben.

Nebenbei ist mir noch aufgefallen, dass es cool wäre, den Header in einem Modus betreiben zu können, in dem nur nicht-deprecated Functions geladen werden. Also so ähnlich wie gl3w.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Di Apr 29, 2014 19:05 
Offline
DGL Member

Registriert: Do Dez 29, 2011 19:40
Beiträge: 421
Wohnort: Deutschland, Bayern
Programmiersprache: C++, C, D, C# VB.Net
Reicht es nicht wenn man einen normalen Core Context erstellt der auch bei jedem Zugriff auf deprecated Funktionen eine Exception wirft? GL3W lädt nämlich leider auch keine Extensions und da sind einige schon relativ obligatorisch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Mi Apr 30, 2014 19:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5811
Programmiersprache: C++
Die neue Version hab ich grade auf den dgl-FTP hochgeladen. Nochmal dank an glAwesome für die Fixes!

Wobei mir grade aufgefallen ist dass wohl noch einige GL 4.4 Konstanten fehlen z.B. GL_MAX_SPARSE_TEXTURE_SIZE_ARB. Ich schau da im Zuge einer neuen glCapsViewer-Version mal nach, kann also sein dass es bald wieder nen aktualisierten Header gibt.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [DGL-Header] Kontext-Erstellung
BeitragVerfasst: Mi Apr 30, 2014 20:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 573
Programmiersprache: C++
Sorry, dass mir das erst jetzt auffält: Wir haben das gleiche Problem auch nochmal bei glGetShaderInfoLog... :oops:

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » DGL » Feedback


Wer ist online?

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