IndirectBuffer.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #pragma once
  9. #include <AzCore/UnitTest/TestTypes.h>
  10. #include <Atom/RHI/DeviceIndirectBufferSignature.h>
  11. #include <Atom/RHI/DeviceIndirectBufferWriter.h>
  12. #include <AzCore/Memory/SystemAllocator.h>
  13. #include <gmock/gmock.h>
  14. namespace UnitTest
  15. {
  16. class IndirectBufferWriter
  17. : public AZ::RHI::DeviceIndirectBufferWriter
  18. {
  19. public:
  20. AZ_CLASS_ALLOCATOR(IndirectBufferWriter, AZ::SystemAllocator);
  21. uint8_t* GetData() const { return GetTargetMemory(); };
  22. MOCK_METHOD2(SetVertexViewInternal, void(AZ::RHI::IndirectCommandIndex index, const AZ::RHI::DeviceStreamBufferView& view));
  23. MOCK_METHOD2(SetIndexViewInternal, void(AZ::RHI::IndirectCommandIndex index, const AZ::RHI::DeviceIndexBufferView& view));
  24. MOCK_METHOD3(DrawInternal, void(AZ::RHI::IndirectCommandIndex index, const AZ::RHI::DrawLinear& arguments, const AZ::RHI::DrawInstanceArguments& drawInstanceArgs));
  25. MOCK_METHOD3(DrawIndexedInternal, void(AZ::RHI::IndirectCommandIndex index, const AZ::RHI::DrawIndexed& arguments, const AZ::RHI::DrawInstanceArguments& drawInstanceArgs));
  26. MOCK_METHOD2(DispatchInternal, void(AZ::RHI::IndirectCommandIndex index, const AZ::RHI::DispatchDirect& arguments));
  27. MOCK_METHOD3(SetRootConstantsInternal, void(AZ::RHI::IndirectCommandIndex index, const uint8_t* data, uint32_t byteSize));
  28. };
  29. using NiceIndirectBufferWriter = ::testing::NiceMock<IndirectBufferWriter>;
  30. class IndirectBufferSignature
  31. : public AZ::RHI::DeviceIndirectBufferSignature
  32. {
  33. public:
  34. AZ_CLASS_ALLOCATOR(IndirectBufferSignature, AZ::SystemAllocator);
  35. MOCK_METHOD2(InitInternal, AZ::RHI::ResultCode(AZ::RHI::Device& device, const AZ::RHI::DeviceIndirectBufferSignatureDescriptor& descriptor));
  36. MOCK_CONST_METHOD0(GetByteStrideInternal, uint32_t());
  37. MOCK_CONST_METHOD1(GetOffsetInternal, uint32_t(AZ::RHI::IndirectCommandIndex index));
  38. MOCK_METHOD0(ShutdownInternal, void());
  39. };
  40. using NiceIndirectBufferSignature = ::testing::NiceMock<IndirectBufferSignature>;
  41. }