An XNA-inspired 3D graphics library with modern capabilities.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Caleb Cornett 6b6823ca88 Forgot a semicolon... 2 years ago
Vulkan-Headers@1d99b835ec update vulkan headers 3 years ago
include Revise swapchain management + remove external 2 years ago
src Forgot a semicolon... 2 years ago
visualc fix empty compute image descriptor set creation 3 years ago
.drone.yml fix windows build release path 3 years ago
.gitignore remove FNA3D dependency 3 years ago
.gitmodules DroneCI (#12) 3 years ago
CMakeLists.txt image load and save 3 years ago
LICENSE fix LICENSE file 3 years ago update build badge 3 years ago

Build Status

This is Refresh, an XNA-inspired 3D graphics library with modern capabilities.


Refresh is licensed under the zlib license. See LICENSE for details.

About Refresh

Refresh is directly inspired by FNA3D and intended to be a replacement for XNA's Graphics namespace. XNA 4.0 is a powerful API, but its shader system is outdated and certain restrictions are awkward to handle in a modern context. In the way that XNA was "one step above" DX9, Refresh intends to be "one step above" Vulkan. It should map nicely to modern graphics APIs. Refresh will initially have a Vulkan runtime implementation. Support for other APIs like DX12 may come later. For shaders, we consume SPIR-V bytecode.


Refresh depends on SDL2 for portability. Refresh never explicitly uses the C runtime.

Building Refresh

For *nix platforms, use CMake:

$ mkdir build/
$ cd build/
$ cmake ../
$ make

For Windows, use the Refresh.sln in the "visualc" folder.

Want to contribute?

Issues can be reported and patches contributed via Github: