Porting Echo to a new platform requires quite a bit of work. This document lists each of the things you need to address and explains each in detail.
==Organising your files==
Any source files you want to add should go into `src/Platforms/YourPlatform` and headers in `echo/Platforms/YourPlatform`
==Platform namespace==
Contains all of the functions that give access to creating the various platform specific objects.
==Execution Model==
Implement an `ExecutionModel` class.
==Timing==
Implement the platform methods for `CPUTimer` in `Platforms/YourPlatform/PlaformTimingLibraryCPUTimer.cpp`
==File System==
- If needed create a `FileSystemSource` compatible with your platform.
Otherwise if your operating system manages a file system for you then you can configure `FileSystemSourceFile`.
==Threading==
Need to implement:
- The platform methods for `Thread` in `Platforms/YourPlatform/PlaformThreadingLibraryThread.cpp
- The platform methods for `Mutex` in `Platforms/YourPlatform/PlaformThreadingLibraryMutex.cpp
==Graphics==
Need to implement the following:
- A `RenderTarget`
- A `Texture` as `include/echo/Platforms/YourPlatform/PlatformGraphicsLibraryTexture.h` and `src/Platforms/YourPlatform/PlatformGraphicsLibraryTexture.cpp`
==Audio==
Need to implement the following:
- Audio system
==Shell==
If you want applications to be able to execute commands via the Shell object you'll need to implement a Shell class.