ReShade is an advanced, fully generic post-processing injector for games and video software. Imagine your favorite game with ambient occlusion, real depth of field effects, color correction and more ... ReShade exposes an automated and generic way to access both frame color and depth information and all the tools to make it happen.
You'll need both Git and Visual Studio 2015 or higher to build ReShade. Latter is required since the project makes use of various C++11 and C++17 features.
- Clone this repository including all Git submodules
- Open the Visual Studio solution
- Select either the "32-bit" or "64-bit" target platform and build the solution (this will build ReShade and all dependencies)
Any contributions to the project are welcomed, it's recommended to use GitHub pull requests.
All the source code is licensed under the conditions of the BSD 3-clause license.
|/setup||Setup tool source code|
|/source||ReShade source code|
|/source/d3d9||Direct3D 9 hooks and runtime implementation|
|/source/d3d10||Direct3D 10 hooks and runtime implementation|
|/source/d3d11||Direct3D 11 hooks and runtime implementation|
|/source/opengl||OpenGL hooks and runtime implementation|
|/source/windows||Network and window management hooks|
|/source/constant_folding.cpp||Various rules that fold incoming constant abstract syntax tree expressions|
|/source/directory_watcher.cpp||Class which notifies on file modifications|
|/source/filesystem.cpp||Helper functions for file and path management|
|/source/hook_manager.cpp||Management of the different hooking methods and automatic hooking based on DLL export matching|
|/source/ini_file.cpp||INI file format parser|
|/source/input.cpp||Mouse and keyboard input management|
|/source/lexer.cpp||Hand-written tokenizer for ReShade FX code|
|/source/main.cpp||DLL main entry point|
|/source/parser.cpp||Hand-written recursive descent parser for ReShade FX code|
|/source/preprocessor.cpp||C-style preprocessor for ReShade FX code|
|/source/resource_loading.cpp||Win32 DLL resource loader|
|/source/runtime.cpp||Main code interface managing the in-game user interface, effects etc.|
|/source/runtime_objects.cpp||Constant buffer read/write and data type conversion|
|/source/symbol_table.cpp||Symbol table managing functions and variables while parsing ReShade FX code|
|/tools||Additional build tools|