Visibility hidden ancestor with visible child



Only visible text is antialiased

This text is antialiased. There is a hidden smoothed child


(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 800.00 600.00)
  (children 1
    (GraphicsLayer
      (bounds 800.00 600.00)
      (contentsOpaque 1)
      (children 4
        (GraphicsLayer
          (offsetFromRenderer width=-6 height=-6)
          (position 12.00 17.00)
          (bounds 162.00 162.00)
          (supports subpixel antialiased text 1)
          (drawsContent 1)
        )
        (GraphicsLayer
          (offsetFromRenderer width=-6 height=-6)
          (position 182.00 17.00)
          (bounds 162.00 162.00)
          (drawsContent 1)
        )
        (GraphicsLayer
          (offsetFromRenderer width=-6 height=-6)
          (position 352.00 17.00)
          (bounds 162.00 162.00)
          (drawsContent 1)
        )
        (GraphicsLayer
          (offsetFromRenderer width=-6 height=-6)
          (position 522.00 17.00)
          (bounds 162.00 162.00)
          (drawsContent 1)
        )
      )
    )
  )
)

