Presentation Suppression
Capturing the frame is only half of renderer takeover. The original Skiko path must also be prevented from presenting over the Kanvas-owned surface at the wrong point.
That work lives in SkikoContextTransformer.java.
Why suppression exists
Without suppression, both renderers can participate in one frame:
Kanvas presentation
│
▼
visible frame
│
Skiko presents afterward
│
▼
Kanvas output gets overwritten
The context transformer wraps Skiko's ContextHandler.draw(LayerDrawScope) path and asks the capture/takeover hooks whether that presentation pass should return immediately.
Why suppression is conditional
The original path is still useful when takeover is disabled or when Kanvas is being used for capture/audit work only.
That is why the transformer asks a runtime hook instead of permanently deleting the method body.
It is possible to capture renderer activity without owning final presentation. "Capture worked" does not mean "Kanvas presented the frame." Renderer ownership must be confirmed independently.
Source: