@@ -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