Please note that Oryol is currently not actively maintained and hasn't been for a long time, my focus is currently on the Sokol headers and (from time to time) on the Chips emulator stuff.
Oryol
A small, portable and extensible 3D coding framework written in C++:
- simple Orthodox C++ coding style and APIs
- extensible through external code modules living in git repositories
- runs on OSX, Linux (incl RaspberryPi), Windows, iOS, Android, emscripten, from the same C++ source
- renders through GL, GLES2, WebGL, Metal, D3D11 from same shader source
- produces small executables (e.g. emscripten WebGL demos starting at around 100 Kbytes)
- async data loading from web or disc
Build Status:
Platform | Build Status |
---|---|
OSX + Linux (OpenGL) | |
Windows (OpenGL + D3D11) |
Live Demos:
- Oryol Core Samples: http://floooh.github.io/oryol/
- Oryol Extension Samples: http://floooh.github.io/oryol-samples/
- KC85 emulator: http://floooh.github.io/virtualkc/
How to Build (Quick'n'Dirty):
You need: cmake, python and your platform's default C/C++ development environment.
> mkdir projects
> cd projects
> git clone --depth 5 https://github.com/floooh/oryol
> cd oryol
> ./fips build
> ./fips run Triangle
In case of problems or for more detailed build info (e.g. how to work with IDEs) see here: How to Build
Getting Started:
- What's New (updated: 22-May-2017)
- How to Build
- Design Manifesto
- 10,000ft View
- Core Module
- IO Module
- Input Module
- Gfx Module
- Resource Module
- HttpFS Module
- LocalFS Module
Useful Blog Posts:
- System Design Philosophy
- SPIRV-based Shader Pipeline
- WebGL2/RenderPass Merge
- About Webpage Integration (asm.js/wasm)
- Slimmer asm.js/wasm Applications
- 2016 Spring Cleaning
- Tour of 3rd-party Code (2016)
- Gfx Module Changes (2016)
- Tour of the Metal Renderer
Extension Modules:
- Skeletal Animation System: https://github.com/floooh/oryol-animation
- Dear Imgui integration: https://github.com/floooh/oryol-imgui
- Nuklear UI integration: https://github.com/floooh/oryol-nuklear
- TurboBadger UI integration: https://github.com/floooh/oryol-tbui
- OpenAL based sound module: https://github.com/floooh/oryol-sound
- SoLoud portable audio library: https://github.com/floooh/fips-soloud
See the Oryol Extension Sample webpage for more interesting 3rd-party library integrations.
Tools etc.:
- Oryol Asset Tools (WIP): https://github.com/floooh/oryol-tools
- Oryol Fileformat Definitions: https://github.com/floooh/oryol-fileformats
Standalone App Demo:
A simple standalone app using Oryol: https://github.com/floooh/oryol-test-app
Videos
Please note that these videos use older versions of the Gfx module, details have changed (and will continue to change at least until the Vulkan and DX12 renderer backends have been implemented).
- Coding a triangle from scratch OSX, Windows
- Building a standalone app
- Compiling and debugging in QtCreator and CLion