
http://www.cegui.org.uk
Copyright © 2004 - 2022 Paul D Turner, das Cegui -Entwicklungsteam und beitragende Autoren
Der Großteil der Hilfsdateien für CEGUI, die früher nur noch Text waren, wird jetzt im "Doxygenisierten" -Format im DOC/Doxygen -Verzeichnis aufbewahrt. Siehe diese Dateien bitte oder generieren Sie die Dokumentation für ein freundlicheres Format. Alternativ besuchen Sie http://static.cegui.org.uk/docs für alle Ihre Dokumentationsanforderungen!
Was folgt, ist nur ein Schnellstart-Leitfaden. Gehen Sie zu unseren Doxygen-Dokumenten, um detailliertere Dokumentationen zu erhalten.
v0-8 bietet die neueste stabile ABI-kompatible Version von CEGUI (bis 0,8.x Releases). Basierend auf dem Standard C ++ 03 und kompatibel mit den häufigsten Compilern, einschließlich Visual Studio 2008-2015. Da dieser Zweig abi kompatibel ist, ist es möglich, die dynamischen CEGUI-Bibliotheken von Version 0.8.x durch neuere 0,8.x-Versionen oder umgekehrt zu ersetzen, ohne das Projekt neu kompilieren zu müssen. Dieser Zweig ist auch die Basis für neue Veröffentlichungen von 0,8.x.v0 bietet die neueste stabile API -kompatible Version von CEGUI und enthält Änderungen, die den ABI brechen. Basierend auf dem Standard C ++ 03 und kompatibel mit den häufigsten Compilern, einschließlich Visual Studio 2008-2015. Versionen aus dieser Niederlassung werden für die nächste Version der nächsten Minorversion verwendet.default enthält Änderungen, die nur in der nächsten Hauptversion verwendet werden. Basierend auf dem Standard C ++ 11 und kompatibel mit den häufigsten aktuellen Compilern, einschließlich Visual Studio 2013 oder neuer. Dieser Zweig ist sehr instabil, wird grundlegende Veränderungen einführen und die Kompatibilität von ABI und API bricht . Wir empfehlen Ihnen nicht, dies in der Produktion zu verwenden, es sei denn, Sie sind stark von einer Funktion angewiesen und haben dies mit einem Entwickler von Cegui zuvor besprochen: Dies wird empfohlen, damit Sie alle potenziellen Risiken kennen. Im allgemeinen Fall wird Ihnen empfohlen, einen der stabilen Zweige zu verwenden, um Ihnen viele Kopfschmerzen zu sparen. Die Zweige der v0-8 und v0 werden als stabil angesehen, werden jedoch Bug-Fixes und kleine Änderungen unterzogen, die ABI und API nicht brechen. Diese Änderungen führen natürlich ein kleines Risiko ein, dass es in den Zweigen vorübergehend Probleme gibt. Wenn Sie Fehler in diesen Filialen bemerken, melden Sie sie uns bitte so schnell wie möglich an - verwenden Sie das Forum und/oder unsere IRC -Kanäle #cegui und #cegui-devel auf irc.freenode.net , um uns zu informieren. Bitte bedenken Sie, dass wir bei IRC 24 Stunden am Tag nicht verfügbar sind, aber Sie können dort frei sind, bis wir reagieren. Wenn Sie Zweifel haben, können Sie uns auch auf diese Weise fragen. Für die Produktionsnutzung empfehlen wir im Allgemeinen eine stabile Versionsversion. Auf unserer Website finden Sie eine Liste von Veröffentlichungen.
Wir sind am glücklichsten mit sauberen Pull -Anfragen, die Spannungsbekenntnisse mit ordnungsgemäßen Feststellnachrichten enthalten. Wir akzeptieren auch einfache Patches, aber es erleichtert es uns, Ihren Beitrag nur mit einem Klick zu akzeptieren, um den Überprüfungsprozess stark zu beschleunigen.
Hier finden Sie eine Erklärung, wie Sie aus unserem Repository -Änderungen an Ihrer Gabel gabeln und eine Pull -Anfrage erstellen, die auf die rechte Zweigstelle abzielt: https://confluence.atlassian.com/display/bitbucket/fork+a+Repo ,+Compare+Code,+ undcreat+Pull+Requst
Bitte denken Sie auch daran, das richtige Repository anzusprechen. Wir bevorzugen es, wenn möglich auf den kompatiblen ABI -Zweig abzuzielen. Ansonsten die API -kompatiblen. Informationen zur Kompatibilität von ABI/API finden Sie unter:
Wenn Sie Zweifel haben, können Sie uns bitte kontaktieren!
Das folgende Skript ist mehr oder weniger universell für *NIX -Systeme und Windows. Mögliche Änderungen können erforderlich sein.
cd $cegui_folder
# you can call the folder differently but "build" is customary
mkdir build/
cd build/
# run the configure step
cmake-gui ../
# fix any issues pointed out by cmake
# not all dependencies are required so if some are not found, don't panic and carry on!
# alternative (if you are a command line pro)
# cmake ../Zu diesem Zeitpunkt werden Makefiles, Projektdateien oder etwas anderes generiert. Der nächste Schritt hängt davon ab, was das ist.
Für Makefiles rennen Sie einfach
cd $cegui_folder
cd build/
makeFür Visual Studio Solutions doppelklicken Sie, ändern Sie den Build -Modus entsprechend (Release, Debug, ...) und drücken Sie Build.
Dieser Abschnitt ist nur auf *nixähnlichen Systemen sinnvoll.
Stellen Sie sicher, dass Sie über den richtigen CMAKE_INSTALL_PREFIX zur Konfigurationszeit eingestellt sind. Alternatival Cmake erneut ausführen und setzen Sie es ein. Standardmäßig sollte es /usr/local/ aber Sie wollen /usr/ .
cd $cegui_folder
cd build/
sudo make installWenn Sie CEGUI-systemweit installiert haben, rufen Sie einfach an:
CEGUISampleFramework-0Wenn es vorzuziehen ist, es aus der Befehlszeile anzurufen, da Sie auffordert, einen Renderer auszuwählen, falls Sie mehr als 1 verfügbar haben.
Wenn Sie keine installierten systemweit installiert haben, ist es etwas engagierter und komplizierter.
cd $cegui_folder
cd build/bin/
CEGUI_SAMPLE_DATAPATH=../../datafiles ./CEGUISampleFramework-0CEGUI hat relativ wenige erforderliche Abhängigkeiten (derzeit nur GLM) und viele optionale Abhängigkeiten. Die Tatsache, dass es viele verschiedene Rendering -Bibliotheken und -Motoren unterstützt, viele verschiedene Bildlader/Codecs (mit Durchgängen) und viele verschiedene XML -Parsers sind eine gute Sache, und nur eine nicht informierte Person würde es Ihnen etwas anderes sagen.
Wenn CMake Ihnen sagt, dass etwas nicht gefunden wurde, werden Sie keine Panik ;)! Höchstwahrscheinlich ist es eine harmlose Nachricht. Sie sollten sich nur Sorgen machen, wenn eine Abhängigkeit, von der Sie wissen, dass Sie sie benötigen, nicht gefunden wird oder ob überhaupt keine Abhängigkeiten gefunden werden. Im letzteren Fall haben Sie unter Windows und Mac OS X den Ordner "Abhängigkeiten" (einschließlich der Abhängigkeiten, die in Debug/Release/Release/Egal-Elese-you-Need zusammengestellt wurden, wahrscheinlich nicht in den Ordner mit allen CEGUI-Dateien und Ordnern eingefügt. Sie können auch einen weiteren Ordner in CMake angeben, indem Sie die variable cegui_dependencies_dir verwenden.
Dieses Nummerierungssystem erfüllt tatsächlich einen sehr wichtigen Zweck! Bitte lassen Sie uns sie behalten. Es ermöglicht Linux -Verteilungen (und andere), mehrere CEGUI -API -Versionen neben der Migration zu installieren und die Einführung neuer Cegui -Versionen zu beschleunigen. In Windows können wir Ihnen in Zukunft Nuget mit Nuget mit vorkompilierten CEGUI -Abhängigkeiten versehen.
Dies ist erwartetes Verhalten. Erstens sollten Sie die Leistung im Freigabemodus immer testen, aber auch dort wird der Cursor langsamer. Der Grund ist einfach, dass es sehr unwahrscheinlich ist, dass eine Anwendung so schnell einen Cursor hat wie der OS -Cursor. Denken Sie auch daran, dass die Geschwindigkeit eng mit Ihrer Bildrate verbunden ist. Wenn Sie also die Helloworld -Demo mit 5000 fps ausführen, ist der Unterschied weniger, aber immer noch bemerkenswert. Jedes Spiel, eine Simulation oder eine andere Anwendung, die über OpenGL/Direct3D -Funktionen in ähnlicher Weise seinen eigenen Cursor machen. Die Cursorgeschwindigkeit ist jedoch kein Problem für Benutzer, wenn Ihre Anwendung mit rasonbaren Bildraten (> 60 fps) ohne Frame -Tropfen ausgeführt wird und nicht als solche wahrgenommen wird. Sobald Sie den Betriebssystem Cursor verbergen, wird die Verzögerung Ihnen wahrscheinlich nicht mehr bemerkenswert sein.
Zunächst einmal wird der Begriff "dll Hell" in diesem Zusammenhang fälschlicherweise verwendet. Es bedeutet nicht "Ich sehe viele DLL -Dateien, das muss die Hölle sein!". Die dynamische Verknüpfung der Cegui -Bibliothek ist der beste Weg, um die Dinge zu haben, die sie sollen, und garantieren eine gute Kompatibilität und eine geringe Chance auf Probleme, die mit Abhängigkeiten auftreten. Unter Windows empfehlen wir, dynamische Verknüpfungen mit Cegui und nicht mit einer statischen Verknüpfung zu verwenden, da die Erfahrung in der Vergangenheit (einige der Benutzer auf technische Probleme gestoßen sind) gezeigt haben, dass dies sicherer ist. Wenn Sie jedoch wissen, was Sie tun, können Sie definitiv eine statische Verknüpfung verwenden. Seien Sie sich jedoch bewusst, dass wir nur die dynamische Verknüpfung regelmäßig testen, sodass die CMake -Dateien möglicherweise veraltet sind, und Sie müssen möglicherweise zu einer positiven Anmerkung verknüpfte Bibliotheken zu Ihrer IDE usw. hinzufügen: In der kommenden 1.0 -Version werden wir die Anzahl der DLLs reduzieren, die Cegui erstellt, indem wir einige von ihnen in die Basisbibliothek verschmelzen. Eine kurze, aber definitiv nicht vollständige Zusammenfassung der Vor- und Nachteile der statischen und dynamischen Verknüpfung finden Sie hier: http://stackoverflow.com/questions/1993390/static-linking-vs-dynamic-link
Meistens, wenn sich Benutzer in den Foren über die Geschwindigkeit von Cegui beschwerten, stellte sich heraus, dass sie die Anwendung entweder in der Debug -Konfiguration ausgeführt haben oder etwas falsch gemacht haben: Es kann langsam sein, wenn Sie Layout -Ressourcen/-dateien in jedem Frame oder unnötige Updates und Ereignisse verursachen. Oder es kann langsam sein, wenn Sie CEGUI in Ihrem Programm mehrmals pro Frame mehrmals aktualisieren. Wenn Sie das Problem nicht finden können, ist es am besten, ein Forum/eine Google -Suche durchzuführen und - wenn Sie nichts hilfreich finden - Ihr Setup im Detail und die Probleme zu beschreiben, die Sie haben. Wenn Cegui langsam wird, kann dies auch auf eine sehr spezifische Verwendung spezifischer Merkmale zurückzuführen sein, die wir nicht erwartet oder getestet haben. In diesem Fall möchten wir, dass Sie Ihren Anwendungsfall im Forum beschreiben, damit wir eine Lösung finden oder, wenn Sie in der Lage sind, das Problem selbst zu lösen, eine Pull-Request für Bitbucket erstellen.
Im Allgemeinen ist Cegui sehr schnell und kann problemlos mit anderen GUI-Bibliotheken konkurrieren (insbesondere mit Flash-basierten, da sie nicht direkt auf OpenGL oder Direct3D zugreifen). Während keine komplexe Bibliothek dort jemals perfekt optimiert sein wird, kann CEGUI als sehr leistungsfähig angesehen werden. Dies gilt für die Berechnungen auf der CPU sowie für diejenigen der GPU. Es läuft immer noch optimal, wenn Hunderte von Fenstern gleichzeitig geöffnet und gerendert werden.
Der beste Beweis dafür, dass Cegui schnell ist, ist, dass große proprietäre Spiele, bei denen Hunderte von Widgets angezeigt und komplexe Hierarchien verwendet werden, mit Cegui (Torchlight 1, Torchlight 2, Venetica usw.) gemacht wurden.
Die meisten unserer Proben werden im Release -Modus mit einer modernen CPU und einer GPU mit Geschwindigkeiten über 3000 Bildern pro Sekunde pro Sekunde gerendert. Als zusätzliche Notiz für einige Leute, die gerne zweifelhafte Benchmarks in Bezug auf solche Geschwindigkeitsvergleiche zitierten: Benchmarks sind situationsabhängig und könnten die tatsächliche Geschwindigkeit einer Bibliothek durch falsche, ineffiziente oder ungewöhnliche Verwendung leicht falsch darstellen. Bei korrekter und in den Grenzen der erwarteten Verwendung verwendet, spielt Cegui sehr gut.