in plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/PngReader.kt [418:445]
protected fun loadAllInterlaced(nRows: Int, rowOffset: Int, rowStep: Int) {
require(chunkseq != null)
val idat: IdatSet = chunkseq.idatSet!!
var nread = 0
do {
while (!chunkseq.idatSet!!.isRowReady) if (streamFeeder!!.feed(chunkseq) <= 0) break
if (!chunkseq.idatSet!!.isRowReady) throw PngjInputException("Premature ending?")
chunkseq.idatSet!!.updateCrcs(idatCrca, idatCrcb)
val rowNumreal: Int = idat.rowinfo.rowNreal
val inset: Boolean = imlinesSet!!.hasImageLine(rowNumreal)
if (inset) {
imlinesSet!!.getImageLine(rowNumreal).readFromPngRaw(
idat.unfilteredRow!!, idat.rowinfo.buflen,
idat.rowinfo.oX, idat.rowinfo.dX
)
nread++
}
idat.advanceToNextRow()
} while (nread < nRows || !idat.isDone)
idat.markAsDone()
var i = 0
var j = rowOffset
while (i < nRows) {
imlinesSet!!.getImageLine(j).endReadFromPngRaw()
i++
j += rowStep
}
}