/ src / MTKViewDelegate.hh
MTKViewDelegate.hh
 1  #pragma once
 2  
 3  #include "Renderer.hh"
 4  #include <MetalKit/MetalKit.hpp>
 5  
 6  // Methods for responding to a MetalKit view’s drawing and resizing events.
 7  class MTKViewDelegate : public MTK::ViewDelegate {
 8      std::unique_ptr<Renderer> renderer;
 9  
10  public:
11      static std::expected<std::unique_ptr<MTKViewDelegate>, RendererError>
12      init(MTL::Device* device);
13  
14      virtual ~MTKViewDelegate() override = default;
15      virtual void drawInMTKView(MTK::View* view) override;
16  
17  private:
18      explicit MTKViewDelegate(std::unique_ptr<Renderer> r);
19  };