diff --git a/Memola/Canvas/Core/Renderer.swift b/Memola/Canvas/Core/Renderer.swift index 161f0d7..0f143f3 100644 --- a/Memola/Canvas/Core/Renderer.swift +++ b/Memola/Canvas/Core/Renderer.swift @@ -101,6 +101,7 @@ final class Renderer { viewPortRenderPass.descriptor = view.currentRenderPassDescriptor viewPortRenderPass.excludesPhotoBackground = photoBackgroundRenderPass.clearsTexture + viewPortRenderPass.excludesGraphic = cacheRenderPass.clearsTexture viewPortRenderPass.photoBackgroundTexture = photoBackgroundRenderPass.photoBackgroundTexture viewPortRenderPass.cacheTexture = cacheRenderPass.cacheTexture viewPortRenderPass.draw(into: commandBuffer, on: canvas, with: self) diff --git a/Memola/Canvas/RenderPasses/ViewPortRenderPass.swift b/Memola/Canvas/RenderPasses/ViewPortRenderPass.swift index dd4f79a..d939bb1 100644 --- a/Memola/Canvas/RenderPasses/ViewPortRenderPass.swift +++ b/Memola/Canvas/RenderPasses/ViewPortRenderPass.swift @@ -22,6 +22,7 @@ class ViewPortRenderPass: RenderPass { weak var view: MTKView? + var excludesGraphic: Bool = false var excludesPhotoBackground: Bool = false init(renderer: Renderer) { @@ -68,8 +69,10 @@ class ViewPortRenderPass: RenderPass { canvas.renderViewPortUpdate(device: renderer.device, renderEncoder: renderEncoder) } - renderEncoder.setFragmentTexture(cacheTexture, index: 0) - canvas.renderViewPortUpdate(device: renderer.device, renderEncoder: renderEncoder) + if !excludesGraphic { + renderEncoder.setFragmentTexture(cacheTexture, index: 0) + canvas.renderViewPortUpdate(device: renderer.device, renderEncoder: renderEncoder) + } } else { guard let viewPortPipelineState else { return false @@ -82,8 +85,10 @@ class ViewPortRenderPass: RenderPass { canvas.renderViewPort(device: renderer.device, renderEncoder: renderEncoder) } - renderEncoder.setFragmentTexture(cacheTexture, index: 0) - canvas.renderViewPort(device: renderer.device, renderEncoder: renderEncoder) + if !excludesGraphic { + renderEncoder.setFragmentTexture(cacheTexture, index: 0) + canvas.renderViewPort(device: renderer.device, renderEncoder: renderEncoder) + } } renderEncoder.endEncoding()