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 cgmath and collision-rs.

prelude
resource

The standardized interface to load data asynchronously from the Filesystem, and provides utilities for modules to implement their own local resource management.

utils

Commonly used utilities like pools, variants and so on.

Macros

impl_handle
impl_vertex
impl_vertex_field
offset_of