An XNA-inspired 3D graphics library with modern capabilities.
 
 
 
Go to file
cosmonaut 66341b8550 initial Refresh2 conversion 2024-06-05 00:07:44 -07:00
Vulkan-Headers@1d99b835ec update vulkan headers 2021-02-27 15:14:48 -08:00
include initial Refresh2 conversion 2024-06-05 00:07:44 -07:00
shadercompiler fix path quotes in shadercompiler 2024-01-11 16:26:08 -08:00
src initial Refresh2 conversion 2024-06-05 00:07:44 -07:00
visualc fix empty compute image descriptor set creation 2021-01-31 14:30:16 -08:00
.drone.yml fix windows build release path 2021-02-27 15:35:46 -08:00
.editorconfig convert all spaces to tabs 2022-02-25 13:42:11 -08:00
.gitignore initial Refresh2 conversion 2024-06-05 00:07:44 -07:00
.gitmodules DroneCI (#12) 2021-01-04 23:31:56 -08:00
CMakeLists.txt initial Refresh2 conversion 2024-06-05 00:07:44 -07:00
LICENSE fix LICENSE file 2021-01-05 16:30:27 -08:00
README.md initial Refresh2 conversion 2024-06-05 00:07:44 -07:00

README.md

This is Refresh, a cross-platform hardware-accelerated graphics library with modern capabilities.

License

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

About Refresh

The contemporary graphics landscape is daunting. Older and easier-to-learn APIs like OpenGL are being replaced by explicit APIs like Vulkan. These newer APIs have many appealing features, like threading support and bundled state management, but using them in practice requires complex management of memory and synchronization. What's a developer to do?

Refresh is a middle ground between these two extremes. The API aims for the simplicity of OpenGL combined with the power of Vulkan. Refresh supports all desktop platforms. Vulkan and D3D11 backends are complete, and Metal support is coming soon. Refresh supports portable shaders through SPIRV-Cross, but it also allows you to provide backend-specific shader formats, so you can use any shader toolchain you like.

Dependencies

Refresh depends on SDL2 for portability. Refresh never explicitly uses the C runtime. SPIRV-Cross is dynamically linked as an optional dependency.

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:

https://github.com/MoonsideGames/Refresh