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  descriptor_set = 0,
75  push_descriptors = 2,
77  };
78 
83  {
87  uint32_t binding = 0;
91  uint32_t dx_register_index = 0;
95  uint32_t dx_register_space = 0;
99  uint32_t count = 0;
104  };
105 
110  {
115  uint32_t binding = 0;
119  uint32_t dx_register_index = 0;
123  uint32_t dx_register_space = 0;
127  uint32_t count = 0;
137  uint32_t array_size = 1;
142  };
143 
148  {
153 
158 
159  union
160  {
165 
170 
174  struct
175  {
176  uint32_t count;
179  };
180  };
181 
187 
191  enum class fill_mode : uint32_t
192  {
193  solid = 0,
194  wireframe = 1,
195  point = 2
196  };
197 
201  enum class cull_mode : uint32_t
202  {
203  none = 0,
204  front = 1,
205  back = 2,
207  };
209 
213  enum class logic_op : uint32_t
214  {
215  clear = 0,
216  bitwise_and = 1,
218  copy = 3,
220  noop = 5,
221  bitwise_xor = 6,
222  bitwise_or = 7,
223  bitwise_nor = 8,
224  equivalent = 9,
225  invert = 10,
226  bitwise_or_reverse = 11,
227  copy_inverted = 12,
228  bitwise_or_inverted = 13,
229  bitwise_nand = 14,
230  set = 15
231  };
232 
236  enum class blend_op : uint32_t
237  {
238  add = 0,
239  subtract = 1,
240  reverse_subtract = 2,
241  min = 3,
242  max = 4
243  };
244 
248  enum class blend_factor : uint32_t
249  {
250  zero = 0,
251  one = 1,
252  source_color = 2,
254  dest_color = 4,
256  source_alpha = 6,
258  dest_alpha = 8,
260  constant_color = 10,
262  constant_alpha = 12,
265  source1_color = 15,
267  source1_alpha = 17,
269  };
270 
274  enum class stencil_op : uint32_t
275  {
276  keep = 0,
277  zero = 1,
278  replace = 2,
279  increment_saturate = 3,
280  decrement_saturate = 4,
281  invert = 5,
282  increment = 6,
283  decrement = 7
284  };
285 
289  enum class primitive_topology : uint32_t
290  {
291  undefined = 0,
292 
293  point_list = 1,
294  line_list = 2,
295  line_strip = 3,
296  triangle_list = 4,
297  triangle_strip = 5,
298  triangle_fan = 6,
299  quad_list = 8,
300  quad_strip = 9,
301  line_list_adj = 10,
302  line_strip_adj = 11,
303  triangle_list_adj = 12,
304  triangle_strip_adj = 13,
305 
306  patch_list_01_cp = 33,
338  };
339 
343  struct shader_desc
344  {
348  const void *code = nullptr;
352  size_t code_size = 0;
357  const char *entry_point = nullptr;
358 
363  uint32_t spec_constants = 0;
367  const uint32_t *spec_constant_ids = nullptr;
371  const uint32_t *spec_constant_values = nullptr;
372  };
373 
378  {
382  uint32_t location = 0;
386  const char *semantic = nullptr;
390  uint32_t semantic_index = 0;
398  uint32_t buffer_binding = 0;
402  uint32_t offset = 0;
407  uint32_t stride = 0;
413  uint32_t instance_step_rate = 0;
414  };
415 
420  {
424  uint32_t rasterized_stream = 0;
425  };
426 
430  struct blend_desc
431  {
440  bool blend_enable[8] = { false, false, false, false, false, false, false, false };
445  bool logic_op_enable[8] = { false, false, false, false, false, false, false, false };
479  float blend_constant[4] = { 1.0f, 1.0f, 1.0f, 1.0f };
488  uint8_t render_target_write_mask[8] = { 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF };
489  };
490 
495  {
512  float depth_bias = 0.0f;
516  float depth_bias_clamp = 0.0f;
524  bool depth_clip_enable = true;
528  bool scissor_enable = false;
532  bool multisample_enable = false;
542  };
543 
548  {
552  bool depth_enable = true;
556  bool depth_write_mask = true;
564  bool stencil_enable = false;
568  uint8_t stencil_read_mask = 0xFF;
572  uint8_t stencil_write_mask = 0xFF;
609  };
610 
614  enum class pipeline_subobject_type : uint32_t
615  {
616  unknown,
630  hull_shader,
651  pixel_shader,
664  input_layout,
676  blend_state,
708  sample_mask,
713  sample_count,
729  };
730 
735  {
744  uint32_t count = 0;
749  void *data = nullptr;
750  };
751 
757 
762  {
766  resource buffer = { 0 };
770  uint64_t offset = 0;
775  uint64_t size = UINT64_MAX;
776  };
777 
782  {
786  sampler sampler = { 0 };
791  };
792 
798 
803  {
811  uint32_t source_binding = 0;
815  uint32_t source_array_offset = 0;
823  uint32_t dest_binding = 0;
827  uint32_t dest_array_offset = 0;
831  uint32_t count = 0;
832  };
833 
838  {
847  uint32_t binding = 0;
852  uint32_t array_offset = 0;
857  uint32_t count = 0;
866  const void *descriptors = nullptr;
867  };
868 
874 
878  enum class query_type
879  {
880  occlusion = 0,
881  binary_occlusion = 1,
882  timestamp = 2,
888  };
889 
895 
900  enum class dynamic_state
901  {
902  unknown = 0,
903 
904  alpha_test_enable = 15,
906  alpha_func = 25,
907  srgb_write_enable = 194,
908  primitive_topology = 1000,
909  sample_mask = 162,
910 
911  // Blend state
912 
914  blend_enable = 27,
915  logic_op_enable = 1004,
918  color_blend_op = 171,
921  alpha_blend_op = 209,
922  logic_op = 1005,
923  blend_constant = 193,
925 
926  // Rasterizer state
927 
928  fill_mode = 8,
929  cull_mode = 22,
931  depth_bias = 195,
932  depth_bias_clamp = 1002,
934  depth_clip_enable = 136,
935  scissor_enable = 174,
936  multisample_enable = 161,
938 
939  // Depth-stencil state
940 
941  depth_enable = 7,
942  depth_write_mask = 14,
943  depth_func = 23,
944  stencil_enable = 52,
945  stencil_read_mask = 58,
946  stencil_write_mask = 59,
948  front_stencil_func = 56,
952  back_stencil_func = 189,
953  back_stencil_pass_op = 188,
954  back_stencil_fail_op = 186,
956  };
957 
961  struct rect
962  {
963  int32_t left = 0;
964  int32_t top = 0;
965  int32_t right = 0;
966  int32_t bottom = 0;
967 
968  constexpr uint32_t width() const { return right - left; }
969  constexpr uint32_t height() const { return bottom - top; }
970  };
971 
975  struct viewport
976  {
977  float x = 0.0f;
978  float y = 0.0f;
979  float width = 0.0f;
980  float height = 0.0f;
981  float min_depth = 0.0f;
982  float max_depth = 1.0f;
983  };
984 }
Definition: reshade_api.hpp:11
query_type
The available query types.
Definition: reshade_api_pipeline.hpp:879
dynamic_state
A list of all possible render pipeline states that can be set independent of pipeline state objects.
Definition: reshade_api_pipeline.hpp:901
fill_mode
The fill mode to use when rendering triangles.
Definition: reshade_api_pipeline.hpp:192
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:237
primitive_topology
Specifies how the pipeline interprets vertex data that is bound to the vertex input stage and subsequ...
Definition: reshade_api_pipeline.hpp:290
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:275
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:214
cull_mode
Indicates triangles facing a particular direction are not drawn.
Definition: reshade_api_pipeline.hpp:202
pipeline_subobject_type
The available pipeline sub-object types.
Definition: reshade_api_pipeline.hpp:615
@ 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:249
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:431
blend_factor source_alpha_blend_factor[8]
Source to use for the alpha value that the pixel shader outputs.
Definition: reshade_api_pipeline.hpp:465
bool logic_op_enable[8]
Enable or disable a logical operation for each render target.
Definition: reshade_api_pipeline.hpp:445
blend_factor dest_color_blend_factor[8]
Destination to use for the current RGB value in the render target.
Definition: reshade_api_pipeline.hpp:455
blend_factor dest_alpha_blend_factor[8]
Destination to use for the current alpha value in the render target.
Definition: reshade_api_pipeline.hpp:470
blend_factor source_color_blend_factor[8]
Source to use for the RGB value that the pixel shader outputs.
Definition: reshade_api_pipeline.hpp:450
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:460
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:475
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:435
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:488
bool blend_enable[8]
Enable or disable blending for each render target.
Definition: reshade_api_pipeline.hpp:440
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:479
A constant buffer resource descriptor.
Definition: reshade_api_pipeline.hpp:762
uint64_t offset
Offset from the start of the buffer resource (in bytes).
Definition: reshade_api_pipeline.hpp:770
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:775
resource buffer
Constant buffer resource.
Definition: reshade_api_pipeline.hpp:766
Describes a range of constants in a pipeline layout.
Definition: reshade_api_pipeline.hpp:83
uint32_t count
Number of constants in this range (in 32-bit values).
Definition: reshade_api_pipeline.hpp:99
uint32_t dx_register_index
D3D10/D3D11/D3D12 constant buffer register index.
Definition: reshade_api_pipeline.hpp:91
uint32_t dx_register_space
D3D12 constant buffer register space.
Definition: reshade_api_pipeline.hpp:95
uint32_t binding
OpenGL uniform buffer binding index.
Definition: reshade_api_pipeline.hpp:87
shader_stage visibility
Shader pipeline stages that can make use of the constants in this range.
Definition: reshade_api_pipeline.hpp:103
Describes the state of the depth-stencil stage.
Definition: reshade_api_pipeline.hpp:548
bool stencil_enable
Enable or disable stencil testing.
Definition: reshade_api_pipeline.hpp:564
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:592
bool depth_write_mask
Enable or disable writes to the depth-stencil buffer.
Definition: reshade_api_pipeline.hpp:556
uint8_t stencil_reference_value
Reference value to perform against when doing stencil testing.
Definition: reshade_api_pipeline.hpp:576
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:580
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:604
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:596
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:560
uint8_t stencil_write_mask
Mask applied to stencil values written to the depth-stencil buffer.
Definition: reshade_api_pipeline.hpp:572
bool depth_enable
Enable or disable depth testing.
Definition: reshade_api_pipeline.hpp:552
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:588
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:608
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:600
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:584
uint8_t stencil_read_mask
Mask applied to stencil values read from the depth-stencil buffer.
Definition: reshade_api_pipeline.hpp:568
An opaque handle to a descriptor pool.
Definition: reshade_api_pipeline.hpp:873
Describes a range of descriptors in a descriptor set layout.
Definition: reshade_api_pipeline.hpp:110
uint32_t dx_register_space
D3D12 register space (register(..., spaceX) in HLSL).
Definition: reshade_api_pipeline.hpp:123
uint32_t dx_register_index
D3D9/D3D10/D3D11/D3D12 shader register index (register(xX) in HLSL).
Definition: reshade_api_pipeline.hpp:119
shader_stage visibility
Shader pipeline stages that can make use of the descriptors in this range.
Definition: reshade_api_pipeline.hpp:131
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:115
uint32_t count
Number of descriptors in this range.
Definition: reshade_api_pipeline.hpp:127
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:137
descriptor_type type
Type of the descriptors in this range.
Definition: reshade_api_pipeline.hpp:141
All information needed to copy descriptors between descriptor sets.
Definition: reshade_api_pipeline.hpp:803
uint32_t count
Number of descriptors to copy.
Definition: reshade_api_pipeline.hpp:831
descriptor_set dest_set
Descriptor set to copy to.
Definition: reshade_api_pipeline.hpp:819
uint32_t source_array_offset
Array index in the specified source binding to begin copying from.
Definition: reshade_api_pipeline.hpp:815
uint32_t source_binding
Index of the binding in the source descriptor set.
Definition: reshade_api_pipeline.hpp:811
uint32_t dest_binding
Index of the binding in the destination descriptor set.
Definition: reshade_api_pipeline.hpp:823
uint32_t dest_array_offset
Array index in the specified destination binding to begin copying to.
Definition: reshade_api_pipeline.hpp:827
descriptor_set source_set
Descriptor set to copy from.
Definition: reshade_api_pipeline.hpp:807
All information needed to update descriptors in a descriptor set.
Definition: reshade_api_pipeline.hpp:838
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:847
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:866
uint32_t count
Number of descriptors to update, starting at the specified binding. If the specified binding has fewe...
Definition: reshade_api_pipeline.hpp:857
descriptor_type type
Type of the specified descriptors.
Definition: reshade_api_pipeline.hpp:861
uint32_t array_offset
Array index in the specified binding to begin updating at. Only meaningful in Vulkan,...
Definition: reshade_api_pipeline.hpp:852
descriptor_set set
Descriptor set to update.
Definition: reshade_api_pipeline.hpp:842
An opaque handle to a descriptor set.
Definition: reshade_api_pipeline.hpp:797
Describes a single element in the vertex layout for the input-assembler stage.
Definition: reshade_api_pipeline.hpp:378
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:413
uint32_t location
GLSL attribute location associated with this element (layout(location = X)).
Definition: reshade_api_pipeline.hpp:382
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:390
const char * semantic
HLSL semantic associated with this element.
Definition: reshade_api_pipeline.hpp:386
uint32_t buffer_binding
Index of the vertex buffer binding.
Definition: reshade_api_pipeline.hpp:398
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:407
uint32_t offset
Offset (in bytes) from the start of the vertex to this element.
Definition: reshade_api_pipeline.hpp:402
Describes a single parameter in a pipeline layout.
Definition: reshade_api_pipeline.hpp:148
descriptor_range push_descriptors
Used when parameter type is pipeline_layout_param_type::push_descriptors.
Definition: reshade_api_pipeline.hpp:169
constexpr pipeline_layout_param(const constant_range &push_constants)
Definition: reshade_api_pipeline.hpp:150
pipeline_layout_param_type type
Type of the parameter.
Definition: reshade_api_pipeline.hpp:157
const descriptor_range * ranges
Definition: reshade_api_pipeline.hpp:177
constexpr pipeline_layout_param(uint32_t count, const descriptor_range *ranges)
Definition: reshade_api_pipeline.hpp:152
constexpr pipeline_layout_param(const descriptor_range &push_descriptors)
Definition: reshade_api_pipeline.hpp:151
constexpr pipeline_layout_param()
Definition: reshade_api_pipeline.hpp:149
struct reshade::api::pipeline_layout_param::@0::@2 descriptor_set
Used when parameter type is pipeline_layout_param_type::descriptor_set or pipeline_layout_param_type:...
uint32_t count
Definition: reshade_api_pipeline.hpp:176
constant_range push_constants
Used when parameter type is pipeline_layout_param_type::push_constants.
Definition: reshade_api_pipeline.hpp:164
An opaque handle to a pipeline layout object.
Definition: reshade_api_pipeline.hpp:186
Describes a pipeline sub-object.
Definition: reshade_api_pipeline.hpp:735
void * data
Pointer to an array of sub-object descriptions (which should be as large as the specified count)....
Definition: reshade_api_pipeline.hpp:749
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:744
pipeline_subobject_type type
Type of the specified sub-object data.
Definition: reshade_api_pipeline.hpp:739
An opaque handle to a pipeline state object.
Definition: reshade_api_pipeline.hpp:756
An opaque handle to a query pool.
Definition: reshade_api_pipeline.hpp:894
Describes the state of the rasterizer stage.
Definition: reshade_api_pipeline.hpp:495
bool scissor_enable
Enable or disable scissor testing (scissor rectangle culling).
Definition: reshade_api_pipeline.hpp:528
bool front_counter_clockwise
Determines if a triangle is front or back-facing.
Definition: reshade_api_pipeline.hpp:508
float depth_bias
Depth value added to a given pixel.
Definition: reshade_api_pipeline.hpp:512
bool multisample_enable
Use the quadrilateral or alpha line anti-aliasing algorithm on multisample antialiasing render target...
Definition: reshade_api_pipeline.hpp:532
bool depth_clip_enable
Enable or disable clipping based on distance.
Definition: reshade_api_pipeline.hpp:524
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:536
uint32_t conservative_rasterization
Enable or disable conservative rasterization mode.
Definition: reshade_api_pipeline.hpp:541
float depth_bias_clamp
Maximum depth bias of a pixel.
Definition: reshade_api_pipeline.hpp:516
float slope_scaled_depth_bias
Scalar on the slope of a given pixel.
Definition: reshade_api_pipeline.hpp:520
Describes a rectangle.
Definition: reshade_api_pipeline.hpp:962
constexpr uint32_t width() const
Definition: reshade_api_pipeline.hpp:968
int32_t top
Definition: reshade_api_pipeline.hpp:964
int32_t left
Definition: reshade_api_pipeline.hpp:963
int32_t right
Definition: reshade_api_pipeline.hpp:965
constexpr uint32_t height() const
Definition: reshade_api_pipeline.hpp:969
int32_t bottom
Definition: reshade_api_pipeline.hpp:966
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:782
resource_view view
Shader resource view.
Definition: reshade_api_pipeline.hpp:790
An opaque handle to a sampler state object.
Definition: reshade_api_resource.hpp:134
Describes a shader object.
Definition: reshade_api_pipeline.hpp:344
const char * entry_point
Optional entry point name if the shader source code or binary contains multiple entry points....
Definition: reshade_api_pipeline.hpp:357
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:371
const void * code
Shader source code or binary.
Definition: reshade_api_pipeline.hpp:348
size_t code_size
Size (in bytes) of the shader source code or binary.
Definition: reshade_api_pipeline.hpp:352
const uint32_t * spec_constant_ids
Pointer to an array of specialization constant indices.
Definition: reshade_api_pipeline.hpp:367
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:363
Describes the state of the stream-output stage.
Definition: reshade_api_pipeline.hpp:420
uint32_t rasterized_stream
Index of the stream output stream to be sent to the rasterizer stage.
Definition: reshade_api_pipeline.hpp:424
Describes a render viewport.
Definition: reshade_api_pipeline.hpp:976
float width
Definition: reshade_api_pipeline.hpp:979
float min_depth
Definition: reshade_api_pipeline.hpp:981
float height
Definition: reshade_api_pipeline.hpp:980
float x
Definition: reshade_api_pipeline.hpp:977
float y
Definition: reshade_api_pipeline.hpp:978
float max_depth
Definition: reshade_api_pipeline.hpp:982