8 #define RESHADE_DEFINE_HANDLE(name) \
9 typedef struct { uint64_t handle; } name; \
10 constexpr bool operator< (name lhs, name rhs) { return lhs.handle < rhs.handle; } \
11 constexpr bool operator!=(name lhs, name rhs) { return lhs.handle != rhs.handle; } \
12 constexpr bool operator!=(name lhs, uint64_t rhs) { return lhs.handle != rhs; } \
13 constexpr bool operator==(name lhs, name rhs) { return lhs.handle == rhs.handle; } \
14 constexpr bool operator==(name lhs, uint64_t rhs) { return lhs.handle == rhs; }
16 #define RESHADE_DEFINE_ENUM_FLAG_OPERATORS(type) \
17 constexpr type operator~(type a) { return static_cast<type>(~static_cast<uint32_t>(a)); } \
18 inline type &operator&=(type &a, type b) { return reinterpret_cast<type &>(reinterpret_cast<uint32_t &>(a) &= static_cast<uint32_t>(b)); } \
19 constexpr type operator&(type a, type b) { return static_cast<type>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); } \
20 inline type &operator|=(type &a, type b) { return reinterpret_cast<type &>(reinterpret_cast<uint32_t &>(a) |= static_cast<uint32_t>(b)); } \
21 constexpr type operator|(type a, type b) { return static_cast<type>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); } \
22 inline type &operator^=(type &a, type b) { return reinterpret_cast<type &>(reinterpret_cast<uint32_t &>(a) ^= static_cast<uint32_t>(b)); } \
23 constexpr type operator^(type a, type b) { return static_cast<type>(static_cast<uint32_t>(a) ^ static_cast<uint32_t>(b)); } \
24 constexpr bool operator==(type lhs, uint32_t rhs) { return static_cast<uint32_t>(lhs) == rhs; } \
25 constexpr bool operator!=(type lhs, uint32_t rhs) { return static_cast<uint32_t>(lhs) != rhs; }
29 namespace reshade {
namespace api
243 type(type), texture({ width, height, depth_or_layers, levels,
format, samples }), heap(heap), usage(usage),
flags(flags) {}
283 uint16_t depth_or_layers = 1;
296 uint16_t samples = 1;
354 type(type),
format(
format), texture({ first_level, levels, first_layer, layers }) {}
381 uint64_t size = UINT64_MAX;
392 uint32_t first_level = 0;
397 uint32_t level_count = UINT32_MAX;
401 uint32_t first_layer = 0;
406 uint32_t layer_count = UINT32_MAX;
606 float transform[3][4];
620 constexpr
acceleration_structure_build_input(
api::resource vertex_buffer, uint64_t vertex_offset, uint32_t vertex_count, uint64_t vertex_stride,
api::format vertex_format,
api::resource index_buffer, uint64_t index_offset, uint32_t index_count,
api::format index_format, uint64_t transform_address = 0) : type(
acceleration_structure_build_input_type::
triangles),
triangles({
vertex_buffer, vertex_offset, vertex_count, vertex_stride, vertex_format,
index_buffer, index_offset, index_count, index_format, transform_address }) {}
637 uint64_t vertex_offset = 0;
638 uint32_t vertex_count = 0;
639 uint64_t vertex_stride = 0;
642 uint64_t index_offset = 0;
643 uint32_t index_count = 0;
646 uint64_t transform_offset = 0;
668 bool array_of_pointers =
false;
resource_view_type
The available resource view types. These identify how a resource view interprets the data of its reso...
Definition: reshade_api_resource.hpp:326
@ texture_2d_multisample_array
acceleration_structure_build_mode
The available acceleration structure build modes.
Definition: reshade_api_resource.hpp:560
acceleration_structure_type
The available acceleration structure types.
Definition: reshade_api_resource.hpp:539
compare_op
The available comparison types.
Definition: reshade_api_resource.hpp:35
render_pass_store_op
Specifies how the contents of a render target or depth-stencil view are treated at the end of a rende...
Definition: reshade_api_resource.hpp:471
resource_type
The available resource types. The type of a resource is specified during creation and is immutable....
Definition: reshade_api_resource.hpp:169
memory_heap
The available memory heap types, which give a hint as to where to place the memory allocation for a r...
Definition: reshade_api_resource.hpp:153
acceleration_structure_build_input_type
The available acceleration structure build input types.
Definition: reshade_api_resource.hpp:583
render_pass_load_op
Specifies how the contents of a render target or depth-stencil view are treated at the start of a ren...
Definition: reshade_api_resource.hpp:460
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
acceleration_structure_build_input_flags
The available acceleration structure build input flags.
Definition: reshade_api_resource.hpp:593
@ no_duplicate_any_hit_invocation
@ flags
Additional pipeline creation flags. Sub-object data is a pointer to a pipeline_flags value.
format
The available data and texture formats. This is mostly compatible with 'DXGI_FORMAT'.
Definition: reshade_api_format.hpp:18
texture_address_mode
Specifies behavior of sampling with texture coordinates outside a texture resource.
Definition: reshade_api_resource.hpp:77
filter_mode
The available filtering modes used for texture sampling operations.
Definition: reshade_api_resource.hpp:50
@ min_mag_anisotropic_mip_point
@ compare_min_linear_mag_mip_point
@ compare_min_mag_point_mip_linear
@ min_point_mag_mip_linear
@ compare_min_point_mag_linear_mip_point
@ compare_min_linear_mag_point_mip_linear
@ compare_min_mag_mip_linear
@ min_mag_linear_mip_point
@ min_mag_point_mip_linear
@ compare_min_mag_mip_point
@ min_linear_mag_point_mip_linear
@ compare_min_mag_linear_mip_point
@ min_linear_mag_mip_point
@ compare_min_point_mag_mip_linear
@ min_point_mag_linear_mip_point
@ compare_min_mag_anisotropic_mip_point
resource_flags
A list of flags that describe additional parameters of a resource.
Definition: reshade_api_resource.hpp:182
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
@ shader_resource_non_pixel
Definition: reshade.hpp:52
#define RESHADE_DEFINE_ENUM_FLAG_OPERATORS(type)
Definition: reshade_api_resource.hpp:16
#define RESHADE_DEFINE_HANDLE(name)
Definition: reshade_api_resource.hpp:8
Describes an instance in a top-level acceleration structure. The data in acceleration_structure_build...
Definition: reshade_api_resource.hpp:605
uint32_t shader_binding_table_offset
Definition: reshade_api_resource.hpp:609
uint32_t mask
Definition: reshade_api_resource.hpp:608
uint32_t flags
Definition: reshade_api_resource.hpp:610
uint32_t custom_index
Definition: reshade_api_resource.hpp:607
uint64_t acceleration_structure_gpu_address
Definition: reshade_api_resource.hpp:611
Describes a depth-stencil view and how it is treated at the start and end of a render pass.
Definition: reshade_api_resource.hpp:481
render_pass_load_op depth_load_op
Specifies how the depth contents of the depth-stencil view are treated at the start of the render pas...
Definition: reshade_api_resource.hpp:489
render_pass_store_op depth_store_op
Specifies how the depth contents of the depth-stencil view are treated at the end of the render pass.
Definition: reshade_api_resource.hpp:493
render_pass_store_op stencil_store_op
Specifies how the stencil contents of the depth-stencil view are treated at the end of the render pas...
Definition: reshade_api_resource.hpp:501
uint8_t clear_stencil
Value the stencil contents of the depth-stencil resource is cleared to when stencil_load_op is render...
Definition: reshade_api_resource.hpp:509
render_pass_load_op stencil_load_op
Specifies how the stencil contents of the depth-stencil view are treated at the start of the render p...
Definition: reshade_api_resource.hpp:497
resource_view view
Depth-stencil resource view.
Definition: reshade_api_resource.hpp:485
float clear_depth
Value the depth contents of the depth-stencil resource is cleared to when depth_load_op is render_pas...
Definition: reshade_api_resource.hpp:505
Describes a render target view and how it is treated at the start and end of a render pass.
Definition: reshade_api_resource.hpp:516
render_pass_store_op store_op
Specifies how the contents of the render target view are treated at the end of the render pass.
Definition: reshade_api_resource.hpp:528
resource_view view
Render target resource view.
Definition: reshade_api_resource.hpp:520
float clear_color[4]
Value the render target resource is cleared to when load_op is render_pass_load_op::clear.
Definition: reshade_api_resource.hpp:532
render_pass_load_op load_op
Specifies how the contents of the render target view are treated at the start of the render pass.
Definition: reshade_api_resource.hpp:524
Describes a resource, such as a buffer or texture.
Definition: reshade_api_resource.hpp:236
constexpr resource_desc(uint64_t size, memory_heap heap, resource_usage usage)
Definition: reshade_api_resource.hpp:238
constexpr resource_desc(uint32_t width, uint32_t height, uint16_t layers, uint16_t levels, format format, uint16_t samples, memory_heap heap, resource_usage usage, resource_flags flags=resource_flags::none)
Definition: reshade_api_resource.hpp:240
constexpr resource_desc(resource_type type, uint32_t width, uint32_t height, uint16_t depth_or_layers, uint16_t levels, format format, uint16_t samples, memory_heap heap, resource_usage usage, resource_flags flags=resource_flags::none)
Definition: reshade_api_resource.hpp:242
constexpr resource_desc()
Definition: reshade_api_resource.hpp:237
Describes a resource view, which specifies how to interpret the data of a resource.
Definition: reshade_api_resource.hpp:345
constexpr resource_view_desc(resource_view_type type, format format, uint32_t first_level, uint32_t levels, uint32_t first_layer, uint32_t layers)
Definition: reshade_api_resource.hpp:353
constexpr resource_view_desc()
Definition: reshade_api_resource.hpp:346
constexpr resource_view_desc(format format)
Definition: reshade_api_resource.hpp:355
constexpr resource_view_desc(format format, uint32_t first_level, uint32_t levels, uint32_t first_layer, uint32_t layers)
Definition: reshade_api_resource.hpp:349
constexpr resource_view_desc(format format, uint64_t offset, uint64_t size)
Definition: reshade_api_resource.hpp:347
constexpr resource_view_desc(resource_view_type type, format format, uint64_t offset, uint64_t size)
Definition: reshade_api_resource.hpp:351
An opaque handle to a resource view object (depth-stencil, render target, shader resource view,...
Definition: reshade_api_resource.hpp:416
An opaque handle to a resource object (buffer, texture, ...).
Definition: reshade_api_resource.hpp:320
Describes a sampler state.
Definition: reshade_api_resource.hpp:89
filter_mode filter
Filtering mode to use when sampling a texture.
Definition: reshade_api_resource.hpp:93
float mip_lod_bias
Offset applied to the calculated mipmap level when sampling a texture.
Definition: reshade_api_resource.hpp:109
texture_address_mode address_u
Method to use for resolving U texture coordinates outside 0 to 1 range.
Definition: reshade_api_resource.hpp:97
float max_lod
Upper end of the mipmap range to clamp access to.
Definition: reshade_api_resource.hpp:129
float border_color[4]
RGBA value to return for texture coordinates outside 0 to 1 range when addressing mode is texture_add...
Definition: reshade_api_resource.hpp:121
float min_lod
Lower end of the mipmap range to clamp access to.
Definition: reshade_api_resource.hpp:125
float max_anisotropy
Clamping value to use when filtering mode is filter_mode::anisotropic.
Definition: reshade_api_resource.hpp:113
texture_address_mode address_v
Method to use for resolving V texture coordinates outside 0 to 1 range.
Definition: reshade_api_resource.hpp:101
texture_address_mode address_w
Method to use for resolving W texture coordinates outside 0 to 1 range.
Definition: reshade_api_resource.hpp:105
An opaque handle to a sampler state object.
Definition: reshade_api_resource.hpp:136
Describes a region inside a subresource.
Definition: reshade_api_resource.hpp:422
int32_t right
Definition: reshade_api_resource.hpp:426
int32_t bottom
Definition: reshade_api_resource.hpp:427
constexpr uint32_t height() const
Definition: reshade_api_resource.hpp:431
int32_t back
Definition: reshade_api_resource.hpp:428
int32_t left
Definition: reshade_api_resource.hpp:423
int32_t top
Definition: reshade_api_resource.hpp:424
int32_t front
Definition: reshade_api_resource.hpp:425
constexpr uint32_t width() const
Definition: reshade_api_resource.hpp:430
constexpr uint32_t depth() const
Definition: reshade_api_resource.hpp:432
Describes the data of a subresource.
Definition: reshade_api_resource.hpp:439
uint32_t slice_pitch
Depth pitch of the data (added to the data pointer to move between texture depth/array slices,...
Definition: reshade_api_resource.hpp:453
void * data
Pointer to the data.
Definition: reshade_api_resource.hpp:443
uint32_t row_pitch
Row pitch of the data (added to the data pointer to move between texture rows, unused for buffers and...
Definition: reshade_api_resource.hpp:448