Skip to content

Commit a75246c

Browse files
committed
Don't draw views with no size
1 parent aeca877 commit a75246c

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

Sources/GateEngine/System/Rendering/RenderTarget.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,22 +257,27 @@ extension _RenderTargetProtocol {
257257
let clip = frame.clamped(within: superClip)
258258
view.draw(frame, into: &canvas)
259259
for subview in view.subviews {
260-
self.drawView(subview, into: &canvas, forOffScreen: forOffScreen, frameNumber: frameNumber, superClip: clip)
260+
if subview.shouldDraw() {
261+
self.drawView(subview, into: &canvas, forOffScreen: forOffScreen, frameNumber: frameNumber, superClip: clip)
262+
}
261263
}
262264
case .offScreen:
263265
drawOffScreenViewHierarchy(for: view, into: &canvas, frameNumber: frameNumber)
264266
}
265267
}
266268

267269
private func drawOffScreenViewHierarchy(for view: View, into onScreenCanvas: inout UICanvas, frameNumber: UInt) {
270+
guard view.shouldDraw() else {return}
268271
guard let window = view.window else {fatalError()}
269272
let offScreenFrame = view.offScreenFrame()
270273

271274
var offScreenCanvas: UICanvas = UICanvas(estimatedCommandCount: 10)
272275
view.draw(offScreenFrame, into: &offScreenCanvas)
273276

274277
for subview in view.subviews {
275-
self.drawView(subview, into: &offScreenCanvas, forOffScreen: true, frameNumber: frameNumber, superClip: offScreenFrame)
278+
if subview.shouldDraw() {
279+
self.drawView(subview, into: &offScreenCanvas, forOffScreen: true, frameNumber: frameNumber, superClip: offScreenFrame)
280+
}
276281
}
277282
if offScreenCanvas.hasContent {
278283
window.offScreenRendering.renderTarget.insert(offScreenCanvas)

0 commit comments

Comments
 (0)