2
0

DxilRootSignatureHelper.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // //
  3. // DxilRootSignature.cpp //
  4. // Copyright (C) Microsoft Corporation. All rights reserved. //
  5. // This file is distributed under the University of Illinois Open Source //
  6. // License. See LICENSE.TXT for details. //
  7. // //
  8. // Provides support for manipulating root signature structures. //
  9. // //
  10. ///////////////////////////////////////////////////////////////////////////////
  11. #pragma once
  12. #include "dxc/Support/Global.h"
  13. namespace hlsl {
  14. DEFINE_ENUM_FLAG_OPERATORS(DxilRootSignatureFlags)
  15. DEFINE_ENUM_FLAG_OPERATORS(DxilRootDescriptorFlags)
  16. DEFINE_ENUM_FLAG_OPERATORS(DxilDescriptorRangeType)
  17. DEFINE_ENUM_FLAG_OPERATORS(DxilDescriptorRangeFlags)
  18. // Execute (error) and throw.
  19. #define EAT(x) { (x); throw ::hlsl::Exception(E_FAIL); }
  20. namespace root_sig_helper {
  21. // GetFlags/SetFlags overloads.
  22. DxilRootDescriptorFlags GetFlags(const DxilRootDescriptor &);
  23. void SetFlags(DxilRootDescriptor &, DxilRootDescriptorFlags);
  24. DxilRootDescriptorFlags GetFlags(const DxilRootDescriptor1 &D);
  25. void SetFlags(DxilRootDescriptor1 &D, DxilRootDescriptorFlags Flags);
  26. void SetFlags(DxilContainerRootDescriptor1 &D, DxilRootDescriptorFlags Flags);
  27. DxilDescriptorRangeFlags GetFlags(const DxilDescriptorRange &D);
  28. void SetFlags(DxilDescriptorRange &, DxilDescriptorRangeFlags);
  29. DxilDescriptorRangeFlags GetFlags(const DxilContainerDescriptorRange &D);
  30. void SetFlags(DxilContainerDescriptorRange &, DxilDescriptorRangeFlags);
  31. DxilDescriptorRangeFlags GetFlags(const DxilDescriptorRange1 &D);
  32. void SetFlags(DxilDescriptorRange1 &D, DxilDescriptorRangeFlags Flags);
  33. DxilDescriptorRangeFlags GetFlags(const DxilContainerDescriptorRange1 &D);
  34. void SetFlags(DxilContainerDescriptorRange1 &D, DxilDescriptorRangeFlags Flags);
  35. }
  36. }