mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-08 06:45:49 +00:00
Support advanced cbuffer layouts
* This includes 8/16/64-bit integers, 16-bit/64-bit floats, and scalar block packing
This commit is contained in:
@@ -716,9 +716,16 @@ std::string DoStringise(const VarType &el)
|
||||
BEGIN_ENUM_STRINGISE(VarType)
|
||||
{
|
||||
STRINGISE_ENUM_CLASS_NAMED(Float, "float");
|
||||
STRINGISE_ENUM_CLASS_NAMED(Int, "int");
|
||||
STRINGISE_ENUM_CLASS_NAMED(UInt, "uint");
|
||||
STRINGISE_ENUM_CLASS_NAMED(Double, "double");
|
||||
STRINGISE_ENUM_CLASS_NAMED(Half, "half");
|
||||
STRINGISE_ENUM_CLASS_NAMED(SInt, "int");
|
||||
STRINGISE_ENUM_CLASS_NAMED(UInt, "uint");
|
||||
STRINGISE_ENUM_CLASS_NAMED(SShort, "short");
|
||||
STRINGISE_ENUM_CLASS_NAMED(UShort, "ushort");
|
||||
STRINGISE_ENUM_CLASS_NAMED(SLong, "long");
|
||||
STRINGISE_ENUM_CLASS_NAMED(ULong, "ulong");
|
||||
STRINGISE_ENUM_CLASS_NAMED(SByte, "byte");
|
||||
STRINGISE_ENUM_CLASS_NAMED(UByte, "ubyte");
|
||||
STRINGISE_ENUM_CLASS_NAMED(Unknown, "unknown");
|
||||
}
|
||||
END_ENUM_STRINGISE();
|
||||
|
||||
@@ -142,18 +142,46 @@ DOCUMENT(R"(Represents the base type of a shader variable in debugging or consta
|
||||
|
||||
A single-precision (32-bit) floating point value.
|
||||
|
||||
.. data:: Int
|
||||
|
||||
A signed integer value.
|
||||
|
||||
.. data:: UInt
|
||||
|
||||
An unsigned integer value.
|
||||
|
||||
.. data:: Double
|
||||
|
||||
A double-precision (64-bit) floating point value.
|
||||
|
||||
.. data:: Half
|
||||
|
||||
A half-precision (16-bit) floating point value.
|
||||
|
||||
.. data:: SInt
|
||||
|
||||
A signed 32-bit integer value.
|
||||
|
||||
.. data:: UInt
|
||||
|
||||
An unsigned 32-bit integer value.
|
||||
|
||||
.. data:: SShort
|
||||
|
||||
A signed 16-bit integer value.
|
||||
|
||||
.. data:: UShort
|
||||
|
||||
An unsigned 16-bit integer value.
|
||||
|
||||
.. data:: SLong
|
||||
|
||||
A signed 64-bit integer value.
|
||||
|
||||
.. data:: ULong
|
||||
|
||||
An unsigned 64-bit integer value.
|
||||
|
||||
.. data:: SByte
|
||||
|
||||
A signed 8-bit integer value.
|
||||
|
||||
.. data:: UByte
|
||||
|
||||
An unsigned 8-bit integer value.
|
||||
|
||||
.. data:: Unknown
|
||||
|
||||
An unknown type.
|
||||
@@ -161,9 +189,16 @@ DOCUMENT(R"(Represents the base type of a shader variable in debugging or consta
|
||||
enum class VarType : uint32_t
|
||||
{
|
||||
Float = 0,
|
||||
Int,
|
||||
UInt,
|
||||
Double,
|
||||
Half,
|
||||
SInt,
|
||||
UInt,
|
||||
SShort,
|
||||
UShort,
|
||||
SLong,
|
||||
ULong,
|
||||
SByte,
|
||||
UByte,
|
||||
Unknown = ~0U,
|
||||
};
|
||||
|
||||
|
||||
@@ -120,8 +120,11 @@ union ShaderValue
|
||||
DOCUMENT("``double`` values.");
|
||||
double dv[16];
|
||||
|
||||
DOCUMENT("64-bit integer values.");
|
||||
DOCUMENT("64-bit unsigned integer values.");
|
||||
uint64_t u64v[16];
|
||||
|
||||
DOCUMENT("64-bit signed integer values.");
|
||||
int64_t s64v[16];
|
||||
};
|
||||
|
||||
DOCUMENT(R"(Holds a single named shader variable. It contains either a primitive type (up to a 4x4
|
||||
@@ -166,7 +169,7 @@ struct ShaderVariable
|
||||
displayAsHex = isStruct = rowMajor = false;
|
||||
for(int i = 0; i < 16; i++)
|
||||
value.uv[i] = 0;
|
||||
type = VarType::Int;
|
||||
type = VarType::SInt;
|
||||
value.i.x = x;
|
||||
value.i.y = y;
|
||||
value.i.z = z;
|
||||
|
||||
Reference in New Issue
Block a user