ReShade
A generic post-processing injector for games and video software.
reshade_events.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Patrick Mours
3  * SPDX-License-Identifier: BSD-3-Clause OR MIT
4  */
5 
6 #pragma once
7 
8 #include "reshade_api.hpp"
9 
10 namespace reshade
11 {
12  enum class addon_event : uint32_t
13  {
34 
50 
68 
79 
92 
102 
126 
148 
170 
176 
182 
196  init_sampler,
197 
214 
229 
296 
361 
378 
413 
446 
464 
481 
496 
512 
528 
544 
570 
618 
662 
694 
707 
720 
730 
744 
760 
770 
780 
790 
799 
810  barrier,
811 
828 
842 
857 
892 
916 
934 
951 
967 
1021 
1034 
1048 
1068 
1088 
1111  draw,
1112 
1138  draw_indexed,
1139 
1153  dispatch = 54,
1154 
1166  dispatch_mesh = 89,
1167 
1180  dispatch_rays = 90,
1181 
1207 
1224  copy_resource,
1225 
1243 
1260 
1292 
1309 
1332 
1357 
1380 
1394 
1409 
1424 
1437  begin_query,
1438 
1453  end_query,
1454 
1467 
1480 
1495 
1505 
1517  reset_command_list = 70,
1518 
1532 
1547 
1562 
1582  present,
1583 
1596  set_fullscreen_state = 93,
1597 
1602  reshade_present = 75,
1603 
1609 
1615 
1623 
1641 
1651 
1657 
1663 
1672 
1679 
1688 
1697 
1707 
1717 
1718 #if RESHADE_ADDON
1719  max = 96 // Last value used internally by ReShade to determine number of events in this enum
1720 #endif
1721  };
1722 
1723  template <addon_event ev>
1724  struct addon_event_traits;
1725 
1726 #define RESHADE_DEFINE_ADDON_EVENT_TRAITS(ev, ret, ...) \
1727  template <> \
1728  struct addon_event_traits<ev> { \
1729  using decl = ret(*)(__VA_ARGS__); \
1730  using type = ret; \
1731  }
1732 
1733  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_device, void, api::device *device);
1735 
1736  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_command_list, void, api::command_list *cmd_list);
1737  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_command_list, void, api::command_list *cmd_list);
1738 
1739  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_command_queue, void, api::command_queue *queue);
1741 
1742  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_swapchain, void, api::swapchain *swapchain);
1743  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_swapchain, bool, api::swapchain_desc &desc, void *hwnd);
1744  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_swapchain, void, api::swapchain *swapchain);
1745 
1746  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_effect_runtime, void, api::effect_runtime *runtime);
1747  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_effect_runtime, void, api::effect_runtime *runtime);
1748 
1749  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_sampler, void, api::device *device, const api::sampler_desc &desc, api::sampler sampler);
1750  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_sampler, bool, api::device *device, api::sampler_desc &desc);
1751  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_sampler, void, api::device *device, api::sampler sampler);
1752 
1753  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_resource, void, api::device *device, const api::resource_desc &desc, const api::subresource_data *initial_data, api::resource_usage initial_state, api::resource resource);
1754  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_resource, bool, api::device *device, api::resource_desc &desc, api::subresource_data *initial_data, api::resource_usage initial_state);
1755  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_resource, void, api::device *device, api::resource resource);
1756 
1757  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_resource_view, void, api::device *device, api::resource resource, api::resource_usage usage_type, const api::resource_view_desc &desc, api::resource_view view);
1758  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_resource_view, bool, api::device *device, api::resource resource, api::resource_usage usage_type, api::resource_view_desc &desc);
1759  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_resource_view, void, api::device *device, api::resource_view view);
1760 
1761  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::map_buffer_region, void, api::device *device, api::resource resource, uint64_t offset, uint64_t size, api::map_access access, void **data);
1762  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::unmap_buffer_region, void, api::device *device, api::resource resource);
1763  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::map_texture_region, void, api::device *device, api::resource resource, uint32_t subresource, const api::subresource_box *box, api::map_access access, api::subresource_data *data);
1764  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::unmap_texture_region, void, api::device *device, api::resource resource, uint32_t subresource);
1765 
1766  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::update_buffer_region, bool, api::device *device, const void *data, api::resource resource, uint64_t offset, uint64_t size);
1767  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::update_texture_region, bool, api::device *device, const api::subresource_data &data, api::resource resource, uint32_t subresource, const api::subresource_box *box);
1768 
1769  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_pipeline, void, api::device *device, api::pipeline_layout layout, uint32_t subobject_count, const api::pipeline_subobject *subobjects, api::pipeline pipeline);
1770  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_pipeline, bool, api::device *device, api::pipeline_layout layout, uint32_t subobject_count, const api::pipeline_subobject *subobjects);
1771  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_pipeline, void, api::device *device, api::pipeline pipeline);
1772 
1773  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_pipeline_layout, void, api::device *device, uint32_t param_count, const api::pipeline_layout_param *params, api::pipeline_layout layout);
1774  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_pipeline_layout, bool, api::device *device, uint32_t &param_count, api::pipeline_layout_param *&params);
1775  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_pipeline_layout, void, api::device *device, api::pipeline_layout layout);
1776 
1777  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_descriptor_tables, bool, api::device *device, uint32_t count, const api::descriptor_table_copy *copies);
1778  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::update_descriptor_tables, bool, api::device *device, uint32_t count, const api::descriptor_table_update *updates);
1779 
1780  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_query_heap, void, api::device *device, api::query_type type, uint32_t count, api::query_heap heap);
1781  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_query_heap, bool, api::device *device, api::query_type type, uint32_t &count);
1782  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_query_heap, void, api::device *device, api::query_heap heap);
1783 
1784  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::get_query_heap_results, bool, api::device *device, api::query_heap heap, uint32_t first, uint32_t count, void *results, uint32_t stride);
1785 
1786  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::barrier, void, api::command_list *cmd_list, uint32_t count, const api::resource *resources, const api::resource_usage *old_states, const api::resource_usage *new_states);
1787 
1788  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::begin_render_pass, void, api::command_list *cmd_list, uint32_t count, const api::render_pass_render_target_desc *rts, const api::render_pass_depth_stencil_desc *ds);
1789  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::end_render_pass, void, api::command_list *cmd_list);
1790  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_render_targets_and_depth_stencil, void, api::command_list *cmd_list, uint32_t count, const api::resource_view *rtvs, api::resource_view dsv);
1791 
1792  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_pipeline, void, api::command_list *cmd_list, api::pipeline_stage stages, api::pipeline pipeline);
1793  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_pipeline_states, void, api::command_list *cmd_list, uint32_t count, const api::dynamic_state *states, const uint32_t *values);
1794  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_viewports, void, api::command_list *cmd_list, uint32_t first, uint32_t count, const api::viewport *viewports);
1795  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_scissor_rects, void, api::command_list *cmd_list, uint32_t first, uint32_t count, const api::rect *rects);
1796  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::push_constants, void, api::command_list *cmd_list, api::shader_stage stages, api::pipeline_layout layout, uint32_t layout_param, uint32_t first, uint32_t count, const void *values);
1797  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::push_descriptors, void, api::command_list *cmd_list, api::shader_stage stages, api::pipeline_layout layout, uint32_t layout_param, const api::descriptor_table_update &update);
1798  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_descriptor_tables, void, api::command_list *cmd_list, api::shader_stage stages, api::pipeline_layout layout, uint32_t first, uint32_t count, const api::descriptor_table *tables);
1799  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_index_buffer, void, api::command_list *cmd_list, api::resource buffer, uint64_t offset, uint32_t index_size);
1800  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_vertex_buffers, void, api::command_list *cmd_list, uint32_t first, uint32_t count, const api::resource *buffers, const uint64_t *offsets, const uint32_t *strides);
1801  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_stream_output_buffers, void, api::command_list *cmd_list, uint32_t first, uint32_t count, const api::resource *buffers, const uint64_t *offsets, const uint64_t *max_sizes, const api::resource *counter_buffers, const uint64_t *counter_offsets);
1802 
1803  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::draw, bool, api::command_list *cmd_list, uint32_t vertex_count, uint32_t instance_count, uint32_t first_vertex, uint32_t first_instance);
1804  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::draw_indexed, bool, api::command_list *cmd_list, uint32_t index_count, uint32_t instance_count, uint32_t first_index, int32_t vertex_offset, uint32_t first_instance);
1805  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::dispatch, bool, api::command_list *cmd_list, uint32_t group_count_x, uint32_t group_count_y, uint32_t group_count_z);
1806  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::dispatch_mesh, bool, api::command_list *cmd_list, uint32_t group_count_x, uint32_t group_count_y, uint32_t group_count_z);
1807  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::dispatch_rays, bool, api::command_list *cmd_list, api::resource raygen, uint64_t raygen_offset, uint64_t raygen_size, api::resource miss, uint64_t miss_offset, uint64_t miss_size, uint64_t miss_stride, api::resource hit_group, uint64_t hit_group_offset, uint64_t hit_group_size, uint64_t hit_group_stride, api::resource callable, uint64_t callable_offset, uint64_t callable_size, uint64_t callable_stride, uint32_t width, uint32_t height, uint32_t depth);
1808  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::draw_or_dispatch_indirect, bool, api::command_list *cmd_list, api::indirect_command type, api::resource buffer, uint64_t offset, uint32_t draw_count, uint32_t stride);
1809 
1810  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_resource, bool, api::command_list *cmd_list, api::resource source, api::resource dest);
1811  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_buffer_region, bool, api::command_list *cmd_list, api::resource source, uint64_t source_offset, api::resource dest, uint64_t dest_offset, uint64_t size);
1812  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_buffer_to_texture, bool, api::command_list *cmd_list, api::resource source, uint64_t source_offset, uint32_t row_length, uint32_t slice_height, api::resource dest, uint32_t dest_subresource, const api::subresource_box *dest_box);
1813  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_texture_region, bool, api::command_list *cmd_list, api::resource source, uint32_t source_subresource, const api::subresource_box *source_box, api::resource dest, uint32_t dest_subresource, const api::subresource_box *dest_box, api::filter_mode filter);
1814  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_texture_to_buffer, bool, api::command_list *cmd_list, api::resource source, uint32_t source_subresource, const api::subresource_box *source_box, api::resource dest, uint64_t dest_offset, uint32_t row_length, uint32_t slice_height);
1815  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::resolve_texture_region, bool, api::command_list *cmd_list, api::resource source, uint32_t source_subresource, const api::subresource_box *source_box, api::resource dest, uint32_t dest_subresource, uint32_t dest_x, uint32_t dest_y, uint32_t dest_z, api::format format);
1816 
1817  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::clear_depth_stencil_view, bool, api::command_list *cmd_list, api::resource_view dsv, const float *depth, const uint8_t *stencil, uint32_t rect_count, const api::rect *rects);
1818  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::clear_render_target_view, bool, api::command_list *cmd_list, api::resource_view rtv, const float color[4], uint32_t rect_count, const api::rect *rects);
1819  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::clear_unordered_access_view_uint, bool, api::command_list *cmd_list, api::resource_view uav, const uint32_t values[4], uint32_t rect_count, const api::rect *rects);
1820  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::clear_unordered_access_view_float, bool, api::command_list *cmd_list, api::resource_view uav, const float values[4], uint32_t rect_count, const api::rect *rects);
1821 
1822  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::generate_mipmaps, bool, api::command_list *cmd_list, api::resource_view srv);
1823 
1824  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::begin_query, bool, api::command_list *cmd_list, api::query_heap heap, api::query_type type, uint32_t index);
1825  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::end_query, bool, api::command_list *cmd_list, api::query_heap heap, api::query_type type, uint32_t index);
1826  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_query_heap_results, bool, api::command_list *cmd_list, api::query_heap heap, api::query_type type, uint32_t first, uint32_t count, api::resource dest, uint64_t dest_offset, uint32_t stride);
1827 
1828  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_acceleration_structure, bool, api::command_list *cmd_list, api::resource_view source, api::resource_view dest, api::acceleration_structure_copy_mode mode);
1829  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::build_acceleration_structure, bool, api::command_list *cmd_list, api::acceleration_structure_type type, api::acceleration_structure_build_flags flags, uint32_t input_count, const api::acceleration_structure_build_input *inputs, api::resource scratch, uint64_t scratch_offset, api::resource_view source, api::resource_view dest, api::acceleration_structure_build_mode mode);
1830  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::query_acceleration_structures, bool, api::command_list *cmd_list, uint32_t count, const api::resource_view *acceleration_structures, api::query_heap heap, api::query_type type, uint32_t first);
1831 
1832  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reset_command_list, void, api::command_list *cmd_list);
1833  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::close_command_list, void, api::command_list *cmd_list);
1834 
1835  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::execute_command_list, void, api::command_queue *queue, api::command_list *cmd_list);
1836  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::execute_secondary_command_list, void, api::command_list *cmd_list, api::command_list *secondary_cmd_list);
1837 
1838  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::present, void, api::command_queue *queue, api::swapchain *swapchain, const api::rect *source_rect, const api::rect *dest_rect, uint32_t dirty_rect_count, const api::rect *dirty_rects);
1839  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::set_fullscreen_state, bool, api::swapchain *swapchain, bool fullscreen, void *hmonitor);
1840 
1841  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_present, void, api::effect_runtime *runtime);
1842  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_begin_effects, void, api::effect_runtime *runtime, api::command_list *cmd_list, api::resource_view rtv, api::resource_view rtv_srgb);
1843  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_finish_effects, void, api::effect_runtime *runtime, api::command_list *cmd_list, api::resource_view rtv, api::resource_view rtv_srgb);
1844  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_reloaded_effects, void, api::effect_runtime *runtime);
1845 
1846  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_set_uniform_value, bool, api::effect_runtime *runtime, api::effect_uniform_variable variable, const void *data, size_t size);
1847  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_set_technique_state, bool, api::effect_runtime *runtime, api::effect_technique technique, bool enabled);
1848 
1849  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_overlay, void, api::effect_runtime *runtime);
1850  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_screenshot, void, api::effect_runtime *runtime, const char *path);
1851 
1852  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_render_technique, void, api::effect_runtime *runtime, api::effect_technique technique, api::command_list *cmd_list, api::resource_view rtv, api::resource_view rtv_srgb);
1853 
1854  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_set_effects_state, bool, api::effect_runtime *runtime, bool enabled);
1855  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_set_current_preset_path, void, api::effect_runtime *runtime, const char *path);
1856  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_reorder_techniques, bool, api::effect_runtime *runtime, size_t count, api::effect_technique *techniques);
1857 
1858  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_open_overlay, bool, api::effect_runtime *runtime, bool open, api::input_source source);
1859 
1860  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_overlay_uniform_variable, bool, api::effect_runtime *runtime, api::effect_uniform_variable variable);
1861  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_overlay_technique, bool, api::effect_runtime *runtime, api::effect_technique technique);
1862 }
acceleration_structure_build_mode
Type of an acceleration structure build operation.
Definition: reshade_api_resource.hpp:576
query_type
Type of a query.
Definition: reshade_api_pipeline.hpp:1150
acceleration_structure_type
Type of an acceleration structure.
Definition: reshade_api_resource.hpp:555
dynamic_state
A list of all possible render pipeline states that can be set independent of pipeline state objects.
Definition: reshade_api_pipeline.hpp:1216
pipeline_stage
Flags that specify the pipeline stages in the render pipeline.
Definition: reshade_api_pipeline.hpp:45
indirect_command
Type of an indirect draw/dispatch command.
Definition: reshade_api_device.hpp:646
input_source
Input source for events triggered by user input.
Definition: reshade_api.hpp:38
map_access
Memory mapping access types.
Definition: reshade_api_resource.hpp:142
acceleration_structure_copy_mode
Type of an acceleration structure copy operation.
Definition: reshade_api_resource.hpp:565
acceleration_structure_build_flags
Flags that specify additional parameters to an acceleration structure build operation.
Definition: reshade_api_resource.hpp:585
format
Available data and texture formats. This is mostly compatible with 'DXGI_FORMAT'.
Definition: reshade_api_format.hpp:18
filter_mode
Texture filtering modes available for texture sampling operations.
Definition: reshade_api_resource.hpp:50
shader_stage
Flags that specify the shader stages in the render pipeline.
Definition: reshade_api_pipeline.hpp:16
resource_usage
Flags that specify how a resource is used. This needs to be specified during creation and is also use...
Definition: reshade_api_resource.hpp:215
Definition: reshade.hpp:56
addon_event
Definition: reshade_events.hpp:13
@ execute_secondary_command_list
Called when a secondary command list is executed on a primary command list, before: ID3D11DeviceConte...
@ set_fullscreen_state
Called before: IDXGISwapChain::SetFullscreenState vkAcquireFullScreenExclusiveModeEXT vkReleaseFullSc...
@ destroy_effect_runtime
Called when an effect runtime is reset or destroyed.
@ push_descriptors
Called after: IDirect3DDevice9::SetTexture ID3D10Device::VSSetSamplers ID3D10Device::VSSetShaderResou...
@ bind_pipeline
Called after: IDirect3DDevice9::SetVertexShader IDirect3DDevice9::SetPixelShader IDirect3DDevice9::Se...
@ init_device
Called after successful device creation, from: IDirect3D9::CreateDevice IDirect3D9Ex::CreateDeviceEx ...
@ reshade_present
Called after ReShade has rendered its overlay.
@ clear_render_target_view
Called before: IDirect3DDevice9::Clear IDirect3DDevice9::ColorFill ID3D10Device::ClearRenderTargetVie...
@ reshade_set_technique_state
Called before a technique is enabled or disabled, with the new state.
@ copy_descriptor_tables
Called before: ID3D12Device::CopyDescriptors ID3D12Device::CopyDescriptorsSimple vkUpdateDescriptorSe...
@ execute_command_list
Called when a command list is submitted to a command queue (or an immediate command list is flushed),...
@ bind_index_buffer
Called after: IDirect3DDevice9::SetIndices ID3D10Device::IASetIndexBuffer ID3D11DeviceContext::IASetI...
@ destroy_swapchain
Called on swap chain destruction, before: IDirect3DDevice9::Release (for the implicit swap chain) IDi...
@ bind_pipeline_states
Called after: IDirect3DDevice9::SetRenderState ID3D10Device::IASetPrimitiveTopology ID3D10Device::OMS...
@ dispatch_rays
Called before: ID3D12GraphicsCommandList::DispatchRays vkCmdTraceRaysKHR
@ reshade_overlay
Called between the ImGui::NewFrame and ImGui::EndFrame calls for the ReShade overlay....
@ init_sampler
Called after successful sampler creation from: ID3D10Device::CreateSamplerState ID3D11Device::CreateS...
@ clear_depth_stencil_view
Called before: IDirect3DDevice9::Clear ID3D10Device::ClearDepthStencilView ID3D11DeviceContext::Clear...
@ init_pipeline
Called after successful pipeline creation from: IDirect3DDevice9::CreateVertexShader IDirect3DDevice9...
@ init_effect_runtime
Called after effect runtime initialization (which happens after swap chain creation or a swap chain b...
@ destroy_command_list
Called on command list destruction, before: ID3D11CommandList::Release ID3D12CommandList::Release vkF...
@ destroy_resource_view
Called on resource view destruction, before: IDirect3DResource9::Release ID3D10View::Release ID3D11Vi...
@ draw_or_dispatch_indirect
Called before: ID3D11DeviceContext::DrawInstancedIndirect ID3D11DeviceContext::DrawIndexedInstancedIn...
@ reshade_overlay_technique
Called when a technique is added to the technique list in the overlay. Can be used to replace with cu...
@ close_command_list
Called before: ID3D11DeviceContext::FinishCommandList ID3D12GraphicsCommandList::Close vkEndCommandBu...
@ draw_indexed
Called before: IDirect3DDevice9::DrawIndexedPrimitive IDirect3DDevice9::DrawIndexedPrimitiveUP ID3D10...
@ unmap_texture_region
Called before: IDirect3DSurface9::UnlockRect IDirect3DVolume9::UnlockBox IDirect3DTexture9::UnlockRec...
@ reshade_overlay_uniform_variable
Called when a uniform variable widget is added to the variable list in the overlay....
@ reshade_screenshot
Called after a screenshot was taken and saved to disk, with the path to the saved image file.
@ map_buffer_region
Called after: IDirect3DVertexBuffer9::Lock IDirect3DIndexBuffer9::Lock ID3D10Resource::Map ID3D11Devi...
@ bind_descriptor_tables
Called after: ID3D12GraphicsCommandList::SetComputeRootSignature ID3D12GraphicsCommandList::SetGraphi...
@ reshade_reloaded_effects
Called right after all ReShade effects were reloaded. This occurs during effect runtime initializatio...
@ get_query_heap_results
Called before: vkGetQueryPoolResults
@ generate_mipmaps
Called before: ID3D10Device::GenerateMips ID3D11DeviceContext::GenerateMips glGenerateMipmap glGenera...
@ present
Called before: IDirect3DDevice9::Present IDirect3DDevice9Ex::PresentEx IDirect3DSwapChain9::Present I...
@ bind_viewports
Called after: IDirect3DDevice9::SetViewport IDirect3DDevice9::SetRenderTarget (implicitly updates the...
@ reshade_begin_effects
Called right before ReShade effects are rendered.
@ init_swapchain
Called after successful swap chain creation, from: IDirect3D9::CreateDevice (for the implicit swap ch...
@ create_query_heap
Called on query heap creation, before: ID3D12Device::CreateQueryHeap vkCreateQueryPool
@ copy_texture_to_buffer
Called before: ID3D12GraphicsCommandList::CopyTextureRegion vkCmdCopyImageToBuffer vkCmdCopyImageToBu...
@ init_command_list
Called after successful command list creation, from: ID3D11Device::CreateDeferredContext ID3D11Device...
@ begin_query
Called before: ID3D12GraphicsCommandList::BeginQuery vkCmdBeginQuery vkCmdBeginQueryIndexedEXT
@ reshade_render_technique
Called for each technique after it was rendered, usually between reshade_begin_effects and reshade_fi...
@ create_sampler
Called on sampler creation, before: ID3D10Device::CreateSamplerState ID3D11Device::CreateSamplerState...
@ bind_vertex_buffers
Called after: IDirect3DDevice9::SetStreamSource ID3D10Device::IASetVertexBuffers ID3D11DeviceContext:...
@ reshade_set_uniform_value
Called before a uniform variable is changed, with the new value.
@ bind_scissor_rects
Called after: IDirect3DDevice9::SetScissorRect ID3D10Device::RSSetScissorRects ID3D11DeviceContext::R...
@ update_descriptor_tables
Called before: ID3D12Device::CreateConstantBufferView ID3D12Device::CreateShaderResourceView ID3D12De...
@ copy_resource
Called before: IDirect3DDevice9::UpdateTexture IDirect3DDevice9::GetRenderTargetData ID3D10Device::Co...
@ query_acceleration_structures
Called before: ID3D12GraphicsCommandList4::EmitRaytracingAccelerationStructurePostbuildInfo vkCmdWrit...
@ clear_unordered_access_view_uint
Called before: ID3D11DeviceContext::ClearUnorderedAccessViewUint ID3D12GraphicsCommandList::ClearUnor...
@ resolve_texture_region
Called before: IDirect3DDevice9::StretchRect ID3D10Device::ResolveSubresource ID3D11DeviceContext::Re...
@ init_command_queue
Called after successful command queue creation, from: ID3D12Device::CreateCommandQueue vkCreateDevice...
@ destroy_resource
Called on resource destruction, before: IDirect3DResource9::Release ID3D10Resource::Release ID3D11Res...
@ dispatch_mesh
Called before: ID3D12GraphicsCommandList::DispatchMesh vkCmdDrawMeshTasksEXT
@ clear_unordered_access_view_float
Called before: ID3D11DeviceContext::ClearUnorderedAccessViewFloat ID3D11DeviceContext1::ClearView (fo...
@ update_texture_region
Called before: ID3D10Device::UpdateSubresource ID3D11DeviceContext::UpdateSubresource glTexSubData1D ...
@ map_texture_region
Called after: IDirect3DSurface9::LockRect IDirect3DVolume9::LockBox IDirect3DTexture9::LockRect IDire...
@ build_acceleration_structure
Called before: ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure vkCmdBuildAcceleratio...
@ reset_command_list
Called before: ID3D12GraphicsCommandList::Reset vkBeginCommandBuffer
@ copy_buffer_region
Called before: ID3D12GraphicsCommandList::CopyBufferRegion glCopyBufferSubData glCopyNamedBufferSubDa...
@ init_resource_view
Called after successful resource view creation from: IDirect3DDevice9::CreateTexture IDirect3DDevice9...
@ draw
Called before: IDirect3DDevice9::DrawPrimitive IDirect3DDevice9::DrawPrimitiveUP IDirect3DDevice9::Pr...
@ destroy_command_queue
Called on command queue destruction, before: ID3D12CommandQueue::Release vkDestroyDevice (for every q...
@ destroy_pipeline_layout
Called on pipeline layout destruction, before: ID3D12RootSignature::Release VkDestroyPipelineLayout
@ copy_acceleration_structure
Called before: ID3D12GraphicsCommandList4::CopyRaytracingAccelerationStructure vkCmdCopyAccelerationS...
@ update_buffer_region
Called before: ID3D10Device::UpdateSubresource ID3D11DeviceContext::UpdateSubresource glBufferSubData...
@ bind_render_targets_and_depth_stencil
Called after: IDirect3DDevice9::SetRenderTarget IDirect3DDevice9::SetDepthStencilSurface ID3D10Device...
@ dispatch
Called before: ID3D11DeviceContext::Dispatch ID3D12GraphicsCommandList::Dispatch glDispatchCompute vk...
@ end_query
Called before: ID3D12GraphicsCommandList::EndQuery vkCmdEndQuery vkCmdEndQueryIndexedEXT vkCmdWriteTi...
@ init_query_heap
Called after successful query heap creation from: ID3D12Device::CreateQueryHeap vkCreateQueryPool
@ init_pipeline_layout
Called after successful pipeline layout creation from: ID3D12Device::CreateRootSignature vkCreatePipe...
@ copy_buffer_to_texture
Called before: ID3D12GraphicsCommandList::CopyTextureRegion vkCmdCopyBufferToImage vkCmdCopyBufferToI...
@ end_render_pass
Called before: ID3D12GraphicsCommandList4::EndRenderPass vkCmdEndRenderPass vkCmdEndRenderPass2 vkCmd...
@ destroy_pipeline
Called on pipeline destruction, before: ID3D10VertexShader::Release ID3D10GeometryShader::Release ID3...
@ begin_render_pass
Called before: ID3D12GraphicsCommandList4::BeginRenderPass vkCmdBeginRenderPass vkCmdBeginRenderPass2...
@ reshade_set_effects_state
Called when all effects are about to be enabled or disabled.
@ destroy_query_heap
Called on query heap destruction, before: ID3D12QueryHeap::Release vkDestroyQueryPool
@ reshade_set_current_preset_path
Called after a preset was loaded and applied. This occurs after effect reloading or when the user cho...
@ unmap_buffer_region
Called before: IDirect3DVertexBuffer9::Unlock IDirect3DIndexBuffer9::Unlock ID3D10Resource::Unmap ID3...
@ push_constants
Called after: IDirect3DDevice9::SetVertexShaderConstantF IDirect3DDevice9::SetPixelShaderConstantF ID...
@ reshade_finish_effects
Called right after ReShade effects were rendered.
@ create_pipeline_layout
Called on pipeline layout creation, before: ID3D12Device::CreateRootSignature vkCreatePipelineLayout
@ destroy_sampler
Called on sampler destruction, before: ID3D10SamplerState::Release ID3D11SamplerState::Release glDele...
@ destroy_device
Called on device destruction, before: IDirect3DDevice9::Reset IDirect3DDevice9Ex::ResetEx IDirect3DDe...
@ init_resource
Called after successful resource creation from: IDirect3DDevice9::CreateVertexBuffer IDirect3DDevice9...
@ reshade_open_overlay
Called when the ReShade overlay is about to be opened or closed.
@ create_swapchain
Called on swap chain creation, before: IDirect3D9::CreateDevice (for the implicit swap chain) IDirect...
@ reshade_reorder_techniques
Called when the rendering order of loaded techniques is changed, with a handle array specifying the n...
@ copy_query_heap_results
Called before: ID3D12GraphicsCommandList::ResolveQueryData vkCmdCopyQueryPoolResults
@ create_resource
Called on resource creation, before: IDirect3DDevice9::CreateVertexBuffer IDirect3DDevice9::CreateInd...
@ bind_stream_output_buffers
Called after: IDirect3DDevice9::ProcessVertices ID3D10Device::SOSetTargets ID3D11DeviceContext::SOSet...
@ create_pipeline
Called on pipeline creation, before: IDirect3DDevice9::CreateVertexShader IDirect3DDevice9::CreatePix...
@ copy_texture_region
Called before: IDirect3DDevice9::UpdateSurface IDirect3DDevice9::StretchRect ID3D10Device::CopySubres...
@ barrier
Called after: ID3D12GraphicsCommandList::ResourceBarrier ID3D12GraphicsCommandList7::Barrier vkCmdPip...
@ create_resource_view
Called on resource view creation, before: ID3D10Device::CreateShaderResourceView ID3D10Device::Create...
#define RESHADE_DEFINE_ADDON_EVENT_TRAITS(ev, ret,...)
Definition: reshade_events.hpp:1726