diff options
Diffstat (limited to 'docs/modules.md')
| -rw-r--r-- | docs/modules.md | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/docs/modules.md b/docs/modules.md new file mode 100644 index 0000000..c3c1a07 --- /dev/null +++ b/docs/modules.md @@ -0,0 +1,39 @@ +# Modules + +This document aims to document how the engine modules are designed to work +together. + +_This is not a description of the current state of this project, but rather +where I want it to be._ + +A module provides some basic functionality to the engine. Since that is +incredibly broad, we define specific resources and functions to be implemented +by each module in order to function with daw. + + +## Goals + +The design and implementation of the module system aims to provide the +following features: + +1. Hot reloading modules. +2. Provide a implementation and platform agnostic interface. +3. Allow implementations to be easily interchangeable. + + +## Types + +DAW defines different module types, each type is a definition of a _struct_ that +a module of that specific type must implement. It usually consists of function +pointers that are called by the core of the engine. A specific function could be +the `window_init` function, required by the `Platform` module type. + + +## TODO + +This module system is, at this current commit in time, nowhere near the above +description. + +Once all of this is done in code I want to make sure the static compilation +configuration does not rely on function pointers, but on functions +themselves. This is probably done through macros. |
