Add type hints to python for class constructors

* We enforce default and copy constructors where possible, this isn't very
  pythonic but we can't use copy.deepcopy on our types.
* The structs that have specialised constructors e.g. FloatVector or Subresource
  also have those documented though we have no way to enforce it.
This commit is contained in:
baldurk
2026-08-13 17:46:47 +01:00
parent 950568fb8f
commit 5e462c5ebe
20 changed files with 1336 additions and 225 deletions
+63 -4
View File
@@ -390,15 +390,32 @@ def gen_class(file: Stream, class_obj: Type):
bases_string = ", ".join([b.__name__ for b in bases])
file.println(f"class {class_obj.__name__}({bases_string}):")
file.indent()
if class_obj.__doc__ is None:
raise ValueError("Unexpected None docstring")
lines = class_obj.__doc__.strip().splitlines()
constructors: List[List[Tuple[str, str]]] = []
while lines[0].strip().startswith(class_obj.__name__ + "("):
args = lines[0].strip()
start = args.find("(")
args = args[start + 1 : -1]
annot_split = lambda arg: (arg.split(":")[0].strip(), arg.split(":")[1].strip())
constructors.append([annot_split(arg) for arg in args.split(",") if arg != ""])
del lines[0]
if len(constructors) > 0:
file.println("from typing import overload")
file.println("")
class_doc = ("\n".join(lines)).strip()
file.println(f"class {class_obj.__name__}({bases_string}):")
file.indent()
file.println("# Original docstring")
file.println('"""')
file.printlines(class_obj.__doc__)
file.printlines(class_doc)
file.println('"""')
file.println("")
file.println("")
@@ -453,6 +470,47 @@ def gen_class(file: Stream, class_obj: Type):
file.println('"""')
file.println("")
else:
for ctor in constructors:
ctor_def = f"def __init__(self, "
for param, annot in ctor:
if annot != class_obj.__name__:
# a default value comes in with the annotation,
# we don't split it out otherwise so strip it here
type_str = annot.split("=")[0].strip()
add_dependencies(class_obj, deps, type_str)
ctor_def += f"{param}: {annot}, "
else:
# escape any self-references in ''s
ctor_def += f"{param}: '{annot}', "
ctor_def = ctor_def[:-2] + "):"
file.println("@overload")
file.println(ctor_def)
file.indent()
file.println('"""')
# copy constructors have only one parameter of our own type
if len(ctor) == 1 and ctor[0][1] == class_obj.__name__:
file.println(
f"Construct a new {class_obj.__name__} with a deep copy of the input."
)
# default constructors have no parameters
elif ctor == []:
file.println(
f"Construct a new default-initialised {class_obj.__name__}."
)
# more complex value constructor with parameters
else:
file.println(
f"Construct a new {class_obj.__name__} using provided values."
)
file.println('"""')
file.println("pass")
file.dedent()
file.println("")
if len(constructors) > 0:
file.println("")
for item_name in class_obj.__dict__.keys():
if item_name.startswith("__"):
continue
@@ -506,6 +564,7 @@ def gen_class(file: Stream, class_obj: Type):
file.println('"""')
file.printlines(doc)
file.println('"""')
file.println("")
else:
raise ValueError(
f"Unknown type of member {item_name} in {class_obj.__name__}"
+40 -11
View File
@@ -113,14 +113,14 @@ def make_c_typeval(ret: str, pattern: bool, typelist: List[str]):
elif ret == 'Tuple[str,str]': # special case
ret = 'rdcstrpair'
elif ret[0:9] == 'Callable[':
ret = '(std::function<void\(\)>|[A-Za-z_]+Callback)' if pattern else 'std::function/NamedCallback'
ret = r'(std::function<void\(\)>|[A-Za-z_]+Callback)' if pattern else 'std::function/NamedCallback'
elif ret[0:5] == 'List[':
inner = make_c_typeval(ret[5:-1], pattern, typelist)
ret = '(const )?rdcarray<{}> ?[&*]?'.format(inner) if pattern else 'rdcarray<{}>'.format(inner)
elif ret[0:6] == 'Tuple[':
inners = [make_c_typeval(i.strip(), pattern, typelist) for i in ret[6:-1].split(',')]
if pattern:
inner = ',\s*'.join(inners)
inner = r',\s*'.join(inners)
else:
inner = ', '.join(inners)
@@ -166,7 +166,7 @@ def check_function(parent_name, objname, obj, source, global_func, typelist):
default_val = ''
for p in params:
if len(funcargs[0]) > 0:
funcargs[0] += ',\s*'
funcargs[0] += r',\s*'
funcargs[1] += ', '
default_val = p[2].lstrip()
@@ -177,7 +177,7 @@ def check_function(parent_name, objname, obj, source, global_func, typelist):
funcargs[1] += make_c_typeval(p[0], False, typelist) + ' ' + p[1]
if default_val != "":
funcargs[0] += f"\s*=\s*{default_val}"
funcargs[0] += f"\\s*=\\s*{default_val}"
funcargs[1] += f" = {default_val}"
result = RTYPE_PATTERN.search(docstring)
@@ -190,7 +190,7 @@ def check_function(parent_name, objname, obj, source, global_func, typelist):
if global_func:
global_pattern = '(RENDERDOC_CC\s*RENDERDOC_)?'
pattern = '(?s){} ?{}{}\(\s*{}\)'.format(make_c_typeval(ret, True, typelist), global_pattern, objname, funcargs[0])
pattern = r'(?s){} ?{}{}\(\s*{}\)'.format(make_c_typeval(ret, True, typelist), global_pattern, objname, funcargs[0])
clean = '{} {}({})'.format(make_c_typeval(ret, False, typelist), objname, funcargs[1])
match = re.search(pattern, source, re.MULTILINE | re.DOTALL)
@@ -198,7 +198,7 @@ def check_function(parent_name, objname, obj, source, global_func, typelist):
pattern2 = None
# global functions returning strings can't return an rdcstr, they have to return const char *
if match is None and ret == 'str':
pattern2 = '(?s)const char \*{}{}\(\s*{}\)'.format(global_pattern, objname, funcargs[0])
pattern2 = r'(?s)const char \*{}{}\(\s*{}\)'.format(global_pattern, objname, funcargs[0])
match = re.search(pattern2, source, re.MULTILINE | re.DOTALL)
if match is None:
@@ -291,8 +291,8 @@ for mod_name in check_mods:
print("Checking class {}".format(qualname))
# Grab the source to just this class to search in
source = re.search('(struct|class|union) I?' + objname + '(\n|\s*:[^A-Za-z][\s:a-zA-Z]*\n)\{.*?^}', headers, re.MULTILINE | re.DOTALL)
source = re.search('(struct|class|union) I?' + objname + r'(\n|\s*:[^A-Za-z][\s:a-zA-Z]*\n)\{.*?^}', headers, re.MULTILINE | re.DOTALL)
namespace = None
if source is None and objname[0:2] in ['VK', 'GL']:
@@ -310,13 +310,19 @@ for mod_name in check_mods:
namespace = namespace.group(0)
if source is None and namespace is not None:
source = re.search('(struct|class|union) I?' + objname + '[^{]*\{.*?^}', namespace, re.MULTILINE | re.DOTALL)
source = re.search('(struct|class|union) I?' + objname + r'[^{]*\{.*?^}', namespace, re.MULTILINE | re.DOTALL)
source = source.group(0)
instance = None
copyable = False
try:
instance = obj()
try:
dupe_instance = obj(instance)
copyable = True
except NotImplementedError:
pass
except TypeError:
pass
@@ -328,6 +334,29 @@ for mod_name in check_mods:
instance_warned = False
# for types that we can create, we expect by default to
# see a default constructor and a copy constructor,
# unless we see a note that the type is not copyable
if instance is not None:
lines = docstring.strip().splitlines()
if lines[0].strip() != f"{obj.__name__}()":
count += 1
print(
f"Error {count:3}: {obj.__name__} can be created, "
"expect default constructor as first real line of its docstring."
)
elif (
copyable
and lines[1].strip() != f"{obj.__name__}(other: {obj.__name__})"
):
count += 1
print(
f"Error {count:3}: {obj.__name__} can be copied, "
"expect copy constructor as second entry in its docstring:\n"
f"Actual > {lines[1]}\n"
f"Expected > {obj.__name__}(other: {obj.__name__})"
)
for member_name in obj.__dict__.keys():
if '__' in member_name or member_name in ['this', 'thisown']:
continue
@@ -407,7 +436,7 @@ for mod_name in check_mods:
count += 1
print("Error {:3}: {}.{} is missing :type: declaration, should be {}".format(count, qualname, member_name, type_name))
else:
type_decl = re.sub('Tuple\[.*\]', 'tuple', type_decl)
type_decl = re.sub(r'Tuple\[.*\]', 'tuple', type_decl)
if type_decl != type_name:
count += 1
print("Error {:3}: {}.{} has wrong :type: declaration {}, should be {}".format(count, qualname, member_name, type_decl, type_name))
+6 -1
View File
@@ -279,7 +279,12 @@ BITMASK_OPERATORS(DialogButton);
DISABLE_PYTHON_FLAG_ENUMS;
#endif
DOCUMENT("The metadata for an extension.");
DOCUMENT(R"(
ExtensionMetadata()
ExtensionMetadata(other: ExtensionMetadata)
The metadata for an extension.
)");
struct ExtensionMetadata
{
DOCUMENT("");
+23 -4
View File
@@ -30,7 +30,11 @@
class QMutex;
DOCUMENT(R"(Contains the output from invoking a :class:`ShaderProcessingTool`, including both the
DOCUMENT(R"(
ShaderToolOutput()
ShaderToolOutput(other: ShaderToolOutput)
Contains the output from invoking a :class:`ShaderProcessingTool`, including both the
actual output data desired as well as any stdout/stderr messages.
)");
struct ShaderToolOutput
@@ -48,7 +52,11 @@ struct ShaderToolOutput
bytebuf result;
};
DOCUMENT(R"(Describes an external program that can be used to process shaders, typically either
DOCUMENT(R"(
ShaderProcessingTool()
ShaderProcessingTool(other: ShaderProcessingTool)
Describes an external program that can be used to process shaders, typically either
compiling from a high-level language to a binary format, or decompiling from the binary format to
a high-level language or textual representation.
@@ -58,6 +66,9 @@ struct ShaderProcessingTool
{
DOCUMENT("");
ShaderProcessingTool() = default;
ShaderProcessingTool(const ShaderProcessingTool &) = default;
ShaderProcessingTool &operator=(const ShaderProcessingTool &) = default;
VARIANT_CAST(ShaderProcessingTool);
bool operator==(const ShaderProcessingTool &o) const
{
@@ -159,7 +170,12 @@ DECLARE_REFLECTION_STRUCT(ShaderProcessingTool);
#define BUGREPORT_URL "https://renderdoc.org/bugreporter"
#endif
DOCUMENT("Describes a submitted bug report.");
DOCUMENT(R"(
BugReport()
BugReport(other: BugReport)
Describes a submitted bug report.
)");
struct BugReport
{
DOCUMENT("");
@@ -879,7 +895,10 @@ struct CustomPersistentStorage
};
#endif
DOCUMENT(R"(A persistant config file that is automatically loaded and saved, which contains any
DOCUMENT(R"(
PersistantConfig()
A persistant config file that is automatically loaded and saved, which contains any
settings and information that needs to be preserved from one run to the next.
The config is retrieved by calling :meth:`CaptureContext.Config`.
+27 -4
View File
@@ -95,10 +95,18 @@ struct ICaptureContext;
#include "PersistantConfig.h"
#include "RemoteHost.h"
DOCUMENT("Contains all of the settings that control how to capture an executable.");
DOCUMENT(R"(
CaptureSettings()
CaptureSettings(other: CaptureSettings)
Contains all of the settings that control how to capture an executable.
)");
struct CaptureSettings
{
DOCUMENT("");
CaptureSettings();
CaptureSettings(const CaptureSettings &) = default;
CaptureSettings &operator=(const CaptureSettings &) = default;
VARIANT_CAST(CaptureSettings);
@@ -151,7 +159,11 @@ struct CaptureSettings
DECLARE_REFLECTION_STRUCT(CaptureSettings);
DOCUMENT(R"(The details of a capture that has been made on a connection but may not
DOCUMENT(R"(
ConnectedTempCapture()
ConnectedTempCapture(other: ConnectedTempCapture)
The details of a capture that has been made on a connection but may not
have been saved to disk or local.
)");
struct ConnectedTempCapture
@@ -1804,7 +1816,11 @@ protected:
DECLARE_REFLECTION_STRUCT(IPixelHistoryView);
DOCUMENT("An interface implemented by any object wanting to be notified of capture events.");
DOCUMENT(R"(
CaptureViewer()
An interface implemented by any object wanting to be notified of capture events.
)");
struct ICaptureViewer
{
DOCUMENT("Called whenever a capture is opened.");
@@ -2193,7 +2209,13 @@ enum class CaptureModifications : uint32_t
BITMASK_OPERATORS(CaptureModifications);
DOCUMENT("A description of a bookmark on an event");
DOCUMENT(R"(
EventBookmark()
EventBookmark(other: EventBookmark)
EventBookmark(eventId: int)
A description of a bookmark on an event
)");
struct EventBookmark
{
DOCUMENT(R"(The :data:`eventId <renderdoc.APIEvent.eventId>` at which this bookmark is placed.
@@ -2210,6 +2232,7 @@ struct EventBookmark
DOCUMENT("");
EventBookmark() = default;
EventBookmark(const EventBookmark &) = default;
EventBookmark(uint32_t e) : eventId(e) {}
bool operator==(const EventBookmark &o) const { return eventId == o.eventId; }
bool operator!=(const EventBookmark &o) const { return eventId != o.eventId; }
+7 -1
View File
@@ -38,7 +38,13 @@ struct RemoteHostData;
// are unexpectedly removed (such as disconnecting an auto-populated device) these structs are
// copied around and they have a shared locked data pointer. All accessors then lock and look up the
// data there to fetch or modify
DOCUMENT("A handle for interacting with a remote server on a given host.");
DOCUMENT(R"(
RemoteHost()
RemoteHost(other: RemoteHost)
RemoteHost(hostname: str)
A handle for interacting with a remote server on a given host.
)");
class RemoteHost
{
public:
@@ -87,5 +87,10 @@ fail:
template <>
inline SDFile *MakeFromArgsTuple<SDFile>(PyObject *args)
{
if(!SWIG_Python_UnpackTuple(args, "new_SDFile", 0, 0, 0))
SWIG_fail;
return new SDFile();
fail:
return NULL;
}
+3
View File
@@ -114,6 +114,9 @@ TEMPLATE_FIXEDARRAY_DECLARE(rdcfixedarray);
static int capviewer_init(PyObject *self, PyObject *args) {
PyObject *resultobj = 0;
ICaptureViewer *result = 0;
if(!SWIG_Python_UnpackTuple(args, "new_CaptureViewer", 0, 0, 0))
return -1;
result = new PythonCaptureViewer(self);
resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ICaptureViewer, SWIG_BUILTIN_INIT | 0);
+5 -1
View File
@@ -33,7 +33,11 @@ typedef uint8_t byte;
// see renderdoc_app.h RENDERDOC_CaptureOption - make sure any changes here are reflected there, to
// the options or to the documentation
DOCUMENT(R"(Sets up configuration and options for optional features either at capture time or at API
DOCUMENT(R"(
CaptureOptions()
CaptureOptions(other: CaptureOptions)
Sets up configuration and options for optional features either at capture time or at API
initialisation time that the user can enable or disable at will.
)");
struct CaptureOptions
+127 -22
View File
@@ -30,7 +30,13 @@
#include "shader_types.h"
#include "stringise.h"
DOCUMENT("Information about a viewport.");
DOCUMENT(R"(
Viewport()
Viewport(other: Viewport)
Viewport(x: float, y: float, width: float, height: float, minDepth: float, maxDepth: float, enabled: bool)
Information about a viewport.
)");
struct Viewport
{
DOCUMENT("");
@@ -103,7 +109,13 @@ struct Viewport
DECLARE_REFLECTION_STRUCT(Viewport);
DOCUMENT("Describes a single scissor region.");
DOCUMENT(R"(
Scissor()
Scissor(other: Scissor)
Scissor(x: int, y: int, width: int, height: int, enabled: bool)
Describes a single scissor region.
)");
struct Scissor
{
DOCUMENT("");
@@ -161,7 +173,12 @@ struct Scissor
DECLARE_REFLECTION_STRUCT(Scissor);
DOCUMENT("Describes the details of a blend operation.");
DOCUMENT(R"(
BlendEquation()
BlendEquation(other: BlendEquation)
Describes the details of a blend operation.
)");
struct BlendEquation
{
DOCUMENT("");
@@ -202,7 +219,12 @@ struct BlendEquation
DECLARE_REFLECTION_STRUCT(BlendEquation);
DOCUMENT("Describes the blend configuration for a given output target.");
DOCUMENT(R"(
ColorBlend()
ColorBlend(other: ColorBlend)
Describes the blend configuration for a given output target.
)");
struct ColorBlend
{
DOCUMENT("");
@@ -270,7 +292,12 @@ struct ColorBlend
DECLARE_REFLECTION_STRUCT(ColorBlend);
DOCUMENT("Describes a common subset of rasterizing state.");
DOCUMENT(R"(
RasterState()
RasterState(other: RasterState)
Describes a common subset of rasterizing state.
)");
struct RasterState
{
DOCUMENT("");
@@ -298,7 +325,12 @@ struct RasterState
CullMode cullMode = CullMode::NoCull;
};
DOCUMENT("Describes a common subset of depth testing state.");
DOCUMENT(R"(
DepthTestState()
DepthTestState(other: DepthTestState)
Describes a common subset of depth testing state.
)");
struct DepthTestState
{
DOCUMENT("");
@@ -338,7 +370,12 @@ struct DepthTestState
double maxDepthBounds = 0.0;
};
DOCUMENT("Describes the details of a stencil operation.");
DOCUMENT(R"(
StencilFace()
StencilFace(other: StencilFace)
Describes the details of a stencil operation.
)");
struct StencilFace
{
DOCUMENT("");
@@ -385,7 +422,12 @@ struct StencilFace
DECLARE_REFLECTION_STRUCT(StencilFace);
DOCUMENT("Information about a single vertex or index buffer binding.");
DOCUMENT(R"(
BoundVBuffer()
BoundVBuffer(other: BoundVBuffer)
Information about a single vertex or index buffer binding.
)");
struct BoundVBuffer
{
DOCUMENT("");
@@ -434,7 +476,11 @@ struct BoundVBuffer
DECLARE_REFLECTION_STRUCT(BoundVBuffer);
DOCUMENT(R"(The contents of a descriptor. Not all contents will be valid depending on API and
DOCUMENT(R"(
Descriptor()
Descriptor(other: Descriptor)
The contents of a descriptor. Not all contents will be valid depending on API and
descriptor type, others will be set to sensible defaults.
For sampler descriptors, the sampler-specific data can be queried separately and returned as
@@ -621,7 +667,11 @@ descriptor
DECLARE_REFLECTION_STRUCT(Descriptor);
DOCUMENT(R"(The contents of a sampler descriptor. Not all contents will be valid depending on API
DOCUMENT(R"(
SamplerDescriptor()
SamplerDescriptor(other: SamplerDescriptor)
The contents of a sampler descriptor. Not all contents will be valid depending on API
and capabilities, others will be set to sensible defaults.
For normal descriptors, the resource data should be queried and returned in :class:`Descriptor`.
@@ -838,7 +888,11 @@ this sampler.
DECLARE_REFLECTION_STRUCT(SamplerDescriptor);
DOCUMENT(R"(The details of a single accessed descriptor as fetched by a shader and which descriptor
DOCUMENT(R"(
DescriptorAccess()
DescriptorAccess(other: DescriptorAccess)
The details of a single accessed descriptor as fetched by a shader and which descriptor
in the descriptor store was fetched.
This may be a somewhat conservative access, reported as possible but not actually executed on the
@@ -960,7 +1014,11 @@ inline ShaderDirectAccess::ShaderDirectAccess(const DescriptorAccess &access)
{
}
DOCUMENT(R"(In many cases there may be a logical location or fixed binding point for a particular
DOCUMENT(R"(
DescriptorLogicalLocation()
DescriptorLogicalLocation(other: DescriptorLogicalLocation)
In many cases there may be a logical location or fixed binding point for a particular
descriptor which is not conveyed with a simple byte offset into a descriptor store.
This is particularly true for any descriptor stores that are not equivalent to a buffer of bytes
but actually have an API structure - for example D3D11 and GL with fixed binding points, or Vulkan
@@ -1065,7 +1123,11 @@ first, and fall back to this name if no reflection information is available in t
DECLARE_REFLECTION_STRUCT(DescriptorLogicalLocation);
DOCUMENT(R"(Combined information about a single descriptor that has been used, both the information
DOCUMENT(R"(
UsedDescriptor()
UsedDescriptor(other: UsedDescriptor)
Combined information about a single descriptor that has been used, both the information
about its access and its contents.
This is a helper struct for the common pipeline state abstraction to trade off simplicity of access
@@ -1121,7 +1183,13 @@ For normal descriptors this is empty.
DECLARE_REFLECTION_STRUCT(UsedDescriptor);
DOCUMENT("Describes a 2-dimensional int offset");
DOCUMENT(R"(
Offset()
Offset(other: Offset)
Offset(x: int, y: int)
Describes a 2-dimensional int offset
)");
struct Offset
{
DOCUMENT("");
@@ -1152,7 +1220,12 @@ struct Offset
DECLARE_REFLECTION_STRUCT(Offset);
DOCUMENT("Information about a vertex input attribute feeding the vertex shader.");
DOCUMENT(R"(
VertexInputAttribute()
VertexInputAttribute(other: VertexInputAttribute)
Information about a vertex input attribute feeding the vertex shader.
)");
struct VertexInputAttribute
{
DOCUMENT("");
@@ -1252,7 +1325,11 @@ be emulated.
DECLARE_REFLECTION_STRUCT(VertexInputAttribute);
DOCUMENT(R"(A task or mesh message's location.
DOCUMENT(R"(
ShaderMeshMessageLocation()
ShaderMeshMessageLocation(other: ShaderMeshMessageLocation)
A task or mesh message's location.
.. data:: NotUsed
@@ -1314,7 +1391,12 @@ struct ShaderMeshMessageLocation
DECLARE_REFLECTION_STRUCT(ShaderMeshMessageLocation);
DOCUMENT("A compute shader message's location.");
DOCUMENT(R"(
ShaderComputeMessageLocation()
ShaderComputeMessageLocation(other: ShaderComputeMessageLocation)
A compute shader message's location.
)");
struct ShaderComputeMessageLocation
{
DOCUMENT("");
@@ -1350,7 +1432,12 @@ struct ShaderComputeMessageLocation
DECLARE_REFLECTION_STRUCT(ShaderComputeMessageLocation);
DOCUMENT("A vertex shader message's location.");
DOCUMENT(R"(
ShaderVertexMessageLocation()
ShaderVertexMessageLocation(other: ShaderVertexMessageLocation)
A vertex shader message's location.
)");
struct ShaderVertexMessageLocation
{
DOCUMENT(R"(The vertex or index for this vertex.
@@ -1374,7 +1461,11 @@ struct ShaderVertexMessageLocation
DECLARE_REFLECTION_STRUCT(ShaderVertexMessageLocation);
DOCUMENT(R"(A pixel shader message's location.
DOCUMENT(R"(
ShaderPixelMessageLocation()
ShaderPixelMessageLocation(other: ShaderPixelMessageLocation)
A pixel shader message's location.
.. data:: NoLocation
@@ -1417,7 +1508,11 @@ struct ShaderPixelMessageLocation
DECLARE_REFLECTION_STRUCT(ShaderPixelMessageLocation);
DOCUMENT(R"(A geometry shader message's location.
DOCUMENT(R"(
ShaderGeometryMessageLocation()
ShaderGeometryMessageLocation(other: ShaderGeometryMessageLocation)
A geometry shader message's location.
.. data:: NoLocation
@@ -1440,7 +1535,12 @@ struct ShaderGeometryMessageLocation
DECLARE_REFLECTION_STRUCT(ShaderGeometryMessageLocation);
DOCUMENT("A shader message's location.");
DOCUMENT(R"(
ShaderMessageLocation()
ShaderMessageLocation(other: ShaderMessageLocation)
A shader message's location.
)");
union ShaderMessageLocation
{
DOCUMENT(R"(The location if the shader is a compute shader.
@@ -1476,7 +1576,12 @@ union ShaderMessageLocation
DECLARE_REFLECTION_STRUCT(ShaderMessageLocation);
DOCUMENT("A shader printed message.");
DOCUMENT(R"(
ShaderMessage()
ShaderMessage(other: ShaderMessage)
A shader printed message.
)");
struct ShaderMessage
{
DOCUMENT("");
+128 -21
View File
@@ -32,7 +32,11 @@
#include "rdcarray.h"
#include "replay_enums.h"
DOCUMENT(R"(The size information for a task group.
DOCUMENT(R"(
TaskGroupSize()
TaskGroupSize(other: TaskGroupSize)
The size information for a task group.
)");
struct TaskGroupSize
{
@@ -68,7 +72,11 @@ struct TaskGroupSize
DECLARE_REFLECTION_STRUCT(TaskGroupSize);
DOCUMENT(R"(The size information for a meshlet.
DOCUMENT(R"(
MeshletSize()
MeshletSize(other: MeshletSize)
The size information for a meshlet.
)");
struct MeshletSize
{
@@ -101,7 +109,11 @@ of indices.
DECLARE_REFLECTION_STRUCT(MeshletSize);
DOCUMENT(R"(Contains the details of a single element of data (such as position or texture
DOCUMENT(R"(
MeshFormat()
MeshFormat(other: MeshFormat)
Contains the details of a single element of data (such as position or texture
co-ordinates) within a mesh.
)");
struct MeshFormat
@@ -314,6 +326,9 @@ DECLARE_REFLECTION_STRUCT(MeshFormat);
struct ICamera;
DOCUMENT(R"(
MeshDisplay()
MeshDisplay(other: MeshDisplay)
Describes how to render a mesh preview of one or more meshes. Describes the camera configuration as
well as what options to use when rendering both the current mesh, and any other auxilliary meshes.
@@ -447,6 +462,9 @@ struct MeshDisplay
DECLARE_REFLECTION_STRUCT(MeshDisplay);
DOCUMENT(R"(
TextureDisplay()
TextureDisplay(other: TextureDisplay)
Describes how to render a texture preview of an image. Describes the zoom and pan settings for the
texture when rendering on a particular output, as well as the modification and selection of a
particular subresource (such as array slice, mip or multi-sampled sample).
@@ -621,7 +639,12 @@ If set to (0, 0, 0, 0) the global checkerboard colors are used.
DECLARE_REFLECTION_STRUCT(TextureDisplay);
// some dependent structs for TextureSave
DOCUMENT("How to map components to normalised ``[0, 255]`` for saving to 8-bit file formats.");
DOCUMENT(R"(
TextureComponentMapping()
TextureComponentMapping(other: TextureComponentMapping)
How to map components to normalised ``[0, 255]`` for saving to 8-bit file formats.
)");
struct TextureComponentMapping
{
DOCUMENT("");
@@ -643,7 +666,11 @@ struct TextureComponentMapping
DECLARE_REFLECTION_STRUCT(TextureComponentMapping);
DOCUMENT(R"(How to map multisampled textures for saving to non-multisampled file formats.
DOCUMENT(R"(
TextureSampleMapping()
TextureSampleMapping(other: TextureSampleMapping)
How to map multisampled textures for saving to non-multisampled file formats.
.. data:: ResolveSamples
@@ -680,7 +707,11 @@ normal 2D image. If set to :data:`ResolveSamples` then instead there's a default
DECLARE_REFLECTION_STRUCT(TextureSampleMapping);
DOCUMENT(R"(How to map array textures for saving to non-arrayed file formats.
DOCUMENT(R"(
TextureSliceMapping()
TextureSliceMapping(other: TextureSliceMapping)
How to map array textures for saving to non-arrayed file formats.
If :data:`sliceIndex` is -1, :data:`cubeCruciform` == :data:`slicesAsGrid` == ``False`` and the file
format doesn't support saving all slices, only slice 0 is saved.
@@ -740,7 +771,12 @@ With the gaps filled in with transparent black.
DECLARE_REFLECTION_STRUCT(TextureSliceMapping);
DOCUMENT("Describes a texture to save and how to map it to the destination file format.");
DOCUMENT(R"(
TextureSave()
TextureSave(other: TextureSave)
Describes a texture to save and how to map it to the destination file format.
)");
struct TextureSave
{
DOCUMENT("");
@@ -834,7 +870,13 @@ It is an :class:`AlphaMapping` that controls what behaviour to use.
DECLARE_REFLECTION_STRUCT(TextureSave);
DOCUMENT("A range of sized descriptors.");
DOCUMENT(R"(
DescriptorRange()
DescriptorRange(other: DescriptorRange)
DescriptorRange(access: DescriptorAccess)
A range of sized descriptors.
)");
struct DescriptorRange
{
DOCUMENT("");
@@ -893,7 +935,12 @@ struct DescriptorRange
DECLARE_REFLECTION_STRUCT(DescriptorRange);
// dependent structs for TargetControlMessage
DOCUMENT("Information about the a new capture created by the target.");
DOCUMENT(R"(
NewCaptureData()
NewCaptureData(other: NewCaptureData)
Information about the a new capture created by the target.
)");
struct NewCaptureData
{
DOCUMENT("");
@@ -963,7 +1010,12 @@ struct NewCaptureData
DECLARE_REFLECTION_STRUCT(NewCaptureData);
DOCUMENT("Information about the API that the target is using.");
DOCUMENT(R"(
APIUseData()
APIUseData(other: APIUseData)
Information about the API that the target is using.
)");
struct APIUseData
{
DOCUMENT("");
@@ -998,7 +1050,12 @@ struct APIUseData
DECLARE_REFLECTION_STRUCT(APIUseData);
DOCUMENT("Information about why the target is busy.");
DOCUMENT(R"(
BusyData()
BusyData(other: BusyData)
Information about why the target is busy.
)");
struct BusyData
{
DOCUMENT("");
@@ -1015,7 +1072,12 @@ struct BusyData
DECLARE_REFLECTION_STRUCT(BusyData);
DOCUMENT("Information about a new child process spawned by the target.");
DOCUMENT(R"(
NewChildData()
NewChildData(other: NewChildData)
Information about a new child process spawned by the target.
)");
struct NewChildData
{
DOCUMENT("");
@@ -1037,7 +1099,12 @@ struct NewChildData
DECLARE_REFLECTION_STRUCT(NewChildData);
DOCUMENT("A message from a target control connection.");
DOCUMENT(R"(
TargetControlMessage()
TargetControlMessage(other: TargetControlMessage)
A message from a target control connection.
)");
struct TargetControlMessage
{
DOCUMENT("");
@@ -1093,7 +1160,13 @@ or has finished, it will be -1.0
DECLARE_REFLECTION_STRUCT(TargetControlMessage);
DOCUMENT("A modification to a single environment variable.");
DOCUMENT(R"(
EnvironmentModification()
EnvironmentModification(other: EnvironmentModification)
EnvironmentModification(mod: EnvMod, sep: EnvSep, name: str, value: str)
A modification to a single environment variable.
)");
struct EnvironmentModification
{
DOCUMENT("");
@@ -1145,7 +1218,12 @@ struct EnvironmentModification
DECLARE_REFLECTION_STRUCT(EnvironmentModification);
DOCUMENT("The format for a capture file either supported to read from, or export to");
DOCUMENT(R"(
CaptureFileFormat()
CaptureFileFormat(other: CaptureFileFormat)
The format for a capture file either supported to read from, or export to.
)");
struct CaptureFileFormat
{
DOCUMENT("");
@@ -1217,7 +1295,12 @@ structured data.
DECLARE_REFLECTION_STRUCT(CaptureFileFormat);
DOCUMENT("Describes a single GPU at replay time.");
DOCUMENT(R"(
GPUDevice()
GPUDevice(other: GPUDevice)
Describes a single GPU at replay time.
)");
struct GPUDevice
{
DOCUMENT("");
@@ -1271,7 +1354,12 @@ struct GPUDevice
DECLARE_REFLECTION_STRUCT(GPUDevice);
DOCUMENT("The options controlling how replay of a capture should be performed");
DOCUMENT(R"(
ReplayOptions()
ReplayOptions(other: ReplayOptions)
The options controlling how replay of a capture should be performed.
)");
struct ReplayOptions
{
DOCUMENT("");
@@ -1378,7 +1466,12 @@ struct ANativeWindow;
// for swig bindings treat the windowing data struct as completely opaque
#if defined(SWIG)
DOCUMENT("An opaque structure created to hold windowing setup data");
DOCUMENT(R"(
WindowingData()
WindowingData(other: WindowingData)
An opaque structure created to hold windowing setup data
)");
struct WindowingData
{
};
@@ -1436,7 +1529,12 @@ DECLARE_STRINGISE_TYPE(WindowingData);
#endif
DOCUMENT(R"(Structure used for initialising environment in a replay application.)");
DOCUMENT(R"(
GlobalEnvironment()
GlobalEnvironment(other: GlobalEnvironment)
Structure used for initialising environment in a replay application.
)");
struct GlobalEnvironment
{
DOCUMENT("");
@@ -1468,7 +1566,11 @@ here.
DECLARE_REFLECTION_STRUCT(GlobalEnvironment);
DOCUMENT(R"(A general result from an operation with optional string information for failures.
DOCUMENT(R"(
ResultDetails()
ResultDetails(other: ResultDetails)
A general result from an operation with optional string information for failures.
This struct can be compared directly to a :class:`ResultCode` for simple checks of status, and when
converted to a string it includes the formatted result code and message as appropriate.
@@ -1531,7 +1633,12 @@ extra information that is available about the error.
DECLARE_REFLECTION_STRUCT(ResultDetails);
DOCUMENT("The result of executing or injecting into a program.")
DOCUMENT(R"(
ExecuteResult()
ExecuteResult(other: ExecuteResult)
The result of executing or injecting into a program.
)")
struct ExecuteResult
{
DOCUMENT("");
+79 -14
View File
@@ -32,7 +32,11 @@
namespace D3D11Pipe
{
DOCUMENT(R"(Describes a single D3D11 input layout element for one vertex input.
DOCUMENT(R"(
D3D11Layout()
D3D11Layout(other: D3D11Layout)
Describes a single D3D11 input layout element for one vertex input.
.. data:: TightlyPacked
@@ -123,7 +127,12 @@ with the next instance data.
static const uint32_t TightlyPacked = ~0U;
};
DOCUMENT("Describes a single D3D11 vertex buffer binding.")
DOCUMENT(R"(
D3D11VertexBuffer()
D3D11VertexBuffer(other: D3D11VertexBuffer)
Describes a single D3D11 vertex buffer binding.
)")
struct VertexBuffer
{
DOCUMENT("");
@@ -164,7 +173,12 @@ struct VertexBuffer
uint32_t byteStride = 0;
};
DOCUMENT("Describes the D3D11 index buffer binding.")
DOCUMENT(R"(
D3D11IndexBuffer()
D3D11IndexBuffer(other: D3D11IndexBuffer)
Describes the D3D11 index buffer binding.
)")
struct IndexBuffer
{
DOCUMENT("");
@@ -192,7 +206,12 @@ it can be 0 if no index buffer is bound.
uint32_t byteStride = 0;
};
DOCUMENT("Describes the input assembler data.");
DOCUMENT(R"(
D3D11InputAssembly()
D3D11InputAssembly(other: D3D11InputAssembly)
Describes the input assembler data.
)");
struct InputAssembly
{
DOCUMENT("");
@@ -237,7 +256,12 @@ struct InputAssembly
Topology topology = Topology::Unknown;
};
DOCUMENT("Describes a D3D11 shader stage.");
DOCUMENT(R"(
D3D11Shader()
D3D11Shader(other: D3D11Shader)
Describes a D3D11 shader stage.
)");
struct Shader
{
DOCUMENT("");
@@ -270,7 +294,12 @@ struct Shader
rdcarray<rdcstr> classInstances;
};
DOCUMENT("Describes a binding on the D3D11 stream-out stage.");
DOCUMENT(R"(
D3D11StreamOutBind()
D3D11StreamOutBind(other: D3D11StreamOutBind)
Describes a binding on the D3D11 stream-out stage.
)");
struct StreamOutBind
{
DOCUMENT("");
@@ -303,7 +332,11 @@ struct StreamOutBind
uint32_t byteOffset = 0;
};
DOCUMENT(R"(Describes the stream-out stage bindings.
DOCUMENT(R"(
D3D11StreamOut()
D3D11StreamOut(other: D3D11StreamOut)
Describes the stream-out stage bindings.
.. data:: NoRasterization
@@ -334,7 +367,12 @@ If the value is :data:`NoRasterization` then no stream has been selected for ras
static const uint32_t NoRasterization = ~0U;
};
DOCUMENT("Describes a rasterizer state object.");
DOCUMENT(R"(
D3D11RasterizerState()
D3D11RasterizerState(other: D3D11RasterizerState)
Describes a rasterizer state object.
)");
struct RasterizerState
{
DOCUMENT("");
@@ -412,7 +450,12 @@ not force any sample count.
ConservativeRaster conservativeRasterization = ConservativeRaster::Disabled;
};
DOCUMENT("Describes the rasterization state of the D3D11 pipeline.");
DOCUMENT(R"(
D3D11Rasterizer()
D3D11Rasterizer(other: D3D11Rasterizer)
Describes the rasterization state of the D3D11 pipeline.
)");
struct Rasterizer
{
DOCUMENT("");
@@ -439,7 +482,12 @@ struct Rasterizer
RasterizerState state;
};
DOCUMENT("Describes a depth-stencil state object.");
DOCUMENT(R"(
D3D11DepthStencilState()
D3D11DepthStencilState(other: D3D11DepthStencilState)
Describes a depth-stencil state object.
)");
struct DepthStencilState
{
DOCUMENT("");
@@ -486,7 +534,12 @@ struct DepthStencilState
StencilFace backFace;
};
DOCUMENT("Describes a blend state object.");
DOCUMENT(R"(
D3D11BlendState()
D3D11BlendState(other: D3D11BlendState)
Describes a blend state object.
)");
struct BlendState
{
DOCUMENT("");
@@ -531,7 +584,12 @@ struct BlendState
uint32_t sampleMask = ~0U;
};
DOCUMENT("Describes the current state of the output-merger stage of the D3D11 pipeline.");
DOCUMENT(R"(
D3D11OutputMerger()
D3D11OutputMerger(other: D3D11OutputMerger)
Describes the current state of the output-merger stage of the D3D11 pipeline.
)");
struct OutputMerger
{
DOCUMENT("");
@@ -580,7 +638,12 @@ struct OutputMerger
bool stencilReadOnly = false;
};
DOCUMENT("Describes the current state of D3D11 predicated rendering.");
DOCUMENT(R"(
D3D11Predication()
D3D11Predication(other: D3D11Predication)
Describes the current state of D3D11 predicated rendering.
)");
struct Predication
{
DOCUMENT("");
@@ -607,7 +670,9 @@ struct Predication
bool isPassing = false;
};
DOCUMENT("The full current D3D11 pipeline state.");
DOCUMENT(R"(
The full current D3D11 pipeline state.
)");
struct State
{
#if !defined(RENDERDOC_EXPORTS)
+115 -20
View File
@@ -28,7 +28,11 @@
namespace D3D12Pipe
{
DOCUMENT(R"(Describes a single D3D12 input layout element for one vertex input.
DOCUMENT(R"(
D3D12Layout()
D3D12Layout(other: D3D12Layout)
Describes a single D3D12 input layout element for one vertex input.
.. data:: TightlyPacked
@@ -119,7 +123,12 @@ with the next instance data.
static const uint32_t TightlyPacked = ~0U;
};
DOCUMENT("Describes a single D3D12 vertex buffer binding.")
DOCUMENT(R"(
D3D12VertexBuffer()
D3D12VertexBuffer(other: D3D12VertexBuffer)
Describes a single D3D12 vertex buffer binding.
)")
struct VertexBuffer
{
DOCUMENT("");
@@ -169,7 +178,12 @@ struct VertexBuffer
uint32_t byteStride = 0;
};
DOCUMENT("Describes the D3D12 index buffer binding.")
DOCUMENT(R"(
D3D12IndexBuffer()
D3D12IndexBuffer(other: D3D12IndexBuffer)
Describes the D3D12 index buffer binding.
)")
struct IndexBuffer
{
DOCUMENT("");
@@ -203,7 +217,12 @@ it can be 0 if no index buffer is bound.
uint32_t byteStride = 0;
};
DOCUMENT("Describes the input assembler state in the PSO.");
DOCUMENT(R"(
D3D12InputAssembly()
D3D12InputAssembly(other: D3D12InputAssembly)
Describes the input assembler state in the PSO.
)");
struct InputAssembly
{
DOCUMENT("");
@@ -243,7 +262,12 @@ If the value is 0, strip cutting is disabled.
Topology topology = Topology::Unknown;
};
DOCUMENT("Describes a D3D12 shader stage.");
DOCUMENT(R"(
D3D12Shader()
D3D12Shader(other: D3D12Shader)
Describes a D3D12 shader stage.
)");
struct Shader
{
DOCUMENT("");
@@ -270,7 +294,12 @@ struct Shader
ShaderStage stage = ShaderStage::Vertex;
};
DOCUMENT("Describes a binding on the D3D12 stream-out stage.");
DOCUMENT(R"(
D3D12StreamOutBind()
D3D12StreamOutBind(other: D3D12StreamOutBind)
Describes a binding on the D3D12 stream-out stage.
)");
struct StreamOutBind
{
DOCUMENT("");
@@ -328,7 +357,11 @@ written.
uint64_t writtenCountByteOffset = 0;
};
DOCUMENT(R"(Describes the stream-out state in the PSO.
DOCUMENT(R"(
D3D12StreamOut()
D3D12StreamOut(other: D3D12StreamOut)
Describes the stream-out state in the PSO.
.. data:: NoRasterization
@@ -359,7 +392,12 @@ If the value is :data:`NoRasterization` then no stream has been selected for ras
static const uint32_t NoRasterization = ~0U;
};
DOCUMENT("Describes the rasterizer state in the PSO.");
DOCUMENT(R"(
D3D12RasterizerState()
D3D12RasterizerState(other: D3D12RasterizerState)
Describes the rasterizer state in the PSO.
)");
struct RasterizerState
{
DOCUMENT("");
@@ -461,7 +499,12 @@ shading rate sampled from the shading rate image.
ResourceId shadingRateImage;
};
DOCUMENT("Describes the rasterization state of the D3D12 pipeline.");
DOCUMENT(R"(
D3D12Rasterizer()
D3D12Rasterizer(other: D3D12Rasterizer)
Describes the rasterization state of the D3D12 pipeline.
)");
struct Rasterizer
{
DOCUMENT("");
@@ -494,7 +537,12 @@ struct Rasterizer
RasterizerState state;
};
DOCUMENT("Describes the state of the depth-stencil state in the PSO.");
DOCUMENT(R"(
D3D12DepthStencilState()
D3D12DepthStencilState(other: D3D12DepthStencilState)
Describes the state of the depth-stencil state in the PSO.
)");
struct DepthStencilState
{
DOCUMENT("");
@@ -552,7 +600,12 @@ struct DepthStencilState
float maxDepthBounds = 0.0f;
};
DOCUMENT("Describes the blend state in the PSO.");
DOCUMENT(R"(
D3D12BlendState()
D3D12BlendState(other: D3D12BlendState)
Describes the blend state in the PSO.
)");
struct BlendState
{
DOCUMENT("");
@@ -586,7 +639,12 @@ struct BlendState
rdcfixedarray<float, 4> blendFactor = {1.0f, 1.0f, 1.0f, 1.0f};
};
DOCUMENT("Describes the current state of the output-merger stage of the D3D12 pipeline.");
DOCUMENT(R"(
D3D12OM()
D3D12OM(other: D3D12OM)
Describes the current state of the output-merger stage of the D3D12 pipeline.
)");
struct OM
{
DOCUMENT("");
@@ -629,7 +687,12 @@ struct OM
bool stencilReadOnly = false;
};
DOCUMENT("Describes the current state that a sub-resource is in.");
DOCUMENT(R"(
D3D12ResourceState()
D3D12ResourceState(other: D3D12ResourceState)
Describes the current state that a sub-resource is in.
)");
struct ResourceState
{
DOCUMENT("");
@@ -651,7 +714,12 @@ struct ResourceState
rdcstr name;
};
DOCUMENT("Contains the current state of a given resource.");
DOCUMENT(R"(
D3D12ResourceData()
D3D12ResourceData(other: D3D12ResourceData)
Contains the current state of a given resource.
)");
struct ResourceData
{
DOCUMENT("");
@@ -684,7 +752,12 @@ struct ResourceData
rdcarray<ResourceState> states;
};
DOCUMENT("Contains the structure of a single range within a root table definition.");
DOCUMENT(R"(
D3D12RootTableRange()
D3D12RootTableRange(other: D3D12RootTableRange)
Contains the structure of a single range within a root table definition.
)");
struct RootTableRange
{
DOCUMENT("");
@@ -749,7 +822,12 @@ offset in :data:`tableByteOffset`.
bool appended = false;
};
DOCUMENT("Contains the structure and content of a single root parameter.");
DOCUMENT(R"(
D3D12RootParam()
D3D12RootParam(other: D3D12RootParam)
Contains the structure and content of a single root parameter.
)");
struct RootParam
{
DOCUMENT("");
@@ -836,7 +914,12 @@ parameter. See :data:`heap` and :data:`tableRanges`.
rdcarray<RootTableRange> tableRanges;
};
DOCUMENT("Contains the details of a single static sampler in a root signature.");
DOCUMENT(R"(
D3D12StaticSampler()
D3D12StaticSampler(other: D3D12StaticSampler)
Contains the details of a single static sampler in a root signature.
)");
struct StaticSampler
{
DOCUMENT("");
@@ -887,7 +970,12 @@ struct StaticSampler
SamplerDescriptor descriptor;
};
DOCUMENT("Contains the root signature structure and root parameters.");
DOCUMENT(R"(
D3D12RootSignature()
D3D12RootSignature(other: D3D12RootSignature)
Contains the root signature structure and root parameters.
)");
struct RootSignature
{
DOCUMENT("");
@@ -914,7 +1002,12 @@ struct RootSignature
rdcarray<StaticSampler> staticSamplers;
};
DOCUMENT("Describes the current state of D3D12 predicated rendering.");
DOCUMENT(R"(
D3D12Predication()
D3D12Predication(other: D3D12Predication)
Describes the current state of D3D12 predicated rendering.
)");
struct Predication
{
DOCUMENT("");
@@ -946,7 +1039,9 @@ If ``False`` then a zero in the buffer would lead to them being performed as nor
bool skipIfZero = false;
};
DOCUMENT("The full current D3D12 pipeline state.");
DOCUMENT(R"(
The full current D3D12 pipeline state.
)");
struct State
{
#if !defined(RENDERDOC_EXPORTS)
+259 -46
View File
@@ -33,7 +33,13 @@
#include "stringise.h"
#include "structured_data.h"
DOCUMENT("A floating point four-component vector");
DOCUMENT(R"(
FloatVector()
FloatVector(other: FloatVector)
FloatVector(x: float, y: float, z: float, w: float)
A floating point four-component vector
)");
struct FloatVector
{
DOCUMENT("");
@@ -87,7 +93,13 @@ struct FloatVector
DECLARE_REFLECTION_STRUCT(FloatVector);
DOCUMENT("A transform to map the x, y, and z axes to new directions.");
DOCUMENT(R"(
AxisMapping()
AxisMapping(other: AxisMapping)
AxisMapping(xAxis: FloatVector, yAxis: FloatVector, zAxis: FloatVector)
A transform to map the x, y, and z axes to new directions.
)");
struct AxisMapping
{
AxisMapping()
@@ -121,7 +133,13 @@ struct AxisMapping
DECLARE_REFLECTION_STRUCT(AxisMapping);
DOCUMENT("Properties of a path on a remote filesystem.");
DOCUMENT(R"(
PathEntry()
PathEntry(other: PathEntry)
PathEntry(filename: str, flags: PathProperty)
Properties of a path on a remote filesystem.
)");
struct PathEntry
{
DOCUMENT("");
@@ -172,7 +190,12 @@ struct PathEntry
DECLARE_REFLECTION_STRUCT(PathEntry);
DOCUMENT("Properties of a section in a renderdoc capture file.");
DOCUMENT(R"(
SectionProperties()
SectionProperties(other: SectionProperties)
Properties of a section in a renderdoc capture file.
)");
struct SectionProperties
{
DOCUMENT("");
@@ -226,7 +249,12 @@ extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_ResourceFormatName(const Re
rdcstr &name);
#endif
DOCUMENT("Description of the format of a resource or element.");
DOCUMENT(R"(
ResourceFormat()
ResourceFormat(other: ResourceFormat)
Description of the format of a resource or element.
)");
struct ResourceFormat
{
DOCUMENT("");
@@ -684,7 +712,12 @@ private:
DECLARE_REFLECTION_STRUCT(ResourceFormat);
DOCUMENT("The details of a texture filter in a sampler.");
DOCUMENT(R"(
TextureFilter()
TextureFilter(other: TextureFilter)
The details of a texture filter in a sampler.
)");
struct TextureFilter
{
DOCUMENT("");
@@ -732,7 +765,12 @@ struct TextureFilter
DECLARE_REFLECTION_STRUCT(TextureFilter);
DOCUMENT("The four components of a texture swizzle.");
DOCUMENT(R"(
TextureSwizzle4()
TextureSwizzle4(other: TextureSwizzle4)
The four components of a texture swizzle.
)");
struct TextureSwizzle4
{
DOCUMENT("");
@@ -781,7 +819,12 @@ struct TextureSwizzle4
DECLARE_REFLECTION_STRUCT(TextureSwizzle4);
DOCUMENT("A description of any type of resource.");
DOCUMENT(R"(
ResourceDescription()
ResourceDescription(other: ResourceDescription)
A description of any type of resource.
)");
struct ResourceDescription
{
DOCUMENT("");
@@ -867,7 +910,12 @@ annotations are not used.
DECLARE_REFLECTION_STRUCT(ResourceDescription);
DOCUMENT("A description of a descriptor store.");
DOCUMENT(R"(
DescriptorStoreDescription()
DescriptorStoreDescription(other: DescriptorStoreDescription)
A description of a descriptor store.
)");
struct DescriptorStoreDescription
{
DOCUMENT("");
@@ -911,7 +959,12 @@ descriptor. Descriptors are assumed to be tightly packed so stride is equal to s
DECLARE_REFLECTION_STRUCT(DescriptorStoreDescription);
DOCUMENT("A description of a buffer resource.");
DOCUMENT(R"(
BufferDescription()
BufferDescription(other: BufferDescription)
A description of a buffer resource.
)");
struct BufferDescription
{
DOCUMENT("");
@@ -963,7 +1016,12 @@ struct BufferDescription
DECLARE_REFLECTION_STRUCT(BufferDescription);
DOCUMENT("A description of a texture resource.");
DOCUMENT(R"(
TextureDescription()
TextureDescription(other: TextureDescription)
A description of a texture resource.
)");
struct TextureDescription
{
DOCUMENT("");
@@ -1098,7 +1156,11 @@ struct TextureDescription
DECLARE_REFLECTION_STRUCT(TextureDescription);
DOCUMENT(R"(An individual API-level event, generally corresponds one-to-one with an API call.
DOCUMENT(R"(
APIEvent()
APIEvent(other: APIEvent)
An individual API-level event, generally corresponds one-to-one with an API call.
.. data:: NoChunk
@@ -1161,7 +1223,12 @@ annotations are not used.
DECLARE_REFLECTION_STRUCT(APIEvent);
DOCUMENT("A debugging message from the API validation or internal analysis and error detection.");
DOCUMENT(R"(
DebugMessage()
DebugMessage(other: DebugMessage)
A debugging message from the API validation or internal analysis and error detection.
)");
struct DebugMessage
{
DOCUMENT("");
@@ -1248,7 +1315,11 @@ enum class BucketRecordType : int
};
DECLARE_REFLECTION_ENUM(BucketRecordType);
DOCUMENT(R"(Contains the statistics for constant binds in a frame.
DOCUMENT(R"(
ConstantBindStats()
ConstantBindStats(other: ConstantBindStats)
Contains the statistics for constant binds in a frame.
.. data:: BucketType
@@ -1319,7 +1390,12 @@ struct ConstantBindStats
DECLARE_REFLECTION_STRUCT(ConstantBindStats);
DOCUMENT("Contains the statistics for sampler binds in a frame.");
DOCUMENT(R"(
SamplerBindStats()
SamplerBindStats(other: SamplerBindStats)
Contains the statistics for sampler binds in a frame.
)");
struct SamplerBindStats
{
DOCUMENT("");
@@ -1369,7 +1445,12 @@ struct SamplerBindStats
DECLARE_REFLECTION_STRUCT(SamplerBindStats);
DOCUMENT("Contains the statistics for resource binds in a frame.");
DOCUMENT(R"(
ResourceBindStats()
ResourceBindStats(other: ResourceBindStats)
Contains the statistics for resource binds in a frame.
)");
struct ResourceBindStats
{
DOCUMENT("");
@@ -1430,7 +1511,11 @@ The Nth element contains the number of times a resource of that type was bound.
DECLARE_REFLECTION_STRUCT(ResourceBindStats);
DOCUMENT(R"(Contains the statistics for resource updates in a frame.
DOCUMENT(R"(
ResourceUpdateStats()
ResourceUpdateStats(other: ResourceUpdateStats)
Contains the statistics for resource updates in a frame.
.. data:: BucketType
@@ -1485,7 +1570,11 @@ The Nth element contains the number of times a resource of that type was updated
DECLARE_REFLECTION_STRUCT(ResourceUpdateStats);
DOCUMENT(R"(Contains the statistics for draws in a frame.
DOCUMENT(R"(
DrawcallStats()
DrawcallStats(other: DrawcallStats)
Contains the statistics for draws in a frame.
.. data:: BucketType
@@ -1535,7 +1624,12 @@ struct DrawcallStats
DECLARE_REFLECTION_STRUCT(DrawcallStats);
DOCUMENT("Contains the statistics for compute dispatches in a frame.");
DOCUMENT(R"(
DispatchStats()
DispatchStats(other: DispatchStats)
Contains the statistics for compute dispatches in a frame.
)");
struct DispatchStats
{
DOCUMENT("");
@@ -1558,7 +1652,12 @@ struct DispatchStats
DECLARE_REFLECTION_STRUCT(DispatchStats);
DOCUMENT("Contains the statistics for index buffer binds in a frame.");
DOCUMENT(R"(
IndexBindStats()
IndexBindStats(other: IndexBindStats)
Contains the statistics for index buffer binds in a frame.
)");
struct IndexBindStats
{
DOCUMENT("");
@@ -1587,7 +1686,12 @@ struct IndexBindStats
DECLARE_REFLECTION_STRUCT(IndexBindStats);
DOCUMENT("Contains the statistics for vertex buffer binds in a frame.");
DOCUMENT(R"(
VertexBindStats()
VertexBindStats(other: VertexBindStats)
Contains the statistics for vertex buffer binds in a frame.
)");
struct VertexBindStats
{
DOCUMENT("");
@@ -1622,7 +1726,12 @@ struct VertexBindStats
DECLARE_REFLECTION_STRUCT(VertexBindStats);
DOCUMENT("Contains the statistics for vertex layout binds in a frame.");
DOCUMENT(R"(
LayoutBindStats()
LayoutBindStats(other: LayoutBindStats)
Contains the statistics for vertex layout binds in a frame.
)");
struct LayoutBindStats
{
DOCUMENT("");
@@ -1651,7 +1760,12 @@ struct LayoutBindStats
DECLARE_REFLECTION_STRUCT(LayoutBindStats);
DOCUMENT("Contains the statistics for shader binds in a frame.");
DOCUMENT(R"(
ShaderChangeStats()
ShaderChangeStats(other: ShaderChangeStats)
Contains the statistics for shader binds in a frame.
)");
struct ShaderChangeStats
{
DOCUMENT("");
@@ -1701,7 +1815,12 @@ struct ShaderChangeStats
DECLARE_REFLECTION_STRUCT(ShaderChangeStats);
DOCUMENT("Contains the statistics for blend state binds in a frame.");
DOCUMENT(R"(
BlendStats()
BlendStats(other: BlendStats)
Contains the statistics for blend state binds in a frame.
)");
struct BlendStats
{
DOCUMENT("");
@@ -1736,7 +1855,12 @@ struct BlendStats
DECLARE_REFLECTION_STRUCT(BlendStats);
DOCUMENT("Contains the statistics for depth stencil state binds in a frame.");
DOCUMENT(R"(
DepthStencilStats()
DepthStencilStats(other: DepthStencilStats)
Contains the statistics for depth stencil state binds in a frame.
)");
struct DepthStencilStats
{
DOCUMENT("");
@@ -1771,7 +1895,12 @@ struct DepthStencilStats
DECLARE_REFLECTION_STRUCT(DepthStencilStats);
DOCUMENT("Contains the statistics for rasterizer state binds in a frame.");
DOCUMENT(R"(
RasterizationStats()
RasterizationStats(other: RasterizationStats)
Contains the statistics for rasterizer state binds in a frame.
)");
struct RasterizationStats
{
DOCUMENT("");
@@ -1818,7 +1947,12 @@ struct RasterizationStats
DECLARE_REFLECTION_STRUCT(RasterizationStats);
DOCUMENT("Contains the statistics for output merger or UAV binds in a frame.");
DOCUMENT(R"(
OutputTargetStats()
OutputTargetStats(other: OutputTargetStats)
Contains the statistics for output merger or UAV binds in a frame.
)");
struct OutputTargetStats
{
DOCUMENT("");
@@ -1853,7 +1987,11 @@ struct OutputTargetStats
DECLARE_REFLECTION_STRUCT(OutputTargetStats);
DOCUMENT(R"(Contains all the available statistics about the captured frame.
DOCUMENT(R"(
FrameStatistics()
FrameStatistics(other: FrameStatistics)
Contains all the available statistics about the captured frame.
Currently this information is only available on D3D11 and is fairly API-centric.
)");
@@ -1963,7 +2101,11 @@ struct FrameStatistics
DECLARE_REFLECTION_STRUCT(FrameStatistics);
DOCUMENT(R"(Contains frame-level global information
DOCUMENT(R"(
FrameDescription()
FrameDescription(other: FrameDescription)
Contains frame-level global information
.. data:: NoFrameNumber
@@ -2058,8 +2200,13 @@ this counts the frame number when the capture was made.
DECLARE_REFLECTION_STRUCT(FrameDescription);
DOCUMENT(
"Describes a particular use of a resource at a specific :data:`eventId <APIEvent.eventId>`.");
DOCUMENT(R"(
EventUsage()
EventUsage(other: EventUsage)
EventUsage(eventId: int, usage: ResourceUsage)
Describes a particular use of a resource at a specific :data:`eventId <APIEvent.eventId>`.
)");
struct EventUsage
{
DOCUMENT("");
@@ -2091,7 +2238,13 @@ struct EventUsage
DECLARE_REFLECTION_STRUCT(EventUsage);
DOCUMENT("Specifies a subresource within a texture.");
DOCUMENT(R"(
Subresource()
Subresource(other: Subresource)
Subresource(mip: int = 0, slice: int = 0, sample: int = 0)
Specifies a subresource within a texture.
)");
struct Subresource
{
DOCUMENT("");
@@ -2144,7 +2297,11 @@ texture may not allow referring to a single depth slice - see where the Subresou
DECLARE_REFLECTION_STRUCT(Subresource);
DOCUMENT(R"(Describes the properties of an action.
DOCUMENT(R"(
ActionDescription()
ActionDescription(other: ActionDescription)
Describes the properties of an action.
An action is a call such as a draw, a compute dispatch, clears, copies, resolves, etc. Any GPU event
which may have deliberate visible side-effects to application-visible memory, typically resources
@@ -2373,7 +2530,12 @@ for very coarse bucketing of actions into similar passes by their outputs.
DECLARE_REFLECTION_STRUCT(ActionDescription);
DOCUMENT("Gives some API-specific information about the capture.");
DOCUMENT(R"(
APIProperties()
APIProperties(other: APIProperties)
Gives some API-specific information about the capture.
)");
struct APIProperties
{
DOCUMENT("");
@@ -2444,7 +2606,12 @@ with software rendering, or with some functionality disabled due to lack of supp
DECLARE_REFLECTION_STRUCT(APIProperties);
DOCUMENT("Gives information about the driver for this API.");
DOCUMENT(R"(
DriverInformation()
DriverInformation(other: DriverInformation)
Gives information about the driver for this API.
)");
struct DriverInformation
{
DOCUMENT("");
@@ -2467,7 +2634,13 @@ struct DriverInformation
DECLARE_REFLECTION_STRUCT(DriverInformation);
DOCUMENT("A 128-bit Uuid.");
DOCUMENT(R"(
Uuid()
Uuid(other: Uuid)
Uuid(word1: int, word2: int, word3: int, word4: int)
A 128-bit Uuid.
)");
struct Uuid
{
DOCUMENT("");
@@ -2496,7 +2669,12 @@ struct Uuid
DECLARE_REFLECTION_STRUCT(Uuid);
DOCUMENT("Describes a GPU counter's purpose and result value.");
DOCUMENT(R"(
CounterDescription()
CounterDescription(other: CounterDescription)
Describes a GPU counter's purpose and result value.
)");
struct CounterDescription
{
DOCUMENT("");
@@ -2564,7 +2742,11 @@ struct CounterDescription
DECLARE_REFLECTION_STRUCT(CounterDescription);
DOCUMENT(R"(A resulting value from a GPU counter. Only one member is valid, see
DOCUMENT(R"(
CounterValue()
CounterValue(other: CounterValue)
A resulting value from a GPU counter. Only one member is valid, see
:class:`CounterDescription`.
)");
union CounterValue
@@ -2593,7 +2775,14 @@ union CounterValue
DECLARE_REFLECTION_STRUCT(CounterValue);
DOCUMENT("The resulting value from a counter at an event.");
DOCUMENT(R"(
CounterResult()
CounterResult(other: CounterResult)
CounterResult(eventId: int, counter: GPUCounter, data: float)
CounterResult(eventId: int, counter: GPUCounter, data: int)
The resulting value from a counter at an event.
)");
struct CounterResult
{
#if defined(SWIG) || defined(SWIGPYTHON)
@@ -2680,7 +2869,12 @@ struct CounterResult
DECLARE_REFLECTION_STRUCT(CounterResult);
DOCUMENT("The contents of an RGBA pixel.");
DOCUMENT(R"(
PixelValue()
PixelValue(other: CounterValue)
The contents of an RGBA pixel.
)");
union PixelValue
{
DOCUMENT(R"(The RGBA value interpreted as ``float``.
@@ -2702,7 +2896,12 @@ union PixelValue
DECLARE_REFLECTION_STRUCT(PixelValue);
DOCUMENT("The value of pixel output at a particular event.");
DOCUMENT(R"(
ModificationValue()
ModificationValue(other: ModificationValue)
The value of pixel output at a particular event.
)");
struct ModificationValue
{
DOCUMENT("");
@@ -2766,7 +2965,12 @@ will be ``-2``. This will only happen when looking at multiple modifications fro
DECLARE_REFLECTION_STRUCT(ModificationValue);
DOCUMENT("An attempt to modify a pixel by a particular event.");
DOCUMENT(R"(
PixelModification()
PixelModification(other: PixelModification)
An attempt to modify a pixel by a particular event.
)");
struct PixelModification
{
DOCUMENT("");
@@ -2989,7 +3193,12 @@ This is primarily used internally and should not be needed to be called external
DECLARE_REFLECTION_STRUCT(PixelModification);
DOCUMENT("Contains the bytes and metadata describing a thumbnail.");
DOCUMENT(R"(
Thumbnail()
Thumbnail(other: Thumbnail)
Contains the bytes and metadata describing a thumbnail.
)");
struct Thumbnail
{
DOCUMENT("");
@@ -3024,9 +3233,13 @@ struct Thumbnail
DECLARE_REFLECTION_STRUCT(Thumbnail);
DOCUMENT(
"Contains the properties used to select which fragment to debug, used as an input to "
"DebugPixel.");
DOCUMENT(R"(
DebugPixelInputs()
DebugPixelInputs(other: DebugPixelInputs)
Contains the properties used to select which fragment to debug, used as an input
to :meth:`ReplayController.DebugPixel`.
)");
struct DebugPixelInputs
{
DOCUMENT("");
+92 -16
View File
@@ -29,7 +29,11 @@
namespace GLPipe
{
DOCUMENT(R"(Describes the configuration for a single vertex attribute.
DOCUMENT(R"(
GLVertexAttribute()
GLVertexAttribute(other: GLVertexAttribute)
Describes the configuration for a single vertex attribute.
.. note:: If old-style vertex attrib pointer setup was used for the vertex attributes then it will
be decomposed into 1:1 attributes and buffers.
@@ -115,7 +119,12 @@ If any value is set to ``-1`` then the attribute is unbound.
uint32_t byteOffset = 0;
};
DOCUMENT("Describes a single OpenGL vertex buffer binding.")
DOCUMENT(R"(
GLVertexBuffer()
GLVertexBuffer(other: GLVertexBuffer)
Describes a single OpenGL vertex buffer binding.
)")
struct VertexBuffer
{
DOCUMENT("");
@@ -168,7 +177,12 @@ If it's ``1`` then one element is read for each instance, and for ``N`` greater
uint32_t instanceDivisor = 0;
};
DOCUMENT("Describes the setup for fixed-function vertex input fetch.");
DOCUMENT(R"(
GLVertexInput()
GLVertexInput(other: GLVertexInput)
Describes the setup for fixed-function vertex input fetch.
)");
struct VertexInput
{
DOCUMENT("");
@@ -238,7 +252,12 @@ non-indexed draws.
bool provokingVertexLast = false;
};
DOCUMENT("Describes an OpenGL shader stage.");
DOCUMENT(R"(
GLShader()
GLShader(other: GLShader)
Describes an OpenGL shader stage.
)");
struct Shader
{
DOCUMENT("");
@@ -277,7 +296,12 @@ struct Shader
rdcarray<uint32_t> subroutines;
};
DOCUMENT("Describes the setup for fixed vertex processing operations.");
DOCUMENT(R"(
GLFixedVertexProcessing()
GLFixedVertexProcessing(other: GLFixedVertexProcessing)
Describes the setup for fixed vertex processing operations.
)");
struct FixedVertexProcessing
{
DOCUMENT("");
@@ -322,7 +346,12 @@ struct FixedVertexProcessing
bool clipNegativeOneToOne = false;
};
DOCUMENT("Describes the a texture completeness issue of a descriptor.");
DOCUMENT(R"(
GLTextureCompleteness()
GLTextureCompleteness(other: GLTextureCompleteness)
Describes the a texture completeness issue of a descriptor.
)");
struct TextureCompleteness
{
DOCUMENT("");
@@ -364,7 +393,12 @@ in conflict and their types.
rdcstr typeConflict;
};
DOCUMENT("Describes the current feedback state.");
DOCUMENT(R"(
GLFeedback()
GLFeedback(other: GLFeedback)
Describes the current feedback state.
)");
struct Feedback
{
DOCUMENT("");
@@ -404,7 +438,12 @@ struct Feedback
bool paused = false;
};
DOCUMENT("Describes the rasterizer state toggles.");
DOCUMENT(R"(
GLRasterizerState()
GLRasterizerState(other: GLRasterizerState)
Describes the rasterizer state toggles.
)");
struct RasterizerState
{
DOCUMENT("");
@@ -531,7 +570,12 @@ resolve the final output color.
bool pointOriginUpperLeft = false;
};
DOCUMENT("Describes the rasterization state of the OpenGL pipeline.");
DOCUMENT(R"(
GLRasterizer()
GLRasterizer(other: GLRasterizer)
Describes the rasterization state of the OpenGL pipeline.
)");
struct Rasterizer
{
DOCUMENT("");
@@ -558,7 +602,12 @@ struct Rasterizer
RasterizerState state;
};
DOCUMENT("Describes the depth state.");
DOCUMENT(R"(
GLDepthState()
GLDepthState(other: GLDepthState)
Describes the depth state.
)");
struct DepthState
{
DOCUMENT("");
@@ -598,7 +647,12 @@ struct DepthState
double farBound = 0.0;
};
DOCUMENT("Describes the stencil state.");
DOCUMENT(R"(
GLStencilState()
GLStencilState(other: GLStencilState)
Describes the stencil state.
)");
struct StencilState
{
DOCUMENT("");
@@ -625,7 +679,12 @@ struct StencilState
StencilFace backFace;
};
DOCUMENT("Describes the contents of a framebuffer object.");
DOCUMENT(R"(
GLFBO()
GLFBO(other: GLFBO)
Describes the contents of a framebuffer object.
)");
struct FBO
{
DOCUMENT("");
@@ -666,7 +725,12 @@ struct FBO
int32_t readBuffer = 0;
};
DOCUMENT("Describes the blend pipeline state.");
DOCUMENT(R"(
GLBlendState()
GLBlendState(other: GLBlendState)
Describes the blend pipeline state.
)");
struct BlendState
{
DOCUMENT("");
@@ -687,7 +751,12 @@ struct BlendState
rdcfixedarray<float, 4> blendFactor = {1.0f, 1.0f, 1.0f, 1.0f};
};
DOCUMENT("Describes the current state of the framebuffer stage of the pipeline.");
DOCUMENT(R"(
GLFrameBuffer()
GLFrameBuffer(other: GLFrameBuffer)
Describes the current state of the framebuffer stage of the pipeline.
)");
struct FrameBuffer
{
DOCUMENT("");
@@ -724,7 +793,12 @@ struct FrameBuffer
BlendState blendState;
};
DOCUMENT("Describes the current state of GL hints and smoothing.");
DOCUMENT(R"(
GLHints()
GLHints(other: GLHints)
Describes the current state of GL hints and smoothing.
)");
struct Hints
{
DOCUMENT("");
@@ -764,7 +838,9 @@ struct Hints
bool polySmoothingEnabled = false;
};
DOCUMENT("The full current OpenGL pipeline state.");
DOCUMENT(R"(
The full current OpenGL pipeline state.
)");
struct State
{
#if !defined(RENDERDOC_EXPORTS)
+4 -1
View File
@@ -29,7 +29,10 @@
#include "gl_pipestate.h"
#include "vk_pipestate.h"
DOCUMENT(R"(An API-agnostic view of the common aspects of the pipeline state. This allows simple
DOCUMENT(R"(
PipeState()
An API-agnostic view of the common aspects of the pipeline state. This allows simple
access to e.g. find out the bound resources or vertex buffers, or certain pipeline state which is
available on all APIs.
+5 -1
View File
@@ -41,7 +41,11 @@ ResourceId GetNewUniqueID();
// between two textures allocated in the same memory (after the first is freed)
//
// it's a struct around a uint64_t to aid in template selection
DOCUMENT(R"(This is an opaque identifier that uniquely locates a resource.
DOCUMENT(R"(
ResourceId()
ResourceId(other: ResourceId)
This is an opaque identifier that uniquely locates a resource.
.. note::
These IDs do not overlap ever - textures, buffers, shaders and samplers will all have unique IDs
+157 -25
View File
@@ -33,7 +33,12 @@
#include "resourceid.h"
#include "stringise.h"
DOCUMENT("A 64-bit pointer value with optional type information.")
DOCUMENT(R"(
PointerVal()
PointerVal(other: PointerVal)
A 64-bit pointer value with optional type information.
)")
struct PointerVal
{
DOCUMENT("");
@@ -64,7 +69,14 @@ DECLARE_STRINGISE_TYPE(PointerVal);
struct DescriptorAccess;
DOCUMENT(R"(References a particular individual binding element in a shader interface.
DOCUMENT(R"(
ShaderBindIndex()
ShaderBindIndex(other: ShaderBindIndex)
ShaderBindIndex(category: DescriptorCategory, index: int)
ShaderBindIndex(category: DescriptorCategory, index: int, arrayElement: int)
ShaderBindIndex(access: DescriptorAccess)
References a particular individual binding element in a shader interface.
This is the shader interface side of a :class:`DescriptorAccess` and so can be compared to one to
check if an access refers to a given index or not.
@@ -137,8 +149,13 @@ identifies the particular array index being referred to.
DECLARE_REFLECTION_STRUCT(ShaderBindIndex);
DOCUMENT(R"(References a particular resource accessed via the shader using direct heap access (as opposed to a direct binding).
DOCUMENT(R"(
ShaderDirectAccess()
ShaderDirectAccess(other: ShaderDirectAccess)
ShaderDirectAccess(category: DescriptorCategory, index: int)
ShaderDirectAccess(type: DescriptorType, descriptorStore: ResourceId, byteOffset: int, byteSize: int)
References a particular resource accessed via the shader using direct heap access (as opposed to a direct binding).
)");
struct ShaderDirectAccess
{
@@ -232,7 +249,12 @@ private:
};
DECLARE_STRINGISE_TYPE(rdhalf);
DOCUMENT("A C union that holds 16 values, with each different basic variable type.");
DOCUMENT(R"(
ShaderValue()
ShaderValue(other: ShaderValue)
A C union that holds 16 values, with each different basic variable type.
)");
union ShaderValue
{
DOCUMENT(R"(16-tuple of ``float`` values.
@@ -302,7 +324,13 @@ union ShaderValue
rdcfixedarray<int8_t, 16> s8v;
};
DOCUMENT(R"(Holds a single named shader variable. It contains either a primitive type (up to a 4x4
DOCUMENT(R"(
ShaderVariable()
ShaderVariable(other: ShaderVariable)
ShaderVariable(name: str, x: float, y: float, z: float, w: float)
ShaderVariable(name: str, x: int, y: int, z: int, w: int)
Holds a single named shader variable. It contains either a primitive type (up to a 4x4
matrix of a :class:`basic type <VarType>`) or a list of members, which can either be struct or array
members of this parent variable.
@@ -564,8 +592,13 @@ The :class:`ShaderDirectAccess` uniquely refers to a resource descriptor.
DECLARE_REFLECTION_STRUCT(ShaderVariable);
DOCUMENT(
"A particular component of a debugging variable that a high-level variable component maps to");
DOCUMENT(R"(
DebugVariableReference()
DebugVariableReference(other: DebugVariableReference)
DebugVariableReference(type: DebugVariableType, name: str, component: int)
A particular component of a debugging variable that a high-level variable component maps to
)");
struct DebugVariableReference
{
DOCUMENT("");
@@ -616,7 +649,11 @@ struct DebugVariableReference
DECLARE_REFLECTION_STRUCT(DebugVariableReference);
DOCUMENT(R"(Maps the contents of a high-level source variable to one or more shader variables in a
DOCUMENT(R"(
SourceVariableMapping()
SourceVariableMapping(other: SourceVariableMapping)
Maps the contents of a high-level source variable to one or more shader variables in a
:class:`ShaderDebugState`, with type information.
A single high-level variable may be represented by multiple mappings but only along regular
@@ -723,7 +760,12 @@ space.
};
DECLARE_REFLECTION_STRUCT(SourceVariableMapping);
DOCUMENT("Details the current region of code that an instruction maps to");
DOCUMENT(R"(
LineColumnInfo()
LineColumnInfo(other: LineColumnInfo)
Details the current region of code that an instruction maps to.
)");
struct LineColumnInfo
{
DOCUMENT("");
@@ -810,7 +852,11 @@ treated as covering the code.
};
DECLARE_REFLECTION_STRUCT(LineColumnInfo);
DOCUMENT(R"(Gives per-instruction source code mapping information, including what line(s) correspond
DOCUMENT(R"(
InstructionSourceInfo()
InstructionSourceInfo(other: InstructionSourceInfo)
Gives per-instruction source code mapping information, including what line(s) correspond
to this instruction and which source variables exist
)");
struct InstructionSourceInfo
@@ -847,7 +893,12 @@ instruction.
};
DECLARE_REFLECTION_STRUCT(InstructionSourceInfo);
DOCUMENT("This stores the before and after state of a :class:`ShaderVariable`.");
DOCUMENT(R"(
ShaderVariableChange()
ShaderVariableChange(other: ShaderVariableChange)
This stores the before and after state of a :class:`ShaderVariable`.
)");
struct ShaderVariableChange
{
DOCUMENT("");
@@ -888,7 +939,11 @@ means the variable stopped existing on this step.
};
DECLARE_REFLECTION_STRUCT(ShaderVariableChange);
DOCUMENT(R"(This stores the current state of shader debugging at one particular step in the shader,
DOCUMENT(R"(
ShaderDebugState()
ShaderDebugState(other: ShaderDebugState)
This stores the current state of shader debugging at one particular step in the shader,
with all mutable variable contents.
)");
struct ShaderDebugState
@@ -974,17 +1029,28 @@ public:
DECLARE_REFLECTION_STRUCT(ShaderDebugger);
DOCUMENT(R"(This stores the whole state of a shader's execution from start to finish, with each
DOCUMENT(R"(
This stores the whole state of a shader's execution from start to finish, with each
individual debugging step along the way, as well as the immutable global constant values that do not
change with shader execution.
)");
struct ShaderDebugTrace
{
// do not allow swig to create/copy traces
#if defined(SWIG)
protected:
DOCUMENT("");
ShaderDebugTrace() = default;
ShaderDebugTrace(const ShaderDebugTrace &) = default;
ShaderDebugTrace &operator=(const ShaderDebugTrace &) = default;
public:
#else
ShaderDebugTrace() = default;
ShaderDebugTrace(const ShaderDebugTrace &) = default;
ShaderDebugTrace &operator=(const ShaderDebugTrace &) = default;
#endif
DOCUMENT(R"(The shader stage being debugged in this trace
:type: ShaderStage
@@ -1077,7 +1143,11 @@ per-instruction information such as source line mapping, and source variables.
DECLARE_REFLECTION_STRUCT(ShaderDebugTrace);
DOCUMENT(R"(The information describing an input or output signature element describing the interface
DOCUMENT(R"(
SigParameter()
SigParameter(other: SigParameter)
The information describing an input or output signature element describing the interface
between shader stages.
.. data:: NoIndex
@@ -1213,7 +1283,12 @@ DECLARE_REFLECTION_STRUCT(SigParameter);
struct ShaderConstant;
DOCUMENT("Describes the type and members of a :class:`ShaderConstant`.");
DOCUMENT(R"(
ShaderConstantType()
ShaderConstantType(other: ShaderConstantType)
Describes the type and members of a :class:`ShaderConstant`.
)");
struct ShaderConstantType
{
DOCUMENT("");
@@ -1329,7 +1404,11 @@ manually, but since it is common this helper is provided.
DECLARE_REFLECTION_STRUCT(ShaderConstantType);
DOCUMENT(R"(Contains the detail of a constant within a struct, such as a :class:`ConstantBlock`,
DOCUMENT(R"(
ShaderConstant()
ShaderConstant(other: ShaderConstant)
Contains the detail of a constant within a struct, such as a :class:`ConstantBlock`,
with its type and relative location in memory.
)");
struct ShaderConstant
@@ -1413,7 +1492,11 @@ packing.
DECLARE_REFLECTION_STRUCT(ShaderConstant);
DOCUMENT(R"(Contains the information for a block of constant values. The values are not present,
DOCUMENT(R"(
ConstantBlock()
ConstantBlock(other: ConstantBlock)
Contains the information for a block of constant values. The values are not present,
only the metadata about how the variables are stored in memory itself and their type/name
information.
)");
@@ -1530,7 +1613,11 @@ specialisation constants.
DECLARE_REFLECTION_STRUCT(ConstantBlock);
DOCUMENT(R"(Contains the information for a separate sampler in a shader. If the API doesn't have
DOCUMENT(R"(
ShaderSampler()
ShaderSampler(other: ShaderSampler)
Contains the information for a separate sampler in a shader. If the API doesn't have
the concept of separate samplers, this struct will be unused and only :class:`ShaderResource` is
relevant.
@@ -1610,7 +1697,11 @@ This value may be set to a very large number if the array is unbounded in the sh
DECLARE_REFLECTION_STRUCT(ShaderSampler);
DOCUMENT(R"(Contains the information for a shader resource that is made accessible to shaders
DOCUMENT(R"(
ShaderResource()
ShaderResource(other: ShaderResource)
Contains the information for a shader resource that is made accessible to shaders
directly by means of the API resource binding system.
.. note:: that constant blocks and samplers will not have a shader resource entry, see
@@ -1741,7 +1832,13 @@ able to be read from and written to arbitrarily.
DECLARE_REFLECTION_STRUCT(ShaderResource);
DOCUMENT("Describes an entry point in a shader.");
DOCUMENT(R"(
ShaderEntryPoint()
ShaderEntryPoint(other: ShaderEntryPoint)
ShaderEntryPoint(name: str, stage: ShaderStage)
Describes an entry point in a shader.
)");
struct ShaderEntryPoint
{
ShaderEntryPoint() = default;
@@ -1773,7 +1870,12 @@ struct ShaderEntryPoint
DECLARE_REFLECTION_STRUCT(ShaderEntryPoint);
DOCUMENT("Contains a single flag used at compile-time on a shader.");
DOCUMENT(R"(
ShaderCompileFlag()
ShaderCompileFlag(other: ShaderCompileFlag)
Contains a single flag used at compile-time on a shader.
)");
struct ShaderCompileFlag
{
DOCUMENT("");
@@ -1805,7 +1907,12 @@ struct ShaderCompileFlag
DECLARE_REFLECTION_STRUCT(ShaderCompileFlag);
DOCUMENT("Contains the information about the compilation environment of a shader");
DOCUMENT(R"(
ShaderCompileFlags()
ShaderCompileFlags(other: ShaderCompileFlags)
Contains the information about the compilation environment of a shader
)");
struct ShaderCompileFlags
{
DOCUMENT("");
@@ -1822,7 +1929,12 @@ struct ShaderCompileFlags
DECLARE_REFLECTION_STRUCT(ShaderCompileFlags);
DOCUMENT("Contains the source prefix to add to a given type of shader source");
DOCUMENT(R"(
ShaderSourcePrefix()
ShaderSourcePrefix(other: ShaderSourcePrefix)
Contains the source prefix to add to a given type of shader source
)");
struct ShaderSourcePrefix
{
DOCUMENT("");
@@ -1857,7 +1969,12 @@ struct ShaderSourcePrefix
DECLARE_REFLECTION_STRUCT(ShaderSourcePrefix);
DOCUMENT("Contains a source file available in a debug-compiled shader.");
DOCUMENT(R"(
ShaderSourceFile()
ShaderSourceFile(other: ShaderSourceFile)
Contains a source file available in a debug-compiled shader.
)");
struct ShaderSourceFile
{
DOCUMENT("");
@@ -1892,7 +2009,11 @@ struct ShaderSourceFile
DECLARE_REFLECTION_STRUCT(ShaderSourceFile);
DOCUMENT(R"(Contains the information about a shader contained within API-specific debugging
DOCUMENT(R"(
ShaderDebugInfo()
ShaderDebugInfo(other: ShaderDebugInfo)
Contains the information about a shader contained within API-specific debugging
information attached to the shader.
Primarily this means the embedded original source files.
@@ -1992,10 +2113,21 @@ The information in this structure is API agnostic.
)");
struct ShaderReflection
{
// do not allow swig to create/copy shader reflections
#if defined(SWIG)
protected:
DOCUMENT("");
ShaderDebugTrace() = default;
ShaderDebugTrace(const ShaderDebugTrace &) = default;
ShaderDebugTrace &operator=(const ShaderDebugTrace &) = default;
public:
#else
DOCUMENT("");
ShaderReflection() = default;
ShaderReflection(const ShaderReflection &) = default;
ShaderReflection &operator=(const ShaderReflection &) = default;
#endif
DOCUMENT(R"(The :class:`ResourceId` of this shader.
+21 -4
View File
@@ -292,7 +292,12 @@ protected:
DECLARE_REFLECTION_STRUCT(SDType);
DOCUMENT("The metadata that goes along with a :class:`SDChunk` to detail how it was recorded.");
DOCUMENT(R"(
SDChunkMetaData()
SDChunkMetaData(other: SDChunkMetaData)
The metadata that goes along with a :class:`SDChunk` to detail how it was recorded.
)");
struct SDChunkMetaData
{
DOCUMENT("");
@@ -500,7 +505,11 @@ struct LazyArrayData
};
#endif
DOCUMENT(R"(Defines a single structured object. Structured objects are defined recursively and one
DOCUMENT(R"(
SDObject()
SDObject(name: str, typeName: str)
Defines a single structured object. Structured objects are defined recursively and one
object can either be a basic type (integer, float, etc), an array, or a struct. Arrays and structs
are defined similarly.
@@ -1569,7 +1578,11 @@ SDOBJECT_MAKER(ResourceId, makeSDResourceId);
#endif
DOCUMENT("Defines a single structured chunk, which is a :class:`SDObject`.");
DOCUMENT(R"(
SDChunk()
Defines a single structured chunk, which is a :class:`SDObject`.
)");
struct SDChunk : public SDObject
{
/////////////////////////////////////////////////////////////////
@@ -1709,7 +1722,11 @@ private:
DECLARE_REFLECTION_STRUCT(StructuredBufferList);
DOCUMENT("Contains the structured information in a file. Owns the buffers and chunks.");
DOCUMENT(R"(
SDFile()
Contains the structured information in a file. Owns the buffers and chunks.
)");
struct SDFile
{
private:
+170 -29
View File
@@ -28,7 +28,12 @@
namespace VKPipe
{
DOCUMENT("A dynamic offset applied to a single descriptor access.");
DOCUMENT(R"(
VKDynamicOffset()
VKDynamicOffset(other: VKDynamicOffset)
A dynamic offset applied to a single descriptor access.
)");
struct DynamicOffset
{
DOCUMENT("");
@@ -61,7 +66,12 @@ struct DynamicOffset
uint64_t dynamicBufferByteOffset = 0;
};
DOCUMENT("The contents of a descriptor set.");
DOCUMENT(R"(
VKDescriptorSet()
VKDescriptorSet(other: VKDescriptorSet)
The contents of a descriptor set.
)");
struct DescriptorSet
{
DOCUMENT("");
@@ -136,7 +146,12 @@ of their descriptors.
bool descriptorBufferEmbeddedSamplers = false;
};
DOCUMENT("A single descriptor buffer binding.");
DOCUMENT(R"(
VKDescriptorBuffer()
VKDescriptorBuffer(other: VKDescriptorBuffer)
A single descriptor buffer binding.
)");
struct DescriptorBuffer
{
DOCUMENT("");
@@ -204,7 +219,12 @@ struct DescriptorBuffer
bool samplerBuffer = false;
};
DOCUMENT("Describes the object and descriptor set bindings of a Vulkan pipeline object.");
DOCUMENT(R"(
VKPipeline()
VKPipeline(other: VKPipeline)
Describes the object and descriptor set bindings of a Vulkan pipeline object.
)");
struct Pipeline
{
DOCUMENT("");
@@ -255,7 +275,12 @@ When not using pipeline libraries, this will be identical to :data:`pipelinePreR
rdcarray<DescriptorBuffer> descriptorBuffers;
};
DOCUMENT("Describes the Vulkan index buffer binding.")
DOCUMENT(R"(
VKIndexBuffer()
VKIndexBuffer(other: VKIndexBuffer)
Describes the Vulkan index buffer binding.
)")
struct IndexBuffer
{
DOCUMENT("");
@@ -289,7 +314,12 @@ it can be 0 if no index buffer is bound.
uint32_t byteStride = 0;
};
DOCUMENT("Describes the vulkan input assembly configuration.");
DOCUMENT(R"(
VKInputAssembly()
VKInputAssembly(other: VKInputAssembly)
Describes the vulkan input assembly configuration.
)");
struct InputAssembly
{
DOCUMENT("");
@@ -316,7 +346,12 @@ struct InputAssembly
Topology topology = Topology::Unknown;
};
DOCUMENT("Describes the configuration of a single vertex attribute.");
DOCUMENT(R"(
VKVertexAttribute()
VKVertexAttribute(other: VKVertexAttribute)
Describes the configuration of a single vertex attribute.
)");
struct VertexAttribute
{
DOCUMENT("");
@@ -363,7 +398,12 @@ struct VertexAttribute
uint32_t byteOffset = 0;
};
DOCUMENT("Describes a vertex binding.");
DOCUMENT(R"(
VKVertexBinding()
VKVertexBinding(other: VKVertexBinding)
Describes a vertex binding.
)");
struct VertexBinding
{
DOCUMENT("");
@@ -408,7 +448,12 @@ If it's ``1`` then one element is read for each instance, and for ``N`` greater
uint32_t instanceDivisor = 1;
};
DOCUMENT("Describes a single Vulkan vertex buffer binding.")
DOCUMENT(R"(
VKVertexBuffer()
VKVertexBuffer(other: VKVertexBuffer)
Describes a single Vulkan vertex buffer binding.
)")
struct VertexBuffer
{
DOCUMENT("");
@@ -455,7 +500,12 @@ struct VertexBuffer
uint32_t byteSize = 0;
};
DOCUMENT("Describes the fixed-function vertex input fetch setup.");
DOCUMENT(R"(
VKVertexInput()
VKVertexInput(other: VKVertexInput)
Describes the fixed-function vertex input fetch setup.
)");
struct VertexInput
{
DOCUMENT("");
@@ -480,7 +530,12 @@ struct VertexInput
rdcarray<VertexBuffer> vertexBuffers;
};
DOCUMENT("Describes a Vulkan shader stage.");
DOCUMENT(R"(
VKShader()
VKShader(other: VKShader)
Describes a Vulkan shader stage.
)");
struct Shader
{
DOCUMENT("");
@@ -552,7 +607,12 @@ and size into specializationData can be obtained from the reflection info.
bool shaderObject = false;
};
DOCUMENT("Describes the state of the fixed-function tessellator.");
DOCUMENT(R"(
VKTessellation()
VKTessellation(other: VKTessellation)
Describes the state of the fixed-function tessellator.
)");
struct Tessellation
{
DOCUMENT("");
@@ -573,7 +633,12 @@ struct Tessellation
bool domainOriginUpperLeft = true;
};
DOCUMENT("Describes a single transform feedback binding.");
DOCUMENT(R"(
VKXFBBuffer()
VKXFBBuffer(other: VKXFBBuffer)
Describes a single transform feedback binding.
)");
struct XFBBuffer
{
DOCUMENT("");
@@ -642,7 +707,12 @@ struct XFBBuffer
uint64_t counterBufferOffset = 0;
};
DOCUMENT("Describes the state of the fixed-function transform feedback.");
DOCUMENT(R"(
VKTransformFeedback()
VKTransformFeedback(other: VKTransformFeedback)
Describes the state of the fixed-function transform feedback.
)");
struct TransformFeedback
{
DOCUMENT("");
@@ -663,7 +733,12 @@ struct TransformFeedback
uint32_t rasterizedStream = 0;
};
DOCUMENT("Describes a render area in the current framebuffer.");
DOCUMENT(R"(
VKRenderArea()
VKRenderArea(other: VKRenderArea)
Describes a render area in the current framebuffer.
)");
struct RenderArea
{
DOCUMENT("");
@@ -709,7 +784,12 @@ struct RenderArea
int32_t height = 0;
};
DOCUMENT("Describes a combined viewport and scissor region.");
DOCUMENT(R"(
VKViewportScissor()
VKViewportScissor(other: VKViewportScissor)
Describes a combined viewport and scissor region.
)");
struct ViewportScissor
{
DOCUMENT("");
@@ -738,7 +818,12 @@ struct ViewportScissor
Scissor scissor;
};
DOCUMENT("Describes the view state in the pipeline.");
DOCUMENT(R"(
VKViewState()
VKViewState(other: VKViewState)
Describes the view state in the pipeline.
)");
struct ViewState
{
DOCUMENT("");
@@ -779,7 +864,12 @@ and a fragment in none of them is discarded.
bool depthNegativeOneToOne = false;
};
DOCUMENT("Describes the rasterizer state in the pipeline.");
DOCUMENT(R"(
VKRasterizer()
VKRasterizer(other: VKRasterizer)
Describes the rasterizer state in the pipeline.
)");
struct Rasterizer
{
DOCUMENT("");
@@ -937,7 +1027,12 @@ shading rate sampled from the fragment shading rate attachment.
ShadingRateCombiner::Keep, ShadingRateCombiner::Keep};
};
DOCUMENT("Describes state of custom sample locations in the pipeline.");
DOCUMENT(R"(
VKSampleLocations()
VKSampleLocations(other: VKSampleLocations)
Describes state of custom sample locations in the pipeline.
)");
struct SampleLocations
{
DOCUMENT("");
@@ -964,7 +1059,12 @@ If the list is empty then the standard sample pattern is in use.
rdcarray<FloatVector> customLocations;
};
DOCUMENT("Describes the multisampling state in the pipeline.");
DOCUMENT(R"(
VKMultiSample()
VKMultiSample(other: VKMultiSample)
Describes the multisampling state in the pipeline.
)");
struct MultiSample
{
DOCUMENT("");
@@ -999,7 +1099,12 @@ struct MultiSample
SampleLocations sampleLocations;
};
DOCUMENT("Describes the pipeline blending state.");
DOCUMENT(R"(
VKColorBlendState()
VKColorBlendState(other: VKColorBlendState)
Describes the pipeline blending state.
)");
struct ColorBlendState
{
DOCUMENT("");
@@ -1031,7 +1136,12 @@ struct ColorBlendState
rdcfixedarray<float, 4> blendFactor = {1.0f, 1.0f, 1.0f, 1.0f};
};
DOCUMENT("Describes the pipeline depth-stencil state.");
DOCUMENT(R"(
VKDepthStencil()
VKDepthStencil(other: VKDepthStencil)
Describes the pipeline depth-stencil state.
)");
struct DepthStencil
{
DOCUMENT("");
@@ -1090,7 +1200,11 @@ struct DepthStencil
float maxDepthBounds = 0.0f;
};
DOCUMENT(R"(Describes the setup of a renderpass and subpasses.
DOCUMENT(R"(
VKRenderPass()
VKRenderPass(other: VKRenderPass)
Describes the setup of a renderpass and subpasses.
.. data:: AttachmentUnused
@@ -1272,7 +1386,12 @@ If the subpass is not internally multisampled, tileOnlyMSAASampleCount is set to
static const uint32_t AttachmentUnused = ~0U;
};
DOCUMENT("Describes a framebuffer object and its attachments.");
DOCUMENT(R"(
VKFramebuffer()
VKFramebuffer(other: VKFramebuffer)
Describes a framebuffer object and its attachments.
)");
struct Framebuffer
{
DOCUMENT("");
@@ -1309,7 +1428,12 @@ struct Framebuffer
uint32_t layers = 0;
};
DOCUMENT("Describes the current pass instance at the current time.");
DOCUMENT(R"(
VKCurrentPass()
VKCurrentPass(other: VKCurrentPass)
Describes the current pass instance at the current time.
)");
struct CurrentPass
{
DOCUMENT("");
@@ -1352,7 +1476,12 @@ struct CurrentPass
bool stencilFeedbackAllowed = false;
};
DOCUMENT("Contains the layout of a range of subresources in an image.");
DOCUMENT(R"(
VKImageLayout()
VKImageLayout(other: VKImageLayout)
Contains the layout of a range of subresources in an image.
)");
struct ImageLayout
{
DOCUMENT("");
@@ -1406,7 +1535,12 @@ struct ImageLayout
rdcstr name;
};
DOCUMENT("Contains the current layout of all subresources in the image.");
DOCUMENT(R"(
VKImageData()
VKImageData(other: VKImageData)
Contains the current layout of all subresources in the image.
)");
struct ImageData
{
DOCUMENT("");
@@ -1434,7 +1568,12 @@ struct ImageData
rdcarray<ImageLayout> layouts;
};
DOCUMENT("Contains the current conditional rendering state.");
DOCUMENT(R"(
VKConditionalRendering()
VKConditionalRendering(other: VKConditionalRendering)
Contains the current conditional rendering state.
)");
struct ConditionalRendering
{
DOCUMENT("");
@@ -1467,7 +1606,9 @@ struct ConditionalRendering
bool isPassing = false;
};
DOCUMENT("The full current Vulkan pipeline state.");
DOCUMENT(R"(
The full current Vulkan pipeline state.
)");
struct State
{
#if !defined(RENDERDOC_EXPORTS)