Crate crayon [−] [src]
What is This?
Crayon is a small, portable and extensible game framework, which written with a minimalistic modular design philosophy. Its built from the ground up to focus on cache friendly data layouts in multicore environments with entity-component based architecture.
It is loosely inspired by some amazing some amazing blogs on bitsquid, molecular and floooh.
Some goals include:
- Extensible through external code modules;
- Run on macOS, Linux, Windows, iOS, Android from the same source;
- Stateless, layered, multithread render system with OpenGL(ES) 3.0 backends;
- Entity component system with a data-driven designs;
- Unified interface for handling input devices across platforms;
- Asynchronous data loading from various filesystem;
- etc.
Please read the documents under modules for specific usages.
Quick Example
For the sake of brevity, you can also run a simple and quick example with commands:
git clone git@github.com:shawnscode/crayon.git && cd crayon/crayon-examples
cargo run imgui
Re-exports
pub extern crate rayon; |
Modules
application |
A unified application model across all target platforms. |
ecs |
The entity component system with a data-orinted designs. |
graphics |
A stateless, layered, multithread graphics system with OpenGL backends. |
input |
Provides unified access to input devices across platforms. |
math |
This module contains the math utils that mainly comes from |
prelude | |
resource |
The standardized interface to load data asynchronously from the |
utils |
Commonly used utilities like pools, variants and so on. |
Macros
impl_handle | |
impl_vertex | |
impl_vertex_field | |
offset_of |