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 
293 
358 
375 
407 
440 
458 
475 
490 
506 
522 
538 
564 
612 
656 
688 
701 
714 
724 
738 
754 
764 
774 
784 
793 
804  barrier,
805 
822 
836 
851 
885 
909 
927 
944 
960 
1014 
1027 
1041 
1061 
1081 
1104  draw,
1105 
1131  draw_indexed,
1132 
1146  dispatch = 54,
1147 
1159  dispatch_mesh = 89,
1160 
1173  dispatch_rays = 90,
1174 
1200 
1217  copy_resource,
1218 
1236 
1253 
1285 
1302 
1325 
1350 
1373 
1387 
1402 
1417 
1430  begin_query,
1431 
1446  end_query,
1447 
1460 
1473 
1488 
1500  reset_command_list = 70,
1501 
1515 
1530 
1545 
1565  present,
1566 
1579  set_fullscreen_state = 93,
1580 
1585  reshade_present = 75,
1586 
1592 
1598 
1606 
1624 
1634 
1640 
1646 
1655 
1662 
1671 
1680 
1690 
1700 
1701 #if RESHADE_ADDON
1702  max = 95 // Last value used internally by ReShade to determine number of events in this enum
1703 #endif
1704  };
1705 
1706  template <addon_event ev>
1707  struct addon_event_traits;
1708 
1709 #define RESHADE_DEFINE_ADDON_EVENT_TRAITS(ev, ret, ...) \
1710  template <> \
1711  struct addon_event_traits<ev> { \
1712  using decl = ret(*)(__VA_ARGS__); \
1713  using type = ret; \
1714  }
1715 
1716  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_device, void, api::device *device);
1718 
1719  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_command_list, void, api::command_list *cmd_list);
1720  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_command_list, void, api::command_list *cmd_list);
1721 
1722  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_command_queue, void, api::command_queue *queue);
1724 
1725  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_swapchain, void, api::swapchain *swapchain);
1726  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_swapchain, bool, api::swapchain_desc &desc, void *hwnd);
1727  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_swapchain, void, api::swapchain *swapchain);
1728 
1729  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_effect_runtime, void, api::effect_runtime *runtime);
1730  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_effect_runtime, void, api::effect_runtime *runtime);
1731 
1732  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_sampler, void, api::device *device, const api::sampler_desc &desc, api::sampler sampler);
1733  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_sampler, bool, api::device *device, api::sampler_desc &desc);
1734  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_sampler, void, api::device *device, api::sampler sampler);
1735 
1736  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);
1737  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);
1738  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_resource, void, api::device *device, api::resource resource);
1739 
1740  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);
1741  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);
1742  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_resource_view, void, api::device *device, api::resource_view view);
1743 
1744  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);
1745  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::unmap_buffer_region, void, api::device *device, api::resource resource);
1746  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);
1747  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::unmap_texture_region, void, api::device *device, api::resource resource, uint32_t subresource);
1748 
1749  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);
1750  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);
1751 
1752  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);
1753  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);
1754  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_pipeline, void, api::device *device, api::pipeline pipeline);
1755 
1756  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);
1757  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_pipeline_layout, bool, api::device *device, uint32_t &param_count, api::pipeline_layout_param *&params);
1758  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_pipeline_layout, void, api::device *device, api::pipeline_layout layout);
1759 
1760  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_descriptor_tables, bool, api::device *device, uint32_t count, const api::descriptor_table_copy *copies);
1761  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::update_descriptor_tables, bool, api::device *device, uint32_t count, const api::descriptor_table_update *updates);
1762 
1763  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::init_query_heap, void, api::device *device, api::query_type type, uint32_t size, api::query_heap heap);
1764  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::create_query_heap, bool, api::device *device, api::query_type type, uint32_t &size);
1765  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::destroy_query_heap, void, api::device *device, api::query_heap heap);
1766 
1767  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);
1768 
1769  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);
1770 
1771  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);
1772  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::end_render_pass, void, api::command_list *cmd_list);
1773  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);
1774 
1775  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::bind_pipeline, void, api::command_list *cmd_list, api::pipeline_stage stages, api::pipeline pipeline);
1776  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);
1777  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);
1778  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);
1779  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);
1780  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);
1781  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);
1782  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);
1783  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);
1784  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);
1785 
1786  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);
1787  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);
1788  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);
1789  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);
1790  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);
1791  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);
1792 
1793  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::copy_resource, bool, api::command_list *cmd_list, api::resource source, api::resource dest);
1794  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);
1795  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);
1796  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);
1797  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);
1798  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, int32_t dest_x, int32_t dest_y, int32_t dest_z, api::format format);
1799 
1800  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);
1801  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);
1802  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);
1803  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);
1804 
1805  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::generate_mipmaps, bool, api::command_list *cmd_list, api::resource_view srv);
1806 
1807  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);
1808  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);
1809  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);
1810 
1811  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);
1812  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);
1813 
1814  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reset_command_list, void, api::command_list *cmd_list);
1815  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::close_command_list, void, api::command_list *cmd_list);
1816 
1817  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::execute_command_list, void, api::command_queue *queue, api::command_list *cmd_list);
1818  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::execute_secondary_command_list, void, api::command_list *cmd_list, api::command_list *secondary_cmd_list);
1819 
1820  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);
1821  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::set_fullscreen_state, bool, api::swapchain *swapchain, bool fullscreen, void *hmonitor);
1822 
1823  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_present, void, api::effect_runtime *runtime);
1824  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);
1825  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);
1826  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_reloaded_effects, void, api::effect_runtime *runtime);
1827 
1828  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);
1829  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_set_technique_state, bool, api::effect_runtime *runtime, api::effect_technique technique, bool enabled);
1830 
1831  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_overlay, void, api::effect_runtime *runtime);
1832  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_screenshot, void, api::effect_runtime *runtime, const char *path);
1833 
1834  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);
1835 
1836  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_set_effects_state, bool, api::effect_runtime *runtime, bool enabled);
1837  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_set_current_preset_path, void, api::effect_runtime *runtime, const char *path);
1838  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_reorder_techniques, bool, api::effect_runtime *runtime, size_t count, api::effect_technique *techniques);
1839 
1840  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_open_overlay, bool, api::effect_runtime *runtime, bool open, api::input_source source);
1841 
1842  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_overlay_uniform_variable, bool, api::effect_runtime *runtime, api::effect_uniform_variable variable);
1843  RESHADE_DEFINE_ADDON_EVENT_TRAITS(addon_event::reshade_overlay_technique, bool, api::effect_runtime *runtime, api::effect_technique technique);
1844 }
acceleration_structure_build_mode
The available acceleration structure build modes.
Definition: reshade_api_resource.hpp:560
query_type
The available query types.
Definition: reshade_api_pipeline.hpp:1130
acceleration_structure_type
The available acceleration structure types.
Definition: reshade_api_resource.hpp:539
dynamic_state
A list of all possible render pipeline states that can be set independent of pipeline state objects.
Definition: reshade_api_pipeline.hpp:1172
pipeline_stage
A list of flags that represent the available pipeline stages in the render pipeline.
Definition: reshade_api_pipeline.hpp:45
indirect_command
The available indirect command types.
Definition: reshade_api_device.hpp:639
input_source
Input source for events triggered by user input.
Definition: reshade_api.hpp:38
map_access
The available memory mapping access types.
Definition: reshade_api_resource.hpp:142
acceleration_structure_copy_mode
The available acceleration structure copy modes.
Definition: reshade_api_resource.hpp:549
acceleration_structure_build_flags
The available acceleration structure build flags.
Definition: reshade_api_resource.hpp:569
format
The available data and texture formats. This is mostly compatible with 'DXGI_FORMAT'.
Definition: reshade_api_format.hpp:18
filter_mode
The available filtering modes used for texture sampling operations.
Definition: reshade_api_resource.hpp:50
shader_stage
A list of flags that represent the available shader stages in the render pipeline.
Definition: reshade_api_pipeline.hpp:16
resource_usage
A list of flags that specify how a resource is to be used. This needs to be specified during creation...
Definition: reshade_api_resource.hpp:199
Definition: reshade.hpp:52
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...
@ 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:1709