Warum ist OpenGL unter Windows so unbekannt?



  • Nexus schrieb:

    ProgChild schrieb:

    Ich benutzte die SDL, weil ich sie schon für die beste der Möglichkeiten halte.

    Im Bezug auf was?

    Im Bezug auf das, was ich vor habe.

    Nexus schrieb:

    Ich habe früher auch die SDL benutzt, und bin der Meinung, in SFML ist vieles besser und intuitiver gelöst. Zumindest die Teile, die ich von SDL her kannte (hauptsächlich Grafik-Modul).

    Ich brauche eigentlich nur ein möglichst leichtgewichtige Initialisierung von OpenGL, Tastatur, Maus, Joystick, Sound und IO Multiplexing. SFML tut mir da an manchen Stellen schon zu viel.



  • @ProgChild: Also alles ist irgendwie unschoen? Vielleicht ist dein Design einfach nur schlecht!

    Weil sie gewisse Probleme mit sich bringen. Wenn man mit Threads programmiert muss man immer aufpassen, dass man sich nicht den Speicher kaputt macht.

    Keine Ahnung, was du damit meinst. Ist mir noch nie passiert.



  • knivil schrieb:

    @ProgChild: Also alles ist irgendwie unschoen?

    Ja. Ich hätte gerne einen Main-Loop, der auf alle Events reagiert. Und zwar in einem Thread.

    knivil schrieb:

    [...]

    Erspare mir einfach deine Arroganz, ok?



  • Ja. Ich hätte gerne einen Main-Loop, der auf alle Events reagiert. Und zwar in einem Thread.

    Nee, ist unschoen. 😃 Auch widersprichst du dir selbst:

    Und das ist dann meistens unschön, weil sich diese Bibliotheken irgendwie einen "Main-Loop" teilen müssen, um ihre IO-Aufgaben zu erledigen.

    Auch stimmt das nicht, dass sich alle einen MainLoop/Thread teilen muessen. Aber vor Threads hast du ja auch irgendwie Angst. Alles wird mit unschoen oder eklig abgeschmettert, gepaart mit vagen Anforderungen a la "ich haette gern, dass SDL ... aber SFML macht mir da schon etwas zu viel". Ich schaue mir meine Programme mit SDL an und kann keinen deiner vagen Punkte ansatzweise nachvollziehen. Am besten du laesst den Rechner aus, dann hast du nichts unschoenes oder ekelhaftes.

    Ich koennte jetzt sowas wie: "Erspare mir deine Ignoranz, ok?" oder anderes erwidern. Aber wo wuerde das hinfuehren ...



  • Wegen der MainLoop-Problematik benutze ich äußerst ungern irgendwelche Bibliotheken, die einen Blackbox-MainLoop haben. Da schreibe ich meinen MainLoop lieber selber. ^^
    Für OpenGL benutze ich da GLX, für Tastatur/Maus XCB und für den Sound libao. :3



  • knivil schrieb:

    Auch widersprichst du dir selbst

    Nein. Ich habe mich nur möglicherweise für dich missverständlich ausgedrückt. Aber das letzte Zitat scheinst du ja dann doch noch richtig verstanden zu haben.

    knivil schrieb:

    Aber vor Threads hast du ja auch irgendwie Angst.

    Nein. Ich finde es nur nicht schön, wenn ich sie verwenden muss, um Limitierungen in bestimmten Bibliotheken zu umgehen.

    Und da Threads ihre eigenen Probleme mitbringen, setze ich sie ein, wo ich die Nachteile für gerechtfertigt halte.

    knivil schrieb:

    SFML

    Wo bietet mir die SFML denn die Möglichkeit, über IO-Events benachrichtigt zu werden?

    knivil schrieb:

    Am besten du laesst den Rechner aus, dann hast du nichts unschoenes oder ekelhaftes.

    Du kannst ja gerne qualifizierte Dinge von dir geben. Ich sehe hier aber ehrlich gesagt keinen Grund, warum du hier persönlich Diffamierungen loslassen musst.

    Wenn mir dein Vorschlag nicht gefällt, dann akzeptiere das doch einfach. Ich habe ziemlich genau dargelegt, was ich will. Vielleicht kannst du ja nachvollziehen, dass so Tipps wie "Das was du willst ist aber Blödsinn, machst doch anders" nicht unbedingt gut ankommen.



  • du hier persönlich Diffamierungen loslassen musst

    Ich liebe die Zitierfunktion:

    Erspare mir einfach deine Arroganz, ok?

    Genau dazu fuehrt sowas ... 🙂 Das was du willst wurde wahrscheinlich schon 1000x geloest, nur nicht ganz so, wie du es in deinem Hirn hast. Da du nur dein Bild im Kopf akzeptierst und Alternativen argumentlos abgeschmettert werden, halte ich dich fuer beratungsresistent. Aber vielleicht bin ich ja beratungsresistent, da ich immer noch nicht verstehe, warum der MainLoop blockierend sein soll. Ist es der MainLoop eines Spiels das in "Echtzeit" laeuft, so macht blockierend keinen Sinn.

    PS: Jede Tastatureingabe ist eine IO-Operation. Und wahrscheinlich arbeitet jedes asynchrone Eventsystem irgendwie mit Threads ... ach verdammt, jedes Programm hat ja mindestens einen Thread.Wir haben da z.B. boost::asio, Events -> Qt hat da auch was mit Netzwerkstreams, epoll ... nein, ich kenne mich nur oberflaechlich damit aus. Keine Ahnung, ob diese dein Problem loesen, da ich das immer noch nicht mitbekommen habe ...



  • knivil schrieb:

    Aber vielleicht bin ich ja beratungsresistent, da ich immer noch nicht verstehe, warum der MainLoop blockierend sein soll. Ist es der MainLoop eines Spiels das in "Echtzeit" laeuft, so macht blockierend keinen Sinn.

    Nur, wenn man 100% der CPU-Zyklen verbrauchen will.

    knivil schrieb:

    PS: Jede Tastatureingabe ist eine IO-Operation. Und wahrscheinlich arbeitet jedes asynchrone Eventsystem irgendwie mit Threads ...

    Nein. Warum sollte das so sein?

    knivil schrieb:

    Wir haben da z.B. boost::asio, Events -> Qt hat da auch was mit Netzwerkstreams, epoll ... nein, ich kenne mich nur oberflaechlich damit aus.

    Qt würde das Problem lösen. Hat aber kein Joystick-Eingabe.



  • ProgChild schrieb:

    Wo bietet mir die SFML denn die Möglichkeit, über IO-Events benachrichtigt zu werden?

    Mit sf::Window::GetEvent() . Falls dir das zu prozedural ist, kannst du relativ einfach ein Signal/Slot-System (z.B. mit Boost.Signals) darum herumbauen.



  • Nexus schrieb:

    Mit sf::Window::GetEvent() . Falls dir das zu prozedural ist, kannst du relativ einfach ein Signal/Slot-System (z.B. mit Boost.Signals) darum herumbauen.

    Entschuldigung. Da war ich wohl an der Stelle etwas zu ungenau. Ich meine Benachrichtigungen ob ein Socket bereit zum lesen oder schreiben ist. Die Liste der Events scheint das nicht herzugeben.


Anmelden zum Antworten