Shell abstraction layer and rendering interface for 3D applications
Go to file
Jack Andersen 5e0b2fd4e0 Add .gitignore 2016-01-15 13:33:49 -10:00
LogVisor@55b81ec091 Community Concensus MIT LICENSE revert 2016-01-05 09:15:23 -10:00
glslang@0ea3c3f01a Update glslang 2016-01-14 17:35:44 -10:00
include/boo Preliminary Vulkan shader pipeline factory 2016-01-14 12:46:05 -10:00
lib Merge commit 'dc3f289' 2016-01-14 16:25:02 -08:00
test IGraphicsDataToken rename 2015-12-17 17:25:23 -10:00
.gitignore Add .gitignore 2016-01-15 13:33:49 -10:00
.gitmodules Add glslang submodule 2016-01-13 15:20:25 -10:00
CMakeLists.txt Trailing spaces nit-pick 2016-01-14 17:17:00 -10:00
GLEW-LICENSE Integrated GLEW; began migration to Xlib 2015-10-30 18:28:21 -10:00
InputDeviceClasses.cpp Merge branch 'master' of https://github.com/RetroView/libBoo into ds3 2015-08-18 16:32:19 -07:00
LICENSE Community Concensus MIT LICENSE revert 2016-01-05 09:15:23 -10:00
README.md Update README.md 2015-11-26 08:41:11 -10:00

README.md

libBoo

libBoo is a cross-platform windowing and event manager similar to SDL and SFML, with additional 3D rendering functionality.

The exclusive focus of libBoo is 3D rendering using polygon-rasterization APIs like OpenGL or Direct3D. It exposes a unified command-queue API for calling the underlying graphics API.

The only per-platform responsibility of the client code is providing the shaders' source. Drawing, resource-management and state-switching are performed using the unified API; these may be written once for all platforms.

Client code is entered via the appMain method supplied in a callback object. This code executes on a dedicated thread with graphics command context available. The API may be used to synchronize loops on the client thread with the display refresh-rate.

Supported Backends

  • OpenGL 3.3+
  • Direct3D 11/12
  • Metal 1.1 (OS X 10.11 only for now, iOS coming soon)
  • [Coming soon] OpenGL ES 3.0
  • [Coming soon] Vulkan