.. include:: defs.hrst Project Structure ################# :: . ├── cmake ├── docs/ │ ├── cmake │ ├── doxygen │ └── sphinx ├── examples ├── extern ├── src/ │ └── obscura/ │ ├── application/ │ ├── core/ │ ├── events/ │ ├── exceptions/ │ ├── logging/ │ ├── renderer/ │ ├── scheduler/ │ ├── timer/ │ └── window/ └── ... cmake ***** Contains all functions and macros that we use in our CMake files. docs **** Contains all documentation related files. * docs/cmake contains the CMake functions that we require to build the docs. * docs/doxygen contains the configuration for generating the doxygen docs. They are only used for breathe and sphinx and are not meant as a standalone documentation. * docs/sphinx contains the configuration for generating the sphinx docs. examples ******** Contains example code on how to use |Obscura| extern ****** Contains all external dependencies. The folder is being created during configuration. It should not be added to the repository. src *** Contains all source code of |Obscura|. application ^^^^^^^^^^^ Contains code for the entry point into |Obscura|. If you are new to the project, this is the best place to start. core ^^^^ Contains core functionality of |Obscura|. If something is in here, it is used by almost every other part of |Obscura|. That includes the ``core.hxx`` that includes all used std headers and |Obscura| headers that are regularly used. The core header is pre-compiled. events ^^^^^^ Contains code for the event system of |Obscura|. That includes a dispatcher and several event classes. exceptions ^^^^^^^^^^ Contains code for the exceptions that are used in |Obscura|. logging ^^^^^^^ Contains code for the logging system of |Obscura|. That includes a logger and several log levels. renderer ^^^^^^^^ Contains code for the renderer of |Obscura|. scheduler ^^^^^^^^ The scheduler is a high-level wrapper to interact with the event system. It allows a user to to emit events. timer ^^^^^ Timings are important in games. This module contains a timer and adjacent functions that can be used to measure time or to pace frames. You will also find code for anything related to FPS measurements in here. window ^^^^^^ Responsible for creating and managing the window.