ReShade
A generic post-processing injector for games and video software.
reshade_api_pipeline.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 
9 
10 namespace reshade::api
11 {
15  enum class shader_stage : uint32_t
16  {
17  vertex = 0x1,
18  hull = 0x2,
19  domain = 0x4,
20  geometry = 0x8,
21  pixel = 0x10,
22  compute = 0x20,
23 
24  all = 0x7FFFFFFF,
27  };
29 
33  enum class pipeline_stage : uint32_t
34  {
35  vertex_shader = 0x8,
36  hull_shader = 0x10,
37  domain_shader = 0x20,
38  geometry_shader = 0x40,
39  pixel_shader = 0x80,
40  compute_shader = 0x800,
41 
42  input_assembler = 0x2,
43  stream_output = 0x4,
44  rasterizer = 0x100,
45  depth_stencil = 0x200,
46  output_merger = 0x400,
47 
48  all = 0x7FFFFFFF,
52  };
54 
58  enum class descriptor_type : uint32_t
59  {
60  sampler = 0,
64  constant_buffer = 6,
66  };
67 
71  enum class pipeline_layout_param_type : uint32_t
72  {
73  push_constants = 1,
74  push_descriptors = 2,
75  descriptor_set = 0
76  };
77 
82  {
86  uint32_t binding = 0;
90  uint32_t dx_register_index = 0;
94  uint32_t dx_register_space = 0;
98  uint32_t count = 0;
103  };
104 
109  {
114  uint32_t binding = 0;
118  uint32_t dx_register_index = 0;
122  uint32_t dx_register_space = 0;
126  uint32_t count = 0;
136  uint32_t array_size = 1;
141  };
142 
147  {
152 
157 
158  union
159  {
164 
169 
173  struct
174  {
175  uint32_t count;
178  };
179  };
180 
186 
190  enum class fill_mode : uint32_t
191  {
192  solid = 0,
193  wireframe = 1,
194  point = 2
195  };
196 
200  enum class cull_mode : uint32_t
201  {
202  none = 0,
203  front = 1,
204  back = 2,
206  };
208 
212  enum class logic_op : uint32_t
213  {
214  clear = 0,
215  bitwise_and = 1,
217  copy = 3,
219  noop = 5,
220  bitwise_xor = 6,
221  bitwise_or = 7,
222  bitwise_nor = 8,
223  equivalent = 9,
224  invert = 10,
225  bitwise_or_reverse = 11,
226  copy_inverted = 12,
227  bitwise_or_inverted = 13,
228  bitwise_nand = 14,
229  set = 15
230  };
231 
235  enum class blend_op : uint32_t
236  {
237  add = 0,
238  subtract = 1,
239  reverse_subtract = 2,
240  min = 3,
241  max = 4
242  };
243 
247  enum class blend_factor : uint32_t
248  {
249  zero = 0,
250  one = 1,
251  source_color = 2,
253  dest_color = 4,
255  source_alpha = 6,
257  dest_alpha = 8,
259  constant_color = 10,
261  constant_alpha = 12,
264  source1_color = 15,
266  source1_alpha = 17,
268  };
269 
273  enum class stencil_op : uint32_t
274  {
275  keep = 0,
276  zero = 1,
277  replace = 2,
278  increment_saturate = 3,
279  decrement_saturate = 4,
280  invert = 5,
281  increment = 6,
282  decrement = 7
283  };
284 
288  enum class primitive_topology : uint32_t
289  {
290  undefined = 0,
291 
292  point_list = 1,
293  line_list = 2,
294  line_strip = 3,
295  triangle_list = 4,
296  triangle_strip = 5,
297  triangle_fan = 6,
298  quad_list = 8,
299  quad_strip = 9,
300  line_list_adj = 10,
301  line_strip_adj = 11,
302  triangle_list_adj = 12,
303  triangle_strip_adj = 13,
304 
305  patch_list_01_cp = 33,
337  };
338 
342  struct shader_desc
343  {
347  const void *code = nullptr;
351  size_t code_size = 0;
356  const char *entry_point = nullptr;
357 
362  uint32_t spec_constants = 0;
366  const uint32_t *spec_constant_ids = nullptr;
370  const uint32_t *spec_constant_values = nullptr;
371  };
372 
377  {
381  uint32_t location = 0;
385  const char *semantic = nullptr;
389  uint32_t semantic_index = 0;
397  uint32_t buffer_binding = 0;
401  uint32_t offset = 0;
406  uint32_t stride = 0;
412  uint32_t instance_step_rate = 0;
413  };
414 
419  {
423  uint32_t rasterized_stream = 0;
424  };
425 
429  struct blend_desc
430  {
438  bool blend_enable[8] = { false, false, false, false, false, false, false, false };
442  bool logic_op_enable[8] = { false, false, false, false, false, false, false, false };
470  float blend_constant[4] = { 1.0f, 1.0f, 1.0f, 1.0f };
478  uint8_t render_target_write_mask[8] = { 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF };
479  };
480 
485  {
501  float depth_bias = 0.0f;
505  float depth_bias_clamp = 0.0f;
513  bool depth_clip_enable = true;
517  bool scissor_enable = false;
521  bool multisample_enable = false;
530  };
531 
536  {
540  bool depth_enable = true;
544  bool depth_write_mask = true;
552  bool stencil_enable = false;
556  uint8_t stencil_read_mask = 0xFF;
560  uint8_t stencil_write_mask = 0xFF;
597  };
598 
602  enum class pipeline_subobject_type : uint32_t
603  {
604  unknown,
618  hull_shader,
639  pixel_shader,
652  input_layout,
664  blend_state,
696  sample_mask,
701  sample_count,
717  };
718 
723  {
732  uint32_t count = 0;
737  void *data = nullptr;
738  };
739 
745 
750  {
754  resource buffer = { 0 };
758  uint64_t offset = 0;
763  uint64_t size = UINT64_MAX;
764  };
765 
770  {
774  sampler sampler = { 0 };
779  };
780 
786 
791  {
799  uint32_t source_binding = 0;
803  uint32_t source_array_offset = 0;
811  uint32_t dest_binding = 0;
815  uint32_t dest_array_offset = 0;
819  uint32_t count = 0;
820  };
821 
826  {
835  uint32_t binding = 0;
840  uint32_t array_offset = 0;
845  uint32_t count = 0;
854  const void *descriptors = nullptr;
855  };
856 
862 
866  enum class query_type
867  {
868  occlusion = 0,
869  binary_occlusion = 1,
870  timestamp = 2,
876  };
877 
883 
888  enum class dynamic_state
889  {
890  unknown = 0,
891 
892  alpha_test_enable = 15,
894  alpha_func = 25,
895  srgb_write_enable = 194,
896  primitive_topology = 1000,
897  sample_mask = 162,
898 
899  // Blend state
900 
902  blend_enable = 27,
903  logic_op_enable = 1004,
906  color_blend_op = 171,
909  alpha_blend_op = 209,
910  logic_op = 1005,
911  blend_constant = 193,
913 
914  // Rasterizer state
915 
916  fill_mode = 8,
917  cull_mode = 22,
919  depth_bias = 195,
920  depth_bias_clamp = 1002,
922  depth_clip_enable = 136,
923  scissor_enable = 174,
924  multisample_enable = 161,
926 
927  // Depth-stencil state
928 
929  depth_enable = 7,
930  depth_write_mask = 14,
931  depth_func = 23,
932  stencil_enable = 52,
933  stencil_read_mask = 58,
934  stencil_write_mask = 59,
936  front_stencil_func = 56,
940  back_stencil_func = 189,
941  back_stencil_pass_op = 188,
942  back_stencil_fail_op = 186,
944  };
945 
949  struct rect
950  {
951  int32_t left = 0;
952  int32_t top = 0;
953  int32_t right = 0;
954  int32_t bottom = 0;
955 
956  constexpr uint32_t width() const { return right - left; }
957  constexpr uint32_t height() const { return bottom - top; }
958  };
959 
963  struct viewport
964  {
965  float x = 0.0f;
966  float y = 0.0f;
967  float width = 0.0f;
968  float height = 0.0f;
969  float min_depth = 0.0f;
970  float max_depth = 1.0f;
971  };
972 }
Definition: reshade_api.hpp:11
query_type
The available query types.
Definition: reshade_api_pipeline.hpp:867
dynamic_state
A list of all possible render pipeline states that can be set independent of pipeline state objects.
Definition: reshade_api_pipeline.hpp:889
fill_mode
The fill mode to use when rendering triangles.
Definition: reshade_api_pipeline.hpp:191
compare_op
The available comparison types.
Definition: reshade_api_resource.hpp:35
blend_op
The available color or alpha blending operations.
Definition: reshade_api_pipeline.hpp:236
primitive_topology
Specifies how the pipeline interprets vertex data that is bound to the vertex input stage and subsequ...
Definition: reshade_api_pipeline.hpp:289
pipeline_stage
A list of flags that represent the available pipeline stages in the render pipeline.
Definition: reshade_api_pipeline.hpp:34
stencil_op
The available stencil operations that can be performed during depth-stencil testing.
Definition: reshade_api_pipeline.hpp:274
pipeline_layout_param_type
The available pipeline layout parameter types.
Definition: reshade_api_pipeline.hpp:72
logic_op
The available logic operations.
Definition: reshade_api_pipeline.hpp:213
cull_mode
Indicates triangles facing a particular direction are not drawn.
Definition: reshade_api_pipeline.hpp:201
pipeline_subobject_type
The available pipeline sub-object types.
Definition: reshade_api_pipeline.hpp:603
@ blend_state
State of the output-merger stage. Sub-object data is a pointer to a blend_desc.
@ sample_count
Number of samples used in rasterization. Sub-object data is a pointer to a 32-bit unsigned integer va...
@ sample_mask
Mask applied to the coverage mask for a fragment during rasterization. Sub-object data is a pointer t...
@ viewport_count
Maximum number of viewports that may be bound via command_list::bind_viewports with this pipeline....
@ compute_shader
Compute shader to use. Sub-object data is a pointer to a shader_desc.
@ rasterizer_state
State of the rasterizer stage. Sub-object data is a pointer to a rasterizer_desc.
@ dynamic_pipeline_states
States that may be dynamically updated via command_list::bind_pipeline_states after binding this pipe...
@ domain_shader
Domain shader to use. Sub-object data is a pointer to a shader_desc.
@ input_layout
Vertex layout for the input-assembler stage. Sub-object data is a pointer to an array of input_elemen...
@ hull_shader
Hull shader to use. Sub-object data is a pointer to a shader_desc.
@ geometry_shader
Geometry shader to use. Sub-object data is a pointer to a shader_desc.
@ primitive_topology
Primitive topology to use when rendering. Sub-object data is a pointer to a primitive_topology value.
@ render_target_formats
Formats of the render target views that may be used with this pipeline. Sub-object data is a pointer ...
@ pixel_shader
Pixel shader to use. Sub-object data is a pointer to a shader_desc.
@ vertex_shader
Vertex shader to use. Sub-object data is a pointer to a shader_desc.
@ depth_stencil_state
State of the depth-stencil stage. Sub-object data is a pointer to a depth_stencil_desc.
@ depth_stencil_format
Format of the depth-stencil view that may be used with this pipeline. Sub-object data is a pointer to...
@ max_vertex_count
Maximum number of vertices a draw call with this pipeline will draw. Sub-object data is a pointer to ...
@ stream_output_state
State of the stream-output stage. Sub-object data is a pointer to a stream_output_desc.
format
The available data and texture formats. This is mostly compatible with 'DXGI_FORMAT'.
Definition: reshade_api_format.hpp:18
blend_factor
The available blend factors in color or alpha blending operations.
Definition: reshade_api_pipeline.hpp:248
shader_stage
A list of flags that represent the available shader stages in the render pipeline.
Definition: reshade_api_pipeline.hpp:16
descriptor_type
The available descriptor types.
Definition: reshade_api_pipeline.hpp:59
#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 the state of the output-merger stage.
Definition: reshade_api_pipeline.hpp:430
blend_factor source_alpha_blend_factor[8]
Source to use for the alpha value that the pixel shader outputs.
Definition: reshade_api_pipeline.hpp:458
bool logic_op_enable[8]
Enable or disable a logical operation for each render target.
Definition: reshade_api_pipeline.hpp:442
blend_factor dest_color_blend_factor[8]
Destination to use for the current RGB value in the render target.
Definition: reshade_api_pipeline.hpp:450
blend_factor dest_alpha_blend_factor[8]
Destination to use for the current alpha value in the render target.
Definition: reshade_api_pipeline.hpp:462
blend_factor source_color_blend_factor[8]
Source to use for the RGB value that the pixel shader outputs.
Definition: reshade_api_pipeline.hpp:446
blend_op color_blend_op[8]
Operation to use to combine source_color_blend_factor and dest_color_blend_factor.
Definition: reshade_api_pipeline.hpp:454
blend_op alpha_blend_op[8]
Operation to use to combine source_alpha_blend_factor and dest_alpha_blend_factor.
Definition: reshade_api_pipeline.hpp:466
bool alpha_to_coverage_enable
Use alpha-to-coverage as a multisampling technique when setting a pixel to a render target.
Definition: reshade_api_pipeline.hpp:434
uint8_t render_target_write_mask[8]
A write mask specifying which color components are written to each render target. Bitwise combination...
Definition: reshade_api_pipeline.hpp:478
bool blend_enable[8]
Enable or disable blending for each render target.
Definition: reshade_api_pipeline.hpp:438
float blend_constant[4]
Constant RGBA value to use when source_color_blend_factor or dest_color_blend_factor is blend_factor:...
Definition: reshade_api_pipeline.hpp:470
A constant buffer resource descriptor.
Definition: reshade_api_pipeline.hpp:750
uint64_t offset
Offset from the start of the buffer resource (in bytes).
Definition: reshade_api_pipeline.hpp:758
uint64_t size
Number of elements this range covers in the buffer resource (in bytes). Set to -1 (UINT64_MAX) to ind...
Definition: reshade_api_pipeline.hpp:763
resource buffer
Constant buffer resource.
Definition: reshade_api_pipeline.hpp:754
Describes a range of constants in a pipeline layout.
Definition: reshade_api_pipeline.hpp:82
uint32_t count
Number of constants in this range (in 32-bit values).
Definition: reshade_api_pipeline.hpp:98
uint32_t dx_register_index
D3D10/D3D11/D3D12 constant buffer register index.
Definition: reshade_api_pipeline.hpp:90
uint32_t dx_register_space
D3D12 constant buffer register space.
Definition: reshade_api_pipeline.hpp:94
uint32_t binding
OpenGL uniform buffer binding index.
Definition: reshade_api_pipeline.hpp:86
shader_stage visibility
Shader pipeline stages that can make use of the constants in this range.
Definition: reshade_api_pipeline.hpp:102
Describes the state of the depth-stencil stage.
Definition: reshade_api_pipeline.hpp:536
bool stencil_enable
Enable or disable stencil testing.
Definition: reshade_api_pipeline.hpp:552
stencil_op front_stencil_depth_fail_op
Stencil operation to perform when stencil testing passes and depth testing fails for pixels whose sur...
Definition: reshade_api_pipeline.hpp:580
bool depth_write_mask
Enable or disable writes to the depth-stencil buffer.
Definition: reshade_api_pipeline.hpp:544
uint8_t stencil_reference_value
Reference value to perform against when doing stencil testing.
Definition: reshade_api_pipeline.hpp:564
compare_op front_stencil_func
Comparison function to use to compare new stencil value from a fragment against current stencil value...
Definition: reshade_api_pipeline.hpp:568
stencil_op back_stencil_fail_op
Stencil operation to perform when stencil testing fails for pixels whose surface normal is facing awa...
Definition: reshade_api_pipeline.hpp:592
compare_op back_stencil_func
Comparison function to use to compare new stencil value from a fragment against current stencil value...
Definition: reshade_api_pipeline.hpp:584
compare_op depth_func
Comparison function to use to compare new depth value from a fragment against current depth value in ...
Definition: reshade_api_pipeline.hpp:548
uint8_t stencil_write_mask
Mask applied to stencil values written to the depth-stencil buffer.
Definition: reshade_api_pipeline.hpp:560
bool depth_enable
Enable or disable depth testing.
Definition: reshade_api_pipeline.hpp:540
stencil_op front_stencil_fail_op
Stencil operation to perform when stencil testing fails for pixels whose surface normal is towards th...
Definition: reshade_api_pipeline.hpp:576
stencil_op back_stencil_depth_fail_op
Stencil operation to perform when stencil testing passes and depth testing fails for pixels whose sur...
Definition: reshade_api_pipeline.hpp:596
stencil_op back_stencil_pass_op
Stencil operation to perform when stencil testing and depth testing both pass for pixels whose surfac...
Definition: reshade_api_pipeline.hpp:588
stencil_op front_stencil_pass_op
Stencil operation to perform when stencil testing and depth testing both pass for pixels whose surfac...
Definition: reshade_api_pipeline.hpp:572
uint8_t stencil_read_mask
Mask applied to stencil values read from the depth-stencil buffer.
Definition: reshade_api_pipeline.hpp:556
An opaque handle to a descriptor pool.
Definition: reshade_api_pipeline.hpp:861
Describes a range of descriptors in a descriptor set layout.
Definition: reshade_api_pipeline.hpp:109
uint32_t dx_register_space
D3D12 register space (register(..., spaceX) in HLSL).
Definition: reshade_api_pipeline.hpp:122
uint32_t dx_register_index
D3D9/D3D10/D3D11/D3D12 shader register index (register(xX) in HLSL).
Definition: reshade_api_pipeline.hpp:118
shader_stage visibility
Shader pipeline stages that can make use of the descriptors in this range.
Definition: reshade_api_pipeline.hpp:130
uint32_t binding
OpenGL/Vulkan binding index (layout(binding=X) in GLSL). In D3D this is equivalent to the offset (in ...
Definition: reshade_api_pipeline.hpp:114
uint32_t count
Number of descriptors in this range.
Definition: reshade_api_pipeline.hpp:126
uint32_t array_size
Size of the array in case this is an array binding. Only meaningful in Vulkan, in OpenGL and other AP...
Definition: reshade_api_pipeline.hpp:136
descriptor_type type
Type of the descriptors in this range.
Definition: reshade_api_pipeline.hpp:140
All information needed to copy descriptors between descriptor sets.
Definition: reshade_api_pipeline.hpp:791
uint32_t count
Number of descriptors to copy.
Definition: reshade_api_pipeline.hpp:819
descriptor_set dest_set
Descriptor set to copy to.
Definition: reshade_api_pipeline.hpp:807
uint32_t source_array_offset
Array index in the specified source binding to begin copying from.
Definition: reshade_api_pipeline.hpp:803
uint32_t source_binding
Index of the binding in the source descriptor set.
Definition: reshade_api_pipeline.hpp:799
uint32_t dest_binding
Index of the binding in the destination descriptor set.
Definition: reshade_api_pipeline.hpp:811
uint32_t dest_array_offset
Array index in the specified destination binding to begin copying to.
Definition: reshade_api_pipeline.hpp:815
descriptor_set source_set
Descriptor set to copy from.
Definition: reshade_api_pipeline.hpp:795
All information needed to update descriptors in a descriptor set.
Definition: reshade_api_pipeline.hpp:826
uint32_t binding
OpenGL/Vulkan binding index in the descriptor set. In D3D this is equivalent to the offset (in descri...
Definition: reshade_api_pipeline.hpp:835
const void * descriptors
Pointer to an array of descriptors to update in the set (which should be as large as the specified co...
Definition: reshade_api_pipeline.hpp:854
uint32_t count
Number of descriptors to update, starting at the specified binding. If the specified binding has fewe...
Definition: reshade_api_pipeline.hpp:845
descriptor_type type
Type of the specified descriptors.
Definition: reshade_api_pipeline.hpp:849
uint32_t array_offset
Array index in the specified binding to begin updating at. Only meaningful in Vulkan,...
Definition: reshade_api_pipeline.hpp:840
descriptor_set set
Descriptor set to update.
Definition: reshade_api_pipeline.hpp:830
An opaque handle to a descriptor set.
Definition: reshade_api_pipeline.hpp:785
Describes a single element in the vertex layout for the input-assembler stage.
Definition: reshade_api_pipeline.hpp:377
uint32_t instance_step_rate
Number of instances to draw using the same per-instance data before advancing by one element....
Definition: reshade_api_pipeline.hpp:412
uint32_t location
GLSL attribute location associated with this element (layout(location = X)).
Definition: reshade_api_pipeline.hpp:381
uint32_t semantic_index
Optional index for the HLSL semantic (e.g. for "TEXCOORD1" set semantic to "TEXCOORD" and semantic_in...
Definition: reshade_api_pipeline.hpp:389
const char * semantic
HLSL semantic associated with this element.
Definition: reshade_api_pipeline.hpp:385
uint32_t buffer_binding
Index of the vertex buffer binding.
Definition: reshade_api_pipeline.hpp:397
uint32_t stride
Stride of the entire vertex (this has to be consistent for all elements per vertex buffer binding)....
Definition: reshade_api_pipeline.hpp:406
uint32_t offset
Offset (in bytes) from the start of the vertex to this element.
Definition: reshade_api_pipeline.hpp:401
Describes a single parameter in a pipeline layout.
Definition: reshade_api_pipeline.hpp:147
descriptor_range push_descriptors
Used when parameter type is pipeline_layout_param_type::push_descriptors.
Definition: reshade_api_pipeline.hpp:168
constexpr pipeline_layout_param(const constant_range &push_constants)
Definition: reshade_api_pipeline.hpp:149
pipeline_layout_param_type type
Type of the parameter.
Definition: reshade_api_pipeline.hpp:156
const descriptor_range * ranges
Definition: reshade_api_pipeline.hpp:176
constexpr pipeline_layout_param(uint32_t count, const descriptor_range *ranges)
Definition: reshade_api_pipeline.hpp:151
constexpr pipeline_layout_param(const descriptor_range &push_descriptors)
Definition: reshade_api_pipeline.hpp:150
constexpr pipeline_layout_param()
Definition: reshade_api_pipeline.hpp:148
struct reshade::api::pipeline_layout_param::@0::@2 descriptor_set
Used when parameter type is pipeline_layout_param_type::descriptor_set.
uint32_t count
Definition: reshade_api_pipeline.hpp:175
constant_range push_constants
Used when parameter type is pipeline_layout_param_type::push_constants.
Definition: reshade_api_pipeline.hpp:163
An opaque handle to a pipeline layout object.
Definition: reshade_api_pipeline.hpp:185
Describes a pipeline sub-object.
Definition: reshade_api_pipeline.hpp:723
void * data
Pointer to an array of sub-object descriptions (which should be as large as the specified count)....
Definition: reshade_api_pipeline.hpp:737
uint32_t count
Number of sub-object descriptions. This should usually be 1, except for array sub-objects like pipeli...
Definition: reshade_api_pipeline.hpp:732
pipeline_subobject_type type
Type of the specified sub-object data.
Definition: reshade_api_pipeline.hpp:727
An opaque handle to a pipeline state object.
Definition: reshade_api_pipeline.hpp:744
An opaque handle to a query pool.
Definition: reshade_api_pipeline.hpp:882
Describes the state of the rasterizer stage.
Definition: reshade_api_pipeline.hpp:485
bool scissor_enable
Enable or disable scissor testing (scissor rectangle culling).
Definition: reshade_api_pipeline.hpp:517
bool front_counter_clockwise
Determines if a triangle is front or back-facing.
Definition: reshade_api_pipeline.hpp:497
float depth_bias
Depth value added to a given pixel.
Definition: reshade_api_pipeline.hpp:501
bool multisample_enable
Use the quadrilateral or alpha line anti-aliasing algorithm on multisample antialiasing render target...
Definition: reshade_api_pipeline.hpp:521
bool depth_clip_enable
Enable or disable clipping based on distance.
Definition: reshade_api_pipeline.hpp:513
bool antialiased_line_enable
Enable or disable line antialiasing. Only applies if doing line drawing and multisample_enable is fal...
Definition: reshade_api_pipeline.hpp:525
uint32_t conservative_rasterization
Enable or disable conservative rasterization mode.
Definition: reshade_api_pipeline.hpp:529
float depth_bias_clamp
Maximum depth bias of a pixel.
Definition: reshade_api_pipeline.hpp:505
float slope_scaled_depth_bias
Scalar on the slope of a given pixel.
Definition: reshade_api_pipeline.hpp:509
Describes a rectangle.
Definition: reshade_api_pipeline.hpp:950
constexpr uint32_t width() const
Definition: reshade_api_pipeline.hpp:956
int32_t top
Definition: reshade_api_pipeline.hpp:952
int32_t left
Definition: reshade_api_pipeline.hpp:951
int32_t right
Definition: reshade_api_pipeline.hpp:953
constexpr uint32_t height() const
Definition: reshade_api_pipeline.hpp:957
int32_t bottom
Definition: reshade_api_pipeline.hpp:954
An opaque handle to a resource view object (depth-stencil, render target, shader resource view,...
Definition: reshade_api_resource.hpp:408
An opaque handle to a resource object (buffer, texture, ...).
Definition: reshade_api_resource.hpp:315
A combined sampler and resource view descriptor.
Definition: reshade_api_pipeline.hpp:770
resource_view view
Shader resource view.
Definition: reshade_api_pipeline.hpp:778
An opaque handle to a sampler state object.
Definition: reshade_api_resource.hpp:134
Describes a shader object.
Definition: reshade_api_pipeline.hpp:343
const char * entry_point
Optional entry point name if the shader source code or binary contains multiple entry points....
Definition: reshade_api_pipeline.hpp:356
const uint32_t * spec_constant_values
Pointer to an array of constant values, one for each specialization constant index in spec_constant_i...
Definition: reshade_api_pipeline.hpp:370
const void * code
Shader source code or binary.
Definition: reshade_api_pipeline.hpp:347
size_t code_size
Size (in bytes) of the shader source code or binary.
Definition: reshade_api_pipeline.hpp:351
const uint32_t * spec_constant_ids
Pointer to an array of specialization constant indices.
Definition: reshade_api_pipeline.hpp:366
uint32_t spec_constants
Number of entries in the spec_constant_ids and spec_constant_values arrays. This is meaningful only w...
Definition: reshade_api_pipeline.hpp:362
Describes the state of the stream-output stage.
Definition: reshade_api_pipeline.hpp:419
uint32_t rasterized_stream
Index of the stream output stream to be sent to the rasterizer stage.
Definition: reshade_api_pipeline.hpp:423
Describes a render viewport.
Definition: reshade_api_pipeline.hpp:964
float width
Definition: reshade_api_pipeline.hpp:967
float min_depth
Definition: reshade_api_pipeline.hpp:969
float height
Definition: reshade_api_pipeline.hpp:968
float x
Definition: reshade_api_pipeline.hpp:965
float y
Definition: reshade_api_pipeline.hpp:966
float max_depth
Definition: reshade_api_pipeline.hpp:970