DGL
https://delphigl.com/forum/

dglOpenGL.pas ist jetzt in C erhältlich
https://delphigl.com/forum/viewtopic.php?f=21&t=4216
Seite 1 von 1

Autor:  sniper [ So Mai 29, 2005 11:04 ]
Betreff des Beitrags:  dglOpenGL.pas ist jetzt in C erhältlich

Hi,
Es hat ein Paar Tagen gedauert, aber jetzt ist es fertig. Es gibt noch eine Funktion die ich nicht übersetzt habe, die Funktion:
Code:
  1.  procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
. Die Folge ist, dass die Variablen GL_VERSION_N_N und GLU_VERSION_N_N alle auf FALSE gesetzt sind. Ich werde mich bemühen so, schnell wie möglich (einer hat gesagt, dass dies eine gefährliche Aussage ist ;) ), die Funktion zu übersetzen.
Leider läuft deise Version nur unter Win32, und alle wglXXX Funktionen heissen ab sofort _wglXXX ;). Es seiht so aus als wären sie schon in windows.h mit dabei.
Und so funktioniert das Ganze (mit MS VS C++ 6 Standard Edition getestet) :
Ein leeres Projekt (Win32) öffnen und die Dateien "dglOpenGL.h" und "dglOpenGL.c" zum Projekt hinzufügen ( Project/Add/Files...). Dann wieder eine leere Datei offnen, die z.B. heisst "main.c" und zum Projekt hinzufügen (falls es nicht automatisch gemacht wird). In "main.c" muss man nur noch "#include "dglOpenGL.h" " reintippen und das war´s. Also, brauch man nicht mehr die 2 Zeilen:
Code:
  1.  
  2. #include <gl/gl.h>
  3. #include <gl/glu.h>
  4.  

Alle Boolean Variablen , Extensionen, heissen jetzt ext_OLDNAME.

Alle von dglOpenGL.pas bekannten Funktionen sind hier auch erhältlich (InitOpenGL, CreateRenderingContext...).

Um eine aAndere Bibliotek zu laden, muss man in dglOpenGL.h folgenden Zeilen entsprechend ändern:
Code:
  1.  
  2. #define LibName "OpenGL32.dll"
  3. #define GLULibName "GLU32.dll"
  4.  


CreateRenderingContext ist jetzt so deklatiert :
Code:
  1. HGLRC CreateRenderingContext(  
  2.             HDC DC,
  3.             int Options,
  4.             int ColorBits,
  5.             int ZBits,
  6.             int StencilBits,
  7.             int AccumBits,
  8.             int AuxBuffers,
  9.             int Layer);

Und Aufruf sieht dann so aus :
Code:
  1.  
  2.  MyRC = CreateRenderingContext( MyDC, [b]opDoubleBuffered | opGDI[/b], 24, 8, 8, 0, 0, 0);
  3.  


Jetzt brauche ich eure Feedback um eventuelle Fehler zu beheben (die gibt es Bestimmt, nehme ich an ;) ).

Dateianhänge:
DGL.zip [73.04 KiB]
601-mal heruntergeladen

Autor:  Flash [ So Mai 29, 2005 12:01 ]
Betreff des Beitrags: 

Hmmmm....mal ne dumme Frage: Wieso braucht ein C/C++ler unseren Header?

Is ja nicht so das die so arm dran wären und keine Header hätten? NEIN! Die griegen die direkt von der Quelle! Also wieso ist das für die besser den DGL-C-Header zu benutzen? Glaube(!) nicht, dass das in der C Gemeinde jemanden vom Hocker reist.

jm2c :roll:

Autor:  sniper [ Mo Jul 18, 2005 00:11 ]
Betreff des Beitrags: 

Wieso? Weil die gl/glu Funktionen dynamisch geladen werden, so wie es sein sollte. Das ist ein Grund genug für mich.

Autor:  La Boda [ Mo Jul 18, 2005 09:24 ]
Betreff des Beitrags: 

Naja, ich denke mal, ein CGL-Header (Tata tata tusch tusch) kann nicht schaden, vielleicht sogar aus Werbezwecken für uns. Ich mein, wenn unser Header wirklich so gut ist, dass er sich verbreitet, dann wird sich der ein oder andere C`ler bestimmt überlegen, warum sein Lieblings-Header von der Delphi-Community kommt. Ich habe mal ne Zeit lang auch C/C++ geproggt, und das Header-Wirrwarr ist da total chaotisch, musste, während ich an einem Projekt gearbeitet habe, fünfmal(!) den Header wechseln.
Auf jedem Fall schöne Arbeit sniper!

Autor:  Arno [ Mo Jul 18, 2005 09:34 ]
Betreff des Beitrags: 

Immerhin sind alle Extensions auf einem Haufen, ohne dass man sich da mit inkompatiblen Headern rumschlagen müsste... Find ich auf jeden Fall nicht uninteressant.

Autor:  Frase [ Mo Jul 18, 2005 14:47 ]
Betreff des Beitrags: 

Etwas befremdlich wirkt das Ganze aber schon... DGL-Header für C. ^^

Autor:  luketheduke [ Mo Jul 18, 2005 15:31 ]
Betreff des Beitrags: 

tja, das ist wohl porting in seiner reinsten form, wenn auch einer unerwarteten! :mrgreen:
von c nach delphi nach c...

ich frag mich, wann die ersten in der c-welt ausgelacht werden, weil sie einen delphi-header verwenden. und vor allem wann die ersten ausgelacht werden, weil sie die standard-header verwenden! :twisted:

Autor:  geo [ Mo Jul 18, 2005 17:36 ]
Betreff des Beitrags: 

Naja, wenn nun ein DGLer in C rumprobieren will, ist der Header doch echt super oder? (Hatte ich irgendwann mal vor gehabt)

Autor:  Frase [ Mo Jul 18, 2005 18:15 ]
Betreff des Beitrags: 

Irgendwie scheint der Schuss mit dem DGL-Header nach hinten los zu gehen... 8)

Autor:  Speedmaster [ Mo Jul 18, 2005 18:38 ]
Betreff des Beitrags: 

Wieso nicht in C#? :(

Autor:  Frase [ Di Jul 19, 2005 06:58 ]
Betreff des Beitrags: 

@sniper_w: Zwecks Fehler im Header:
Fehler #1 ist ganz klar, dass der Header nur unter Win32 funktioniert. Damit hast du nämlich schonmal einen der Vorteile vom DGL-Header und von OpenGL zunichte gemacht, nämlich die Verfügbarkeit auf anderen Systemen.
Fehler #2: Du verwendest C, C++??? Bist du des Wahnsinns? :mrgreen:

Nachtrag zu Fehler #2: Wenn es wenigstens C# wäre, dann wär das ja nicht so schlimm. Aber C / C++... in einem Delphi-Forum.... ;)

Fehler #3: Die Namensänderung der wgl-Routinen.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/