VertexFormat.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <Atom/RHI.Reflect/VertexFormat.h>
  9. namespace AZ::RHI
  10. {
  11. uint32_t GetVertexFormatSize(VertexFormat vertexFormat)
  12. {
  13. uint32_t vertexFormatSize{ Internal::GetVertexFormatSize(vertexFormat) };
  14. AZ_Assert(vertexFormatSize != 0, "Failed to get size of vertex format %d", vertexFormat);
  15. return vertexFormatSize;
  16. }
  17. VertexFormat ConvertToVertexFormat(RHI::Format format)
  18. {
  19. switch (format)
  20. {
  21. case RHI::Format::R32G32B32A32_FLOAT:
  22. return VertexFormat::R32G32B32A32_FLOAT;
  23. case RHI::Format::R32G32B32_FLOAT:
  24. return VertexFormat::R32G32B32_FLOAT;
  25. case RHI::Format::R32G32_FLOAT:
  26. return VertexFormat::R32G32_FLOAT;
  27. case RHI::Format::R16G16B16A16_FLOAT:
  28. return VertexFormat::R16G16B16A16_FLOAT;
  29. case RHI::Format::R16G16_FLOAT:
  30. return VertexFormat::R16G16_FLOAT;
  31. case RHI::Format::R8G8_UNORM:
  32. return VertexFormat::R8G8_UNORM;
  33. default:
  34. AZ_Assert(false, "Failed to convert format %s to vertex format", RHI::ToString(format));
  35. return VertexFormat::Unknown;
  36. }
  37. }
  38. RHI::Format ConvertToImageFormat(VertexFormat vertexFormat)
  39. {
  40. switch (vertexFormat)
  41. {
  42. case VertexFormat::R32G32B32A32_FLOAT:
  43. return Format::R32G32B32A32_FLOAT;
  44. case VertexFormat::R32G32B32_FLOAT:
  45. return Format::R32G32B32_FLOAT;
  46. case VertexFormat::R32G32_FLOAT:
  47. return Format::R32G32_FLOAT;
  48. case VertexFormat::R16G16B16A16_FLOAT:
  49. return Format::R16G16B16A16_FLOAT;
  50. case VertexFormat::R16G16_FLOAT:
  51. return Format::R16G16_FLOAT;
  52. case VertexFormat::R8G8_UNORM:
  53. return Format::R8G8_UNORM;
  54. default:
  55. AZ_Assert(false, "Failed to convert vertex format %d to image format", vertexFormat);
  56. return Format::Unknown;
  57. }
  58. }
  59. } // namespace AZ::RHI