override fun initParams()

in plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/pixels/PixelsWriterDefault.kt [62:89]


    override fun initParams() {
        super.initParams()
        if (rowb.size < buflen) rowb = ByteArray(buflen)
        if (rowbfilter == null || rowbfilter!!.size < buflen) rowbfilter = ByteArray(buflen)
        if (rowbprev == null || rowbprev!!.size < buflen) rowbprev = ByteArray(buflen) else fill(rowbprev!!, 0.toByte())

        // if adaptative but too few rows or columns, use default
        if (imgInfo.cols < 3 && !FilterType.isValidStandard(filterType)) filterType = FilterType.FILTER_DEFAULT
        if (imgInfo.rows < 3 && !FilterType.isValidStandard(filterType)) filterType = FilterType.FILTER_DEFAULT
        if (imgInfo.totalPixels <= 1024 && !FilterType.isValidStandard(filterType)) filterType = defaultFilter
        if (FilterType.isAdaptive(filterType)) {
            // adaptCurSkip = 0;
            adaptNextRow = 0
            if (filterType === FilterType.FILTER_ADAPTIVE_FAST) {
                adaptMaxSkip = 200
                adaptSkipIncreaseSinceRow = 3
                adaptSkipIncreaseFactor = 1 / 4.0 // skip ~ row/3
            } else if (filterType === FilterType.FILTER_ADAPTIVE_MEDIUM) {
                adaptMaxSkip = 8
                adaptSkipIncreaseSinceRow = 32
                adaptSkipIncreaseFactor = 1 / 80.0
            } else if (filterType === FilterType.FILTER_ADAPTIVE_FULL) {
                adaptMaxSkip = 0
                adaptSkipIncreaseSinceRow = 128
                adaptSkipIncreaseFactor = 1 / 120.0
            } else throw PngjOutputException("bad filter $filterType")
        }
    }