in skiko/src/commonTest/kotlin/org/jetbrains/skia/SurfaceTest.kt [13:59]
fun surfaceTest() {
assertFailsWith<IllegalArgumentException> {
Surface.makeRasterN32Premul(0, 0)
}
Surface.makeRasterN32Premul(100, 200).use { surface ->
assertEquals(100, surface.width)
assertEquals(200, surface.height)
val readPixelsBitmap = Bitmap()
readPixelsBitmap.setImageInfo(ImageInfo.makeN32Premul(100, 200))
readPixelsBitmap.allocPixels()
assertTrue(surface.readPixels(readPixelsBitmap, 0, 0))
val id = surface.generationId
assertEquals(id, surface.generationId)
val writePixelsBitmap = Bitmap()
writePixelsBitmap.setImageInfo(ImageInfo.makeN32Premul(100, 200))
writePixelsBitmap.allocPixels()
surface.writePixels(writePixelsBitmap, 0, 0)
assertNotEquals(id, surface.generationId)
assertTrue(surface.isUnique)
val imageInfo = surface.imageInfo
assertEquals(100, imageInfo.width)
assertEquals(200, imageInfo.height)
val newSurface = surface.makeSurface(50, 100)!!
assertEquals(50, newSurface.width)
assertEquals(100, newSurface.height)
val newSurface2 = surface.makeSurface(ImageInfo.makeN32Premul(200, 400))!!
assertEquals(200, newSurface2.width)
assertEquals(400, newSurface2.height)
val image = surface.makeImageSnapshot(IRect(0, 0, 20, 30))!!
assertEquals(20, image.width)
assertEquals(30, image.height)
val id2 = surface.generationId
assertEquals(id2, surface.generationId)
surface.notifyContentWillChange(ContentChangeMode.DISCARD)
assertNotEquals(id2, surface.generationId)
val context = surface.recordingContext
assertEquals(context, null)
}
}