This is a generic post-processing injector for games and video software. It exposes an automated way to access both frame color and depth information and a custom shader language called ReShade FX to write effects like ambient occlusion, depth of field, color correction and more which work everywhere.
ReShade can optionally load add-ons, DLLs that make use of the ReShade API to extend functionality of both ReShade and/or the application ReShade is being applied to. To get started on how to write your own add-on, check out the API reference.
The ReShade FX shader compiler contained in this repository is standalone, so can be integrated into other projects as well. Simply add all
source/effect_*.* files to your project and use it similar to the fxc example.
You'll need Visual Studio 2017 or higher to build ReShade and Python for the
- Clone this repository including all Git submodules
- Open the Visual Studio solution
- Select either the
64-bittarget platform and build the solution.
This will build ReShade and all dependencies. To build the setup tool, first build the
Releaseconfiguration for both
64-bittargets and only afterwards build the
Release Setupconfiguration (does not matter which target is selected then).
A quick overview of what some of the source code files contain:
|dll_log.cpp||Simple file logger implementation|
|dll_main.cpp||Main entry point (and optional test application)|
|dll_resources.cpp||Access to DLL resource data (e.g. built-in shaders)|
|effect_lexer.cpp||Lexical analyzer for C-like languages|
|effect_parser.cpp||Parser for the ReShade FX shader language|
|effect_preprocessor.cpp||C-like preprocessor implementation|
|hook.cpp||Wrapper around MinHook which tracks associated function pointers|
|hook_manager.cpp||Automatic hook installation based on DLL exports|
|input.cpp||Keyboard and mouse input management and window message queue hooks|
|runtime.cpp||Core ReShade runtime including effect and preset management|
|runtime_gui.cpp||Overlay rendering and everything user interface related|
Any contributions to the project are welcomed, it's recommended to use GitHub pull requests.
Feedback and Support
All source code in this repository is licensed under a BSD 3-clause license.