Mir schwirrt schon seit langer Zeit die Idee im Kopf rum den dglOpenGL - Header in eine Assembly( .NET DLL ) zu Stecken, und dadurch, unter anderem auch durch geschicktes deklarieren, einen OO-Header zu Verfügung zu stellen, der für sämtliche .NET Sprachen nutzbar ist, und auch eines für OpenGL unübliches OOP erlaubt.
Meine Idee war das ganze mit C# ( Und #develop ) umzusetzen, damit keine Probleme entstehen, und dieser Header dadurch auch für Mono verwendbar ist.
Ich wollte Versuchen auch besonderst die Namenspaces Effektiv zu nutzen, z.b. so:
dglOpenGL.Drawcalls
dglOpenGL.Extensions
dglOpenGL.Extensions.ARB
dglOpenGL.Extensions.NV
...
Leider muss ich ehrlich sagen ist mir der OpenGL Header nicht ganz Durchsichtig( Was besonderst an der doch Wahnsinnigen Größe liegt ), und deshalb wollte ich fragen wie euere Meinung dazu ist, und ob vielleicht jemand mitmachen würde!
mfg
Speedmaster
_________________ Shareholder und Leitender Entwickler bei Pipedream-Games.
Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.
Der Namespace heißt OpenGL und alle Funktionen sind statisch in einer Klasse gl, so dass die Aufrufe so aussehen: gl.Begin(gl.TRIANGLES);gl.End() usw....
Der Namespace heißt OpenGL und alle Funktionen sind statisch in einer Klasse gl, so dass die Aufrufe so aussehen: gl.Begin(gl.TRIANGLES);gl.End() usw....
Hatte mir das eigenlich ein bischen anderst vorgestellt. Aber ist eine gute Grundlage für meine Idee.
Wo benutzt du den Generics, b.z.w. sachen aus .NET 2.0, den die würde ich gerne rausschmeissen, b.z.w. umschreiben.
_________________ Shareholder und Leitender Entwickler bei Pipedream-Games.
Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.
_________________ Shareholder und Leitender Entwickler bei Pipedream-Games.
Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.
Naja, das sieht mir mehr Richtung ManagedDX => OpenGL Wrapper aus.
Zitat:
namespace OpenGL.Device { public class Device : Form { // Methods public Device(string ErrorMessage); public void Clear(); private void CreateDevice(); public virtual void OnCreateDevice(); public void PresentScene(); protected virtual void SetupWindow(); } }
Das Device von einer Form abzuleiten ist keine gute Idee, weil man z.B. auch OpenGL im Panel anzeigen möchte. "ErrorMessage" als Parameter im Konstruktor eines OpenGL Objectes ?
Zitat:
namespace OpenGL.Types.Color { [StructLayout(LayoutKind.Sequential)] public struct Color3f { public float r; public float g; public float b; }
.... }
Warum sollen denn diese ganzen Typen alle im Header deklariert werden? Es ist doch keine Arbeit sich den Type den man speziell für seinen Vector benötigt sich dann selber zu deklarieren. Die Vektor Array Typen sind auch sehr seltsam. Warum soll man public
Zitat:
struct AVector2f { public Vector2f[] Value; }
verwenden, anstelle einfach Vector2f[] zu schreiben? Mal abgesehen davon, dass man AVector2f nicht als Vertex Array übergeben kann sondern nur das Array direkt.
Also Klassen muß man sich schon um OpenGL herum basteln. Aber die Klassen sollten dann am besten speziell auf den eigenen Zweck ausgelegt sein. Ansonsten finde ich, ist es zu allgemein um nützlich zu sein.
Naja, das sieht mir mehr Richtung ManagedDX => OpenGL Wrapper aus.
Sowas ähnliches war auch gedacht, das OOP für OpenGL zu erleichtern. ManagedDX ist im Prinzip ja auch nicht schlecht, es lässt sich sehr gut damit Arbeiten.
Zitat:
Das Device von einer Form abzuleiten ist keine gute Idee, weil man z.B. auch OpenGL im Panel anzeigen möchte. "ErrorMessage" als Parameter im Konstruktor eines OpenGL Objectes ?
Stimmt, dies hatte ich bisher noch nicht bedacht. Das Objekt Device habe ich auch bisher nur so geschrieben( Siehe oben, stand das selbe da ), will es weiterhin ausbauen.
Zitat:
Warum sollen denn diese ganzen Typen alle im Header deklariert werden? Es ist doch keine Arbeit sich den Type den man speziell für seinen Vector benötigt sich dann selber zu deklarieren. Die Vektor Array Typen sind auch sehr seltsam.
Naja, ich finde es nützlich die Typen gleich da zu haben. Denke das ist Geschmackssache, allerdings kann es auch nicht schaden oder? Das mit den Arrays ist einleutend, allerdings ist die Frage ob man diese auch so als Parameter übergeben kann( Noch nicht getestet ).
Zitat:
Also Klassen muß man sich schon um OpenGL herum basteln. Aber die Klassen sollten dann am besten speziell auf den eigenen Zweck ausgelegt sein. Ansonsten finde ich, ist es zu allgemein um nützlich zu sein.
Bisher ist ja auch noch nicht viel von der Idee zu sehen.
_________________ Shareholder und Leitender Entwickler bei Pipedream-Games.
Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.
Ganz wichtig wäre noch die Sache mit den Handles. Der GC sammelt die OpenGL Handles selbstverständlich nicht ein. Wenn man jetzt sich z.B. eine Klasse Texture macht, die eine Texture kapselt, dann kann man das Texture Handle nicht im Destructor/Finalize Methode freigeben, weil der Destructor in einem anderen Thread läuft, als die restliche Anwendung und die OpenGL RC immer pro Thread gelten. Kurz vorher den Context in diesem Thread zu aktivieren hat aus unerklärlichen Gründen auch nicht das gewünscht Ergebnis gebracht. Es ist jedoch auch nicht schön, wenn man zwar die Objekte alle automatisch verwaltet bekommt, sich dann aber um die Freigabe der OpenGL Handles selber kümmern muß.
Ich habe das momentan so gelöst, dass ich eine Liste von WeakReference habe und nachsehe, bei welcher WeakReference der Eigentümer bereits eingesammelt wurde und dann auch das OpenGL Handle freigebe.
Erstmal eine Frage zu "T4F"! Bei "T2F" benennt man eigentlich die Koordinaten ja "s" und "t", wie benenne ich bei "T4F" nun die 3. und die 4. Koordinate?
Edit: Erledigt!
_________________ Shareholder und Leitender Entwickler bei Pipedream-Games.
Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.
Mitglieder in diesem Forum: 0 Mitglieder und 33 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.