MetalDevice.h 616 B

123456789101112131415161718192021222324
  1. #pragma once
  2. #include "IUnityGraphicsMetal.h"
  3. #include <Metal/Metal.h>
  4. namespace unity
  5. {
  6. namespace webrtc
  7. {
  8. class MetalDevice
  9. {
  10. public:
  11. static std::unique_ptr<MetalDevice> Create(IUnityGraphicsMetal* device);
  12. static std::unique_ptr<MetalDevice> CreateForTest();
  13. virtual ~MetalDevice() { }
  14. virtual id<MTLDevice> Device() = 0;
  15. virtual id<MTLCommandBuffer> CurrentCommandBuffer() = 0;
  16. virtual id<MTLCommandEncoder> CurrentCommandEncoder() = 0;
  17. virtual void EndCurrentCommandEncoder() = 0;
  18. };
  19. } // end namespace webrtc
  20. } // end namespace unity