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 };