override fun onDraw()

in platf-android/src/androidMain/kotlin/org/jetbrains/letsPlot/android/canvas/CanvasView.kt [101:120]


    override fun onDraw(canvas: android.graphics.Canvas) {
        super.onDraw(canvas)

        // TODO: TERRIBLE HACK! Just pass the canvas to the figure and let draw it there.
        // This also may help with resources management as figure could to not create canvases at all.
        val contentCanvas = canvasControl.children.lastOrNull() ?: return

        if (contentCanvas.size.x <= 0 || contentCanvas.size.y <= 0) {
            // No content to draw, skip drawing
            return
        }

        val fig = figure ?: return

        centerOffsetX = ((width - fig.width * resources.displayMetrics.density) / 2f)
        centerOffsetY = ((height - fig.height * resources.displayMetrics.density) / 2f)

        canvas.drawRect(0f, 0f, width.toFloat(), height.toFloat(), eraser)
        canvas.drawBitmap(contentCanvas.platformBitmap, centerOffsetX, centerOffsetY, null)
    }