C++/OpenGL2D Graphics Library (crossplattform geplant!)



  • Hallo,

    zur Zeit entwickle ich eine Grafik Bibliothek auf Basis von OpenGL, ich habe zwar einige Testsysteme aber natürlich kann man nicht alle Use-Cases abdecken im OneMann-Dev.

    Momentan ist die Version noch Alpha aber soweit sind alle Features implementiert die für eine kleine 2D Anwendung reichen, auch TTF Fonts können geladen werden.
    Einziger Wehmutstropfen, momentan können nur Png's geladen werden.
    Auch ist es möglich, beschränkt, Texturefonts zu laden.

    Mich würde es freuen wenn sich ein Paar Programmierer finden würden die meine Library testen möchten. Sie wird immer weiter ausgebaut vorgesehen ist auch Linux Support und vllt. auch MacOS.

    Zudem ist es nur ein Bestandteil eines größeren Vorhabens, denn sobald der Windowspart 100% fertig ist wird es noch Netzwerk und Audio geben, aber bis dahin dauerts noch ein wenig, und zumindest auf Linux sollte Sie laufen bevor es an die anderen Komponten geht.

    Feedback, Anregegungen, Fehlermeldungen usw. gerne Wilkommen!

    Außerdem wird zu Sie für nichtkommerzelle Zwecke 100% Kostenfrei sein!

    Danke für Euer Interesse !

    KLICK MICH !!! (SL_GLIBv0.04a)

    mfg. und nice WE, Patrick!

    Grundgerüst einer sl_glib Anwendung.

    //main.cpp
    #include "..\sl_glib\include\sl_glib.h"
    
    int main()
    {
        // create a simple non scalable window
        sl_glib_RenderContext myRC=sl_glib_RC("GLIB RC-WINDOW",300,300,0,0,GLIB_WINDOW_NOSCALE);
    
        // a var for quit this app
        bool appterminate=false;
    
        // vars for mousecoords
        int mousex=0;
        int mousey=0;
    
            do
            {
    
                if(myRC.MakeCurrent())
                {
    
                    // key & mouseevents here
                    if(myRC.GetKeyState(27))appterminate=true;
    
                       myRC.GetMouseCoords(mousex,mousey);
    
                    // renderstuff here
    
                    myRC.cls();
    
                    myRC.flip();
    
                }
                else
                {
                appterminate=true;
                }
    
            }while(appterminate==false);
    
        return 0;
    }
    

    Projekt: Ziele, Zielgruppe und Beschreibung.
    Der Momentane Entwicklungstand erlaubt es C++ Einsteigern und Fortgeschrittenen mit diesem kleinen Leichtgewichtigem Framework schnell Grafische Anwendungen zu erstellen. Es muss mit nur 2 Zeilen über die Kommandozeile eine Statische Library erstellt und diese dann nur zum Projekt gelinkt werden.
    Es bestehen momentan sehr wenige Abhängigkeiten so dass lediglich Folgendenes zu einem SL_GLIB Projekt gelinkt werden muss.

    libsl_glib
    libopengl32
    libgdi32
    winmm
    

    Zudem muss sl_glib.h inkludiert werden und dann kann es auch schon losgehen.

    Es werden Befehle zum Erstellen von Fenstern, laden und zeichnen von Grafiken (momentan nur PNG Format) und Primitiven wie Punkte, Linien, Rechtecke, Kreise und Polygone bereitgestellt. Diese können gefüllt und ungefüllt sowie mit kompletter oder Vertex basierten Farb- und Transparenz Attributen dargestellt werden. Außerdem werden Mouse und Keyboard Events behandelt.

    Ziele des Projektes:
    Ein leicht zu erlernendes, einfaches, Leichtgewichtiges, Performantes, Resourcenschonendes und Zukunftsorientiertes Framework für die 2D Grafikentwicklung unter Windows, Linux und MacOS.



  • Warum entwickelst du eine neue Bibliothek? Warum nicht einfach bei SFML mit entwickeln?



  • [EDIT]
    Achtung Antwort falsch gelesen (siehe weiter unten!), deswegen meine "Dumm patzig" Erscheinende Antwort! (sry nochmal @joomoo!)
    [/EDIT]
    Hi joomoo,

    Warum sollte ich SFML benutzen vor allem für was `?^^ Wenn ich eine eigene LIB schreiben will!
    (Ps: ES gibt noch Allegro, Clanlib, SDL, etc. ich bin mir dessen wohl bewusst!)

    Wenn keiner was neues macht würden wir heute noch mit Lochstreifen Programmieren, wenn überhaupt! *Grins

    Zudem denke ich hat es einen hohen Lernfaktor und erhöht denke ich ohne Zweifel meine Skills.

    Weil sich eventuel spätere Arbeitgeber nicht durch SFML beeindrucken lassen?!

    Es sicher nicht verkehrt ist es von Grund auf zu können, also sozusagen in der nähe der Ursuppe sein Lager zu errichten (Ursuppe wäre dann in diesem Kontext mit ASM sein eigenes OpenGL basteln *GG)!

    Aus Spass an der Freude!

    Hmm und viele viele andere Gründe!

    So sollte beantwortet sein?, was mich doch Berechtigen sollte dich nach deiner Motivation zu fragen ausgrechnet so eine Frage zu fragen ?!

    🙂 mfg. PatrickC64

    [OT]
    Ahso! mitlerweile Bastel ich schon an einer TileMap Engine, um der nächsten Frage vorzubeugen......

    .... Weil einige der oben genannte Gründe und meine folgendes kann.

    Einfach zu nutzen, stufenlo Zoom + Rotation, alpha und RGB für Layer+, Objecte+, Tiles+, Kameras. Unterschiedliche Tilegrösse der Layer möglich beliebig viele Kameres, Parralax Scrolling einfaches Picking, Kollision dazu evtl. noch ne kleinere Physik und und und. (vllt. noch ISO, aber das ohne Rotation *G)
    [/OT]



  • Patrick_C64 schrieb:

    Hi joomoo,

    Warum sollte ich SFML benutzen vor allem für was `?^^

    Für eine Anwendung??

    Wenn keiner was neues macht würden wir heute noch mit Lochstreifen Programmieren, wenn überhaupt! *Grins

    Und wenn keiner bestehenden Code verwenden würde, würden wir alle in ASM an unser eigenen Programmiersprache basteln.

    Zudem denke ich hat es einen hohen Lernfaktor und erhöht denke ich ohne Zweifel meine Skills.

    Würdest du bei SFML mitarbeiten, würdest du mehr lernen. Denn dann siehst du wie man es richtig macht und wenn du Änderungen vorschlägst können die anderen Entwickler Vorschläge machen und Verbesserungen an deinem Code aufzeigen.

    Bei Projekten mit mehreren Leuten ist der Lernfaktor höher.

    Weil sich eventuel spätere Arbeitgeber nicht durch SFML beeindrucken lassen?!

    "Ich habe bei der bedeutenden Grafik-Bibliothek SFML mitgearbeitet, die von vielen Projekt verwendet wird. Dabei habe ich gelernt im Team zuarbeiten und einen Eindruck von der wirklichen Programmierwelt bekommen"

    oder

    "Ich habe im Alleingang eine Grafikbibliothek geschrieben, die aber niemand verwendet."

    Sorry aber jeder Arbeitgeber würde erstere Person einstellen. Team-Arbeit ist wichtig. Und NEIN, niemand wird deine Bibliothek jemals ernsthaft verwenden solange es etablierte, bessere Bibliotheken wie SFML gibt.

    Es sicher nicht verkehrt ist es von Grund auf zu können, also sozusagen in der nähe der Ursuppe sein Lager zu errichten (Ursuppe wäre dann in diesem Kontext mit ASM sein eigenes OpenGL basteln *GG)!

    Warum schreibst du dann nicht gleich deine eigene Programmiersprache? Irgendwann muss man Arbeit von anderen verwenden. Das Rad immer neu zu erfinden ist einfach ineffizient.

    Aus Spass an der Freude!

    Also mir macht ein Spiel schreiben mehr Spaß als mich mit der WinAPI und co rumzuschlagen.

    So sollte beantwortet sein?, was mich doch Berechtigen sollte dich nach deiner Motivation zu fragen ausgrechnet so eine Frage zu fragen ?!

    Weil du diese Frage noch öfters hören wirst, wenn du deine Bibliothek irgendwo vorstellst. Warum sollte man deine Bibliothek verwenden wenn es bessere Alternativen gibt?

    Einfach zu nutzen, stufenlo Zoom + Rotation, alpha und RGB für Layer+, Objecte+, Tiles+, Kameras. Unterschiedliche Tilegrösse der Layer möglich beliebig viele Kameres,

    Kann SFML alles auch (und wahrscheinlich mit weniger Bugs, da es schon länger existiert und von mehr Leuten verwendet wird).

    Tut mir leid falls du jetzt sauer auf mich bist. Die meisten hier im Forum lesen deinen Beitrag wahrscheinlich nur kurz durch, denken schon "Okay noch ein Kiddy was ein größenwahnsinniges Projekt anfängt." und antworten gar nicht erst.



  • Hehe,

    an allem was wahres dran gar keine Frage 🙂

    nö bin dir nich böse aber nenn meine Projektvorhaben nicht Größenwahnsinnig!

    Es sind nur noch kleinere Bugfixes, Freeimagelib mit Integrieren, Texturefont und Outlinefonts komplettieren dann ist der Windows Part auch schon Fertig!

    mfg Patrick_C64



  • ^^Hab mir gerade nochmal deine Frage oben durchgelesen hatte Sie wohl falsch vertanden.

    Hab irgentwie gelesen "mit SFML" entwickeln und nicht "SFML mit Entwickeln", ui wahr wohl doch zu lang heute vorm Rechner, hmm in diesem Kontext hoffe ich kannst du meine 1. Antwort verstehen, für die ich mich in diesem Fall Entschuldigen möchte 😉 !!!

    Na klar könnte ich da vllt. mit Entwickeln aber ich möchte es gerne alleine machen, aber ich kann auch im Team so ist das nicht!

    mfg. Patrick



  • (sry für Triplepost aber sind ja Neuigkeiten)

    Hi,

    wollte mal den Fortschritt Posten, mit SL_SCENE2D konnte ich mich ein wenig von SL_GLIB ablenken und auch testen. Einige kleine Bugs konnte ich in sl_glib fixen, diese kommen dann mit dem nächsten Release der sl_glib.

    Ein wenig muss ich aber noch drann Basteln damit es Einsatzbereit ist, ausser man möchte nur Visualisieren, da keine Kollision und Physik vorhanden ist, genau das fehlt noch und ein Paar kleinigkeiten wir Parent Child. Dann ist es auch soweit nutzbar, Optimierungen werden dann Erfolgen sobald es ein Linuxpart für SL_GLIB gibt und ein Audioframework.

    Ansonsten alles in allem was Momentan so geht (allerdings Bedarf es noch ein paar kleinere Komplettierungen)

    - Multiple Layer with individual RGBA, Scale, Rotation, Tiledimensions, Size and Offset values
    - Multiple Maps
    - Multiple Cams on Map
    - Parallax Scrolling
    - Smooth Zoom and Rotation
    - Entity System (Objects)
    - RGBA values for Tiles
    - RGBA values for Objects
    - Object Picking
    - Tilepickung

    ... some more in the near Future.

    Screenshot und Download hier !!!

    mfg. Patrick_C64


Anmelden zum Antworten