Jetzt lehne ich mich mal ganz weit aus dem Fenster und frage mal, ob für mich ein Umstieg von Delphi auf C++ mit OpenGL einfach ist? Zur Zeit sehe ich mich in folgender Situation: Ich bin totaler OpenGL Neuling und starte mit OpenGL unter Delphi (Delphi benutze ich seit 6 Jahren), weil ich für meine Firma ein Visualisierungsprogramm schreiben will. Andererseits muss ich in genau einem Jahr für die Uni OpenGL unter C++ programmieren können, also lerne ich seit zwei Wochen C++. Sobald ich OpenGL einigermassen beherrsche, kann ich dann einfach meine Befehle nehmen und sie unter C++ benutzen? Sind das dann dieselben Befehle? Oder hängt das von der OpenGL-Unit ab, weil unter C++ wirds ja keine dglOpenGL.pas geben. Auch die Inits (sei es API oder VCL) werden anders sein. Kennt sich jemand mit diesem Thema aus?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Da die OpenGL-API unabhängig von der verwendeten Programmiersprache ist spielt es keine Rolle ob du die GL unter Delphi, C, C++, C#, oder sonst was nutzen tust. Alles rundherum (RC erstellen, etc.) ist je nach Sprache leicht anders hat ja aber auch nix mit OpenGL im eigentlichen Sinne zu tun. Sowas wie die VCL, die viele Sachen vereinfacht wirst du aber nicht finden.
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Also solange Du nur OpenGL betrachtest, kannst Du fast bedenkenlos jede Sprache nehmen. Abweichen tut vielleicht die Art, wie man sich das Pixelformat zulegt, aber jeder von uns hier wird in der Lage sein OpenGL unter Java zu schreiben, sofern man ihn dafür ein vernünftiges Fenster initalisiert. Sehe da alles eigentlich keine Bedenken.
Gerade, wenn Du vielleicht noch beim initalisieren SDl nimmst, wirst Du weitesgehend mit einem Copy&Paste auskommen. Sicherlich in C/C++ heißen einige Variabentypen anders und statt einem 1.0 musst Du ein "1.0f" nutzen, aber ich denke, dass sind keine wirklichen Herausforderungen Die Header machen übrigens auch nichts anderes als die entsprechenden DLL-Aufrufe "weiterzuleiten". Du würdest dann eben nicht die dglOpenGL.pas nutzen, sondern gl.h und glu.h. Und soweit mein ungeschultes Auge es beurteilen kann, werden da zur dglOpenGL.pas keine größeren Unterschiede sein.
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Die API Initialisierung ist identisch, die Befehle sind identisch, nur die einzubindenden Units nicht. Das heisst für dich: So gut wie alles was du unter Delphi für OpenGl schreibst, sieht in C++ fast genauso aus ( abgesehen von irgendwelchen erzwungenen Klammern bei Funktionsaufrufen, etc. ). Die API-Initialisierung läuft unter Cpp auch sehr ähnlich ab, kannst dir ja mal die ersten Tutorials bei nehe.gamedev.net anschauen. Ob du nun OpenGl mit Delphi oder Cpp lernst ist ziemlich egal, die Unterschiede sind verschwindend klein - abgesehen von den Sprachen slbst natürlicht. Aber OpenGl Code von Delphi nach C und umgekehrt zu portieren ist echt kein Problem.
Das einzigste "Problem" das du bekommen wirst, ist das umständliche Handling mit H und C/CPP Datei, die Tastsache das Variablen über das gesamte Objekt 'nen Eindeutigen Namen haben müssen, das Float-Werte immer die Endung f benötigen (1.243f) und die anderen C/C++ speziefischen "schwierigkeiten" (aus Delphi-Sicht gesehen). Was OpenGL angeht: die Standard-Header binden OpenGL statisch ein. Ein dynamisches Laden wie mit LoadOpenGL und ReadExtensions (aus der dglOpenGL.pas) wird nicht unterstützt. Du musst dich also um das Einlesen der Extensions selber kümmern oder andere Libs suchen (wie z.B. die von Intel). Aber ansonsten ist das kein Problem.
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.