• Ivan Matkov's avatar
    Adoption of `RenderNode` approach (#1014) · 09dae793
    Ivan Matkov authored
    It is a simplified adoption of Android's `RenderNode`.
    
    ```kt
    /**
     * <p>RenderNode is used to build hardware accelerated rendering hierarchies. Each RenderNode
     * contains both a display list as well as a set of properties that affect the rendering of the
     * display list. RenderNodes are used internally for all Views by default and are not typically
     * used directly.</p>
     *
     * <p>RenderNodes are used to divide up the rendering content of a complex scene into smaller
     * pieces that can then be updated individually more cheaply. Updating part of the scene only needs
     * to update the display list or properties of a small number of RenderNode instead of redrawing
     * everything from scratch. A RenderNode only needs its display list re-recorded when its content
     * alone should be changed. RenderNodes can also be transformed without re-recording the display
     * list through the transform properties.</p>
     ```
     
     This is a more correct approach to make `GraphicsLayer` in Compose invalidation independently.
     - Moved drawing callback to C++ side to avoid extra interop costs
     - Switched from `SkPicture` placeholder to custom `SkDrawable` implementation
    09dae793