diff --git a/renderdoc/driver/metal/metal_types.h b/renderdoc/driver/metal/metal_types.h index 3fe7f2a12..9c69478eb 100644 --- a/renderdoc/driver/metal/metal_types.h +++ b/renderdoc/driver/metal/metal_types.h @@ -37,9 +37,15 @@ // These serialise overloads will fetch the ID during capture, serialise the ID // directly as-if it were the original type, then on replay load up the resource if available. -#define DECLARE_WRAPPED_TYPE_SERIALISE(CPPTYPE) \ - class WrappedMTL##CPPTYPE; \ - DECLARE_REFLECTION_STRUCT(WrappedMTL##CPPTYPE *) +#define DECLARE_WRAPPED_TYPE_SERIALISE(CPPTYPE) \ + class WrappedMTL##CPPTYPE; \ + template <> \ + inline rdcliteral TypeName() \ + { \ + return STRING_LITERAL(STRINGIZE(MTL##CPPTYPE)); \ + } \ + template \ + void DoSerialise(SerialiserType &ser, WrappedMTL##CPPTYPE *&el); METALCPP_WRAPPED_PROTOCOLS(DECLARE_WRAPPED_TYPE_SERIALISE); #undef DECLARE_WRAPPED_TYPE_SERIALISE