Serialization for Metal types

structs

MTL::Origin
MTL::Region
MTL::Size

enums

MTL::BlitOption
MTL::DeviceLocation
MTL::ArgumentBuffersTier
MTL::DepthClipMode
MTL::TriangleFillMode
MTL::CullMode
This commit is contained in:
Jake Turner
2022-06-20 18:21:46 +01:00
committed by Baldur Karlsson
parent 81436706c8
commit c7b6d6293e
3 changed files with 107 additions and 0 deletions
@@ -138,6 +138,29 @@ void DoSerialise(SerialiserType &ser, MTL::SamplePosition &el)
SERIALISE_MEMBER(y);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, MTL::Origin &el)
{
SERIALISE_MEMBER(x);
SERIALISE_MEMBER(y);
SERIALISE_MEMBER(z);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, MTL::Region &el)
{
SERIALISE_MEMBER(origin);
SERIALISE_MEMBER(size);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, MTL::Size &el)
{
SERIALISE_MEMBER(width);
SERIALISE_MEMBER(height);
SERIALISE_MEMBER(depth);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, RDMTL::TextureDescriptor &el)
{
@@ -334,6 +357,9 @@ INSTANTIATE_SERIALISE_TYPE(MTL::TextureSwizzleChannels);
INSTANTIATE_SERIALISE_TYPE(MTL::ClearColor);
INSTANTIATE_SERIALISE_TYPE(MTL::SamplePosition);
INSTANTIATE_SERIALISE_TYPE(MTL::Viewport);
INSTANTIATE_SERIALISE_TYPE(MTL::Origin);
INSTANTIATE_SERIALISE_TYPE(MTL::Region);
INSTANTIATE_SERIALISE_TYPE(MTL::Size);
INSTANTIATE_SERIALISE_TYPE(RDMTL::TextureDescriptor);
INSTANTIATE_SERIALISE_TYPE(RDMTL::RenderPipelineColorAttachmentDescriptor);
INSTANTIATE_SERIALISE_TYPE(RDMTL::PipelineBufferDescriptor);
@@ -994,3 +994,75 @@ rdcstr DoStringise(const MTL::MultisampleStencilResolveFilter &el)
}
END_ENUM_STRINGISE()
}
template <>
rdcstr DoStringise(const MTL::BlitOption &el)
{
BEGIN_ENUM_STRINGISE(MTL::BlitOption)
{
MTL_STRINGISE_ENUM(BlitOptionNone);
MTL_STRINGISE_ENUM(BlitOptionDepthFromDepthStencil);
MTL_STRINGISE_ENUM(BlitOptionRowLinearPVRTC);
MTL_STRINGISE_ENUM(BlitOptionStencilFromDepthStencil);
}
END_ENUM_STRINGISE()
}
template <>
rdcstr DoStringise(const MTL::DeviceLocation &el)
{
BEGIN_BITFIELD_STRINGISE(MTL::DeviceLocation)
{
MTL_STRINGISE_BITFIELD_BIT(DeviceLocationBuiltIn);
MTL_STRINGISE_BITFIELD_BIT(DeviceLocationSlot);
MTL_STRINGISE_BITFIELD_BIT(DeviceLocationExternal);
MTL_STRINGISE_BITFIELD_BIT(DeviceLocationUnspecified);
}
END_BITFIELD_STRINGISE()
}
template <>
rdcstr DoStringise(const MTL::ArgumentBuffersTier &el)
{
BEGIN_BITFIELD_STRINGISE(MTL::ArgumentBuffersTier)
{
MTL_STRINGISE_BITFIELD_BIT(ArgumentBuffersTier1);
MTL_STRINGISE_BITFIELD_BIT(ArgumentBuffersTier2);
}
END_BITFIELD_STRINGISE()
}
template <>
rdcstr DoStringise(const MTL::DepthClipMode &el)
{
BEGIN_ENUM_STRINGISE(MTL::DepthClipMode);
{
MTL_STRINGISE_ENUM(DepthClipModeClip);
MTL_STRINGISE_ENUM(DepthClipModeClamp);
}
END_ENUM_STRINGISE();
}
template <>
rdcstr DoStringise(const MTL::TriangleFillMode &el)
{
BEGIN_ENUM_STRINGISE(MTL::TriangleFillMode);
{
MTL_STRINGISE_ENUM(TriangleFillModeFill);
MTL_STRINGISE_ENUM(TriangleFillModeLines);
}
END_ENUM_STRINGISE();
}
template <>
rdcstr DoStringise(const MTL::CullMode &el)
{
BEGIN_ENUM_STRINGISE(MTL::CullMode);
{
MTL_STRINGISE_ENUM(CullModeNone);
MTL_STRINGISE_ENUM(CullModeFront);
MTL_STRINGISE_ENUM(CullModeBack);
}
END_ENUM_STRINGISE();
};
+9
View File
@@ -115,6 +115,15 @@ MTL_DECLARE_REFLECTION_TYPE(Viewport);
MTL_DECLARE_REFLECTION_TYPE(MultisampleDepthResolveFilter);
MTL_DECLARE_REFLECTION_TYPE(MultisampleStencilResolveFilter);
MTL_DECLARE_REFLECTION_TYPE(SamplePosition);
MTL_DECLARE_REFLECTION_TYPE(Origin);
MTL_DECLARE_REFLECTION_TYPE(Region);
MTL_DECLARE_REFLECTION_TYPE(Size);
MTL_DECLARE_REFLECTION_TYPE(BlitOption);
MTL_DECLARE_REFLECTION_TYPE(DeviceLocation);
MTL_DECLARE_REFLECTION_TYPE(ArgumentBuffersTier);
MTL_DECLARE_REFLECTION_TYPE(DepthClipMode);
MTL_DECLARE_REFLECTION_TYPE(TriangleFillMode);
MTL_DECLARE_REFLECTION_TYPE(CullMode);
template <>
inline rdcliteral TypeName<NS::Range>()