
http://www.cegui.org.uk
Copyright © 2004 - 2022 Paul D Turner, el equipo de desarrollo de CEGUI y autores contribuyentes
La mayoría de los archivos auxiliares para CEGUI, que solían ser texto plano, ahora se mantienen en un formato "doxigenizado" dentro del directorio DOC/Doxygen; consulte esos archivos o genere la documentación para un formato más amigable. Alternativamente, visite http://static.cegui.org.uk/docs para todas sus necesidades de documentación.
Lo que sigue es solo una guía de arranque rápido, vaya a nuestros documentos de Doxygen para una documentación más detallada.
v0-8 proporciona la última versión compatible con ABI estable (a 0.8.x. Basado en el estándar C ++ 03 y compatible con los compiladores más comunes, incluido Visual Studio 2008-2015. Como esta rama es compatible con ABI, es posible reemplazar las bibliotecas dinámicas de CEGUI de la versión 0.8.x con versiones 0.8.x más nuevas, o viceversa, sin tener que recompilar el proyecto. Esta rama también es la base para nuevas versiones 0.8.X.v0 proporciona la última versión compatible con API estable de CEGUI y contiene cambios que rompen el ABI. Basado en el estándar C ++ 03 y compatible con los compiladores más comunes, incluido Visual Studio 2008-2015. Las versiones de esta rama se utilizarán para el próximo lanzamiento de la versión menor.default contiene cambios que solo se utilizarán en la próxima versión principal. Basado en el estándar C ++ 11 y compatible con los compiladores de actualización más comunes, incluido Visual Studio 2013 o más nuevo. Esta sucursal es muy inestable, introducirá cambios fundamentales y rompe la compatibilidad ABI y API . No le recomendamos que use esto en producción, a menos que dependa en gran medida de una característica y lo discutan con un desarrollador de CEGUI antes: esto se recomienda para que esté al tanto de todos los riesgos potenciales. En el caso general, se le aconseja que use una de las ramas estables, para ahorrarle mucho dolor de cabeza. Las ramas v0-8 y v0 se consideran estables, pero se someten a arreglos de errores y pequeños cambios, que no rompen ABI y API respectivamente. Estos cambios, por supuesto, introducen un pequeño riesgo de que pueda haber problemas temporales para el momento en las ramas. Si nota algún error en esas ramas, infórmelos lo antes posible: use el foro y/o nuestros canales IRC #cegui y #cegui-devel en irc.freenode.net para informarnos. Tenga en cuenta que no estamos disponibles en IRC las 24 horas por día, pero no dude en inactivo allí hasta que respondamos. En caso de duda qué rama usar, también siéntase libre de preguntarnos de esta manera. Para el uso de la producción generalmente recomendamos usar una versión de lanzamiento estable. Se puede encontrar una lista de lanzamientos en el en nuestro sitio web.
Somos más felices con las solicitudes de extracción de limpieza que contienen confirmaciones conscientes con los mensajes de confirmación adecuados . También aceptamos parches simples, pero facilitándonos más fácil aceptar su contribución con un solo clic acelera enormemente el proceso de revisión.
Aquí hay una explicación sobre cómo desembolsar desde nuestro repositorio, confirmar cambios en su bifurcación y crear una solicitud de extracción dirigida a la rama correcta: https://confluence.atlassian.com/display/bitbucket/fork+a+repo,+Compare+Code,+ y+Create+Aplull +Request
Tenga en cuenta también para apuntar al repositorio correcto. Preferimos apuntar a la rama compatible con ABI si es posible. De lo contrario, los compatibles con API. Para obtener información sobre la compatibilidad ABI/API, lea esta página: https://community.kde.org/policies/binary_compatibility_issues_with_c%2B%2B.
En caso de duda a qué rama apuntar, ¡contáctenos!
El siguiente script es más o menos universal para los sistemas y Windows *Nix. Se pueden requerir cambios menores.
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 ../En este punto, se generarán makfiles, archivos de proyecto o algo más. El siguiente paso depende de cuál sea.
Para makfiles, solo corre
cd $cegui_folder
cd build/
makePara soluciones de Visual Studio, haga doble clic, cambie el modo de compilación en consecuencia (versión, depuración, ...) y presione la compilación.
Esta sección solo tiene sentido en los sistemas de *nix.
Asegúrese de tener el CMake_install_Prefix correcto establecido en el tiempo de configuración. Vuelva a ejecutar CMake alternativamente y configúrelo. Por defecto, debe ser /usr/local/ pero es posible que desee /usr/ .
cd $cegui_folder
cd build/
sudo make installSi instaló en todo el sistema CEGUI, simplemente llame:
CEGUISampleFramework-0Si es preferible llamarlo desde la línea de comando porque le pedirá que seleccione un renderizador en caso de que tenga más de 1 disponible.
Si no tiene el sistema instalado en todo el sistema, es un poco más involucrado y complicado.
cd $cegui_folder
cd build/bin/
CEGUI_SAMPLE_DATAPATH=../../datafiles ./CEGUISampleFramework-0CEGUI tiene relativamente pocas dependencias requeridas (actualmente solo GLM) y muchas dependencias opcionales . El hecho de que admite muchas bibliotecas y motores de representación diferentes, muchos cargadores/códecs de imágenes diferentes (con opciones de pase a través de) y muchos analizadores XML diferentes es algo bueno y solo una persona desinformada le diría lo contrario.
Si CMake le dice que no se encontró algo , ¡no se asustará ;)! Lo más probable es que sea un mensaje inofensivo. Solo debe preocuparse si una dependencia que sabe que necesita no se encuentra o si no se encuentran dependencias en absoluto. En el último caso, en Windows y Mac OS X, probablemente no colocó la carpeta "Dependencias" (incluidas las dependencias compiladas en Depug/Release/Whating-Else-Need) en la carpeta que contiene todos los archivos y carpetas CEGUI. También puede especificar otra carpeta en CMake utilizando la variable CEGUI_DEPENDENDES_DIR.
¡Este sistema de numeración en realidad tiene un propósito muy importante! Por favor, déjelos conservarlos. Permite que las distribuciones de Linux (y otras) instalen múltiples versiones de API de CEGUI junto con las cuales alivia la migración y aceleran la adopción de nuevas versiones CEGUI. En Windows, esto nos permitirá proporcionarle dependencias de CEGUI precompiladas utilizando Nuget en el futuro.
Este es el comportamiento esperado. En primer lugar, siempre debe probar el rendimiento en el modo de lanzamiento, pero incluso allí el cursor será más lento. La razón es simplemente que es muy poco probable que cualquier aplicación tenga un cursor tan rápido como el cursor del sistema operativo. También recuerde que la velocidad está estrechamente vinculada a su velocidad de cuadro, por lo que si ejecuta la demostración de Helloworld a 5000 fps, la diferencia será menos pero aún notable. Cualquier juego, simulación u otra aplicación que presente su propio cursor a través de funciones OpenGL/Direct3D de manera similar. Sin embargo, la velocidad del cursor no es un problema para los usuarios si su aplicación se ejecuta a velocidades de cuadro rasonables (> 60 fps) sin caídas de cuadro y no se percibirá como tal. Una vez que oculte el cursor del sistema operativo, el retraso probablemente ya no será notable para usted.
En primer lugar, el término "infierno dll" se usa erróneamente en este contexto. No significa "Veo muchos archivos DLL, ¡esto debe ser el infierno!". Vincular dinámicamente la biblioteca CEGUI es la mejor manera de que las cosas funcionen como se supone que deben hacerlo y garantizar una buena compatibilidad y una baja posibilidad de problemas que surgen con las dependencias. En Windows recomendamos usar un enlace dinámico con CEGUI en lugar de la vinculación estática, ya que la experiencia pasada (algunos de los usuarios se toparon con problemas técnicos) nos ha demostrado que esto es más seguro. Sin embargo, si sabe lo que está haciendo, definitivamente puede usar un enlace estático. Sin embargo, tenga en cuenta que solo probamos el enlace dinámico regularmente, por lo que los archivos Cmake pueden estar desactualizados y es posible que tenga que agregar bibliotecas vinculadas a su IDE, etc. en una nota positiva: en la próxima versión 1.0 reduciremos la cantidad de DLLS CEGUI crea fusionando algunas de ellas en la biblioteca base. Aquí se puede encontrar un resumen breve pero no completo de ventajas y desventajas de la enlace estática frente a la dinámica
Principalmente, cuando los usuarios se quejaron en los foros sobre la velocidad de CEGUI, resultó ser que ejecutaron la aplicación en la configuración de depuración o hicieron algo mal: puede ser lento si está cargando recursos/archivos de diseño en cada cuadro o causando actualizaciones y eventos innecesarios. O puede ser lento si está actualizando innecesariamente CEGUI varias veces por cuadro en su programa. Si no puede encontrar el problema, entonces es mejor realizar un foro/búsqueda de Google y, si no encuentra nada útil, para describir su configuración en detalle y qué problemas tiene. Cuando CEGUI se vuelve lento, también puede deberse a un uso muy específico de características específicas, que no esperábamos ni probamos. En este caso, nos gustaría que describa su caso de uso en el foro para que podamos encontrar una solución o, si es capaz de resolver el problema usted mismo, cree una solicitud de extracción en Bitbucket.
En general, CEGUI es muy rápido y puede competir fácilmente con otras bibliotecas de la GUI en la velocidad (especialmente las basadas en flash, ya que no acceden a OpenGL o Direct3D directamente). Si bien ninguna biblioteca compleja estará perfectamente optimizada, CEGUI puede considerarse altamente realizado. Esto es cierto para los cálculos realizados en la CPU, así como en los de la GPU. Todavía se ejecuta de manera óptima cuando se abren y se renderizan cientos de ventanas al mismo tiempo.
La mejor prueba de que CEGUI es rápido es que se han realizado grandes juegos patentados, que muestran cientos de widgets y usan jerarquías complejas, utilizando CEGUI (Torchlight 1, Torchlight 2, Venetica, etc.).
La mayoría de nuestras muestras, si se inician en modo de liberación, se convertirán en velocidades superiores a 3000 cuadros por segundo en una CPU y GPU modernas. Como una nota adicional para algunas personas a las que les gustaba citar puntos de referencia dudosos con respecto a tales comparaciones de velocidad: los puntos de referencia dependen de la situación y podrían tergiversar fácilmente la velocidad real de una biblioteca por uso incorrecto, ineficiente o inusual. Si se usa correctamente y dentro de los límites del uso esperado, CEGUI funciona extremadamente bien.