___ ___ ___ __
| |__ | |__) | | | |\/|
| |___ | | \ | \__/ | |
Vulkan-based tetrachromacy display engine.
Refer to App.h for details and documentations on developing self-contained applications that writes to both RGB and OCV color spaces.
Engine backend consists of core logic on vulkan rendering, presentation, and even-odd frame synchronization.
To determine even/odd-ness of the frame to present, the engine relies on the total number of
vertical blanking periods % 2. This information is obtained using vkGetSwapchainCounterEXT, when the engine runs under kEvenOddHardwareSync
.
kEvenOddSoftwareSync
mode provides an inaccurate simulation for frame synchronization, useful for
developing on devices without discrete GPU.
CMake
- Vulkan SDK
make
orninja
- openAL
- libsndfile
- openSSL
- NVIDIA GPU supporting
VK_EXT_display_surface_counter
set VULKAN_LIB_PATH
and MOLTENVK_LIB_PATH
in CMakeLists.txt
to your own path after installing Vulkan SDK
brew install freetype
validate that /opt/homebrew/include/freetype2
and /opt/homebrew/lib/libfreetype.dylib
contains freetype library and include files.
install X11
and Xrandr
for direct display access, for hardware even-odd frame sync
install freetype
sudo apt-get install libfreetype6-dev
tbd...
Config loading is not supported yet. To configure run option, modify Tetrium::InitOptions options
field to set display mode.
Theory of Human Tetrachromatic Color Experience and Printing