mirror of
https://github.com/dscyrescotti/Memola.git
synced 2026-03-24 10:21:23 +01:00
feat: exclude graphic texture if there is no elements in visible frame of canvas
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user