diff --git a/include/mln/mtl/renderer_backend.hpp b/include/mln/mtl/renderer_backend.hpp index 12cc2a52d..fb2398655 100644 --- a/include/mln/mtl/renderer_backend.hpp +++ b/include/mln/mtl/renderer_backend.hpp @@ -17,16 +17,12 @@ class ProgramParameters; namespace mtl { using ProcAddress = void (*)(); -using FramebufferID = uint32_t; class RendererBackend : public gfx::RendererBackend { public: RendererBackend(gfx::ContextMode); ~RendererBackend() override; - /// Called prior to rendering to update the internally assumed MetalMetal state. - virtual void updateAssumedState() = 0; - /// One-time shader initialization void initShaders(gfx::ShaderRegistry&, const ProgramParameters& programParameters) override; @@ -40,26 +36,6 @@ protected: /// Reads the color pixel data from the currently bound framebuffer. PremultipliedImage readFramebuffer(const Size&); - /// A constant to signal that a framebuffer is bound, but with an unknown ID. - static constexpr const FramebufferID ImplicitFramebufferBinding = std::numeric_limits::max(); - - /// Tells the renderer that the Metal state has already been set by the windowing toolkit. - /// It sets the internal assumed state to the supplied values. - void assumeFramebufferBinding(FramebufferID fbo); - void assumeViewport(int32_t x, int32_t y, const Size&); - void assumeScissorTest(bool); - - /// Returns true when assumed framebuffer binding hasn't changed from the implicit binding. - bool implicitFramebufferBound(); - -public: - /// Triggers a Metal state update if the internal assumed state doesn't - /// match the supplied values. - void setFramebufferBinding(FramebufferID fbo); - void setViewport(int32_t x, int32_t y, const Size&); - void setScissorTest(bool); - -protected: MTLDevicePtr device; MTLCommandQueuePtr commandQueue; bool baseVertexInstanceDrawingSupported = false; diff --git a/platform/default/include/mln/mtl/headless_backend.hpp b/platform/default/include/mln/mtl/headless_backend.hpp index 90dd38b09..7169fbc89 100644 --- a/platform/default/include/mln/mtl/headless_backend.hpp +++ b/platform/default/include/mln/mtl/headless_backend.hpp @@ -15,7 +15,6 @@ public: SwapBehaviour = SwapBehaviour::NoFlush, gfx::ContextMode = gfx::ContextMode::Unique); ~HeadlessBackend() override; - void updateAssumedState() override; gfx::Renderable& getDefaultRenderable() override; PremultipliedImage readStillImage() override; MTL::Texture* getMetalTexture(); diff --git a/platform/default/src/mln/mtl/headless_backend.cpp b/platform/default/src/mln/mtl/headless_backend.cpp index 7707bf789..5e8c0e002 100644 --- a/platform/default/src/mln/mtl/headless_backend.cpp +++ b/platform/default/src/mln/mtl/headless_backend.cpp @@ -87,10 +87,6 @@ void HeadlessBackend::ensureResource() { } } -void HeadlessBackend::updateAssumedState() { - // no-op -} - PremultipliedImage HeadlessBackend::readStillImage() { return getResource().readStillImage(); } diff --git a/platform/glfw/metal_backend.h b/platform/glfw/metal_backend.h index 679d0fd7a..8458439c5 100644 --- a/platform/glfw/metal_backend.h +++ b/platform/glfw/metal_backend.h @@ -14,7 +14,6 @@ public: mln::gfx::Renderable &getDefaultRenderable() override; void activate() override; void deactivate() override; - void updateAssumedState() override; void setSize(mln::Size size_); mln::Size getSize() const; }; diff --git a/platform/glfw/metal_backend.mm b/platform/glfw/metal_backend.mm index 8d9beb1a9..7da88defc 100644 --- a/platform/glfw/metal_backend.mm +++ b/platform/glfw/metal_backend.mm @@ -127,7 +127,6 @@ mln::gfx::Renderable& MetalBackend::getDefaultRenderable() { return *this; } void MetalBackend::activate() {} void MetalBackend::deactivate() {} -void MetalBackend::updateAssumedState() {} void MetalBackend::setSize(mln::Size size_) { size = size_; diff --git a/platform/ios/src/MLNMapView+Metal.h b/platform/ios/src/MLNMapView+Metal.h index 69cea03b7..5faf85c9a 100644 --- a/platform/ios/src/MLNMapView+Metal.h +++ b/platform/ios/src/MLNMapView+Metal.h @@ -26,11 +26,6 @@ private: void deactivate() override; // End implementation of mln::gfx::RendererBackend - // Implementation of mln::gl::RendererBackend -public: - void updateAssumedState() override; - // End implementation of mln::gl::Rendererbackend - // Implementation of MLNMapViewImpl public: mln::gfx::RendererBackend& getRendererBackend() override { return *this; } diff --git a/platform/ios/src/MLNMapView+Metal.mm b/platform/ios/src/MLNMapView+Metal.mm index 952eefb36..55afc66f0 100644 --- a/platform/ios/src/MLNMapView+Metal.mm +++ b/platform/ios/src/MLNMapView+Metal.mm @@ -208,15 +208,6 @@ void MLNMapViewMetalImpl::deactivate() { } } -/// This function is called before we start rendering, when iOS invokes our rendering method. -/// iOS already sets the correct framebuffer and viewport for us, so we need to update the -/// context state with the anticipated values. -void MLNMapViewMetalImpl::updateAssumedState() { - auto& resource = getResource(); - assumeFramebufferBinding(ImplicitFramebufferBinding); - assumeViewport(0, 0, resource.framebufferSize()); -} - UIImage* MLNMapViewMetalImpl::snapshot() { auto& resource = getResource(); return nil; // TODO: resource.mtlView.snapshot; diff --git a/platform/macos/src/MLNMapView+Metal.h b/platform/macos/src/MLNMapView+Metal.h index f5743d003..c35bdc8a8 100644 --- a/platform/macos/src/MLNMapView+Metal.h +++ b/platform/macos/src/MLNMapView+Metal.h @@ -26,11 +26,6 @@ private: void deactivate() override; // End implementation of mln::gfx::RendererBackend - // Implementation of mln::gl::RendererBackend -public: - void updateAssumedState() override; - // End implementation of mln::gl::Rendererbackend - // Implementation of MLNMapViewImpl public: mln::gfx::RendererBackend& getRendererBackend() override { return *this; } diff --git a/platform/macos/src/MLNMapView+Metal.mm b/platform/macos/src/MLNMapView+Metal.mm index 66c1baf5c..52296448f 100644 --- a/platform/macos/src/MLNMapView+Metal.mm +++ b/platform/macos/src/MLNMapView+Metal.mm @@ -158,15 +158,6 @@ void MLNMapViewMetalImpl::deactivate() { } } -/// This function is called before we start rendering, when iOS invokes our rendering method. -/// iOS already sets the correct framebuffer and viewport for us, so we need to update the -/// context state with the anticipated values. -void MLNMapViewMetalImpl::updateAssumedState() { - auto& resource = getResource(); - assumeFramebufferBinding(ImplicitFramebufferBinding); - assumeViewport(0, 0, resource.framebufferSize()); -} - mln::PremultipliedImage MLNMapViewMetalImpl::readStillImage() { // return readFramebuffer(mapView.framebufferSize); // TODO: RendererBackend::readFramebuffer return {}; diff --git a/src/mln/mtl/renderer_backend.cpp b/src/mln/mtl/renderer_backend.cpp index 3b493985e..d463fcdd7 100644 --- a/src/mln/mtl/renderer_backend.cpp +++ b/src/mln/mtl/renderer_backend.cpp @@ -60,22 +60,6 @@ PremultipliedImage RendererBackend::readFramebuffer(const Size& size) { return PremultipliedImage(size); } -void RendererBackend::assumeFramebufferBinding(const mtl::FramebufferID) {} - -void RendererBackend::assumeViewport(int32_t, int32_t, const Size&) {} - -void RendererBackend::assumeScissorTest(bool) {} - -bool RendererBackend::implicitFramebufferBound() { - return false; -} - -void RendererBackend::setFramebufferBinding(const mtl::FramebufferID) {} - -void RendererBackend::setViewport(int32_t, int32_t, const Size&) {} - -void RendererBackend::setScissorTest(bool) {} - /// @brief Register a list of types with a shader registry instance /// @tparam ...ShaderID Pack of BuiltIn:: shader IDs /// @param registry A shader registry instance