generated from rnentjes/kotlin-server-web-undertow
Refactor MTMCClock frame handling, enhance emulator performance, integrate immediateTimeout, and optimize rendering logic for RegisterView, MemoryView, and BufferedImage.
This commit is contained in:
@@ -3,11 +3,7 @@ package mtmc.emulator
|
||||
import kotlin.math.min
|
||||
|
||||
class MTMCDisplay(private val computer: MonTanaMiniComputer) {
|
||||
private val buffer = BufferedImage(
|
||||
COLS,
|
||||
ROWS,
|
||||
1
|
||||
) // BufferedImage.TYPE_INT_ARGB
|
||||
private val buffer: BufferedImage? = null
|
||||
private var currentColor: DisplayColor? = null
|
||||
private var graphics: Array<BufferedImage> = arrayOf()
|
||||
private var byteArray: ByteArray = ByteArray(0)
|
||||
@@ -88,7 +84,7 @@ class MTMCDisplay(private val computer: MonTanaMiniComputer) {
|
||||
}
|
||||
|
||||
graphics = Array(data.size) { index ->
|
||||
loadImage(data[index]) ?: BufferedImage(160, 144, 1) //BufferedImage.TYPE_INT_RGB)
|
||||
loadImage(data[index]) ?: createBufferedImage(160, 144) //BufferedImage.TYPE_INT_RGB)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,12 +107,12 @@ class MTMCDisplay(private val computer: MonTanaMiniComputer) {
|
||||
}
|
||||
|
||||
fun setPixel(col: Int, row: Int, color: DisplayColor) {
|
||||
buffer.setRGB(col, row, color.intVal)
|
||||
buffer?.setRGB(col, row, color.intVal)
|
||||
}
|
||||
|
||||
fun getPixel(col: Int, row: Int): Short {
|
||||
val rgb = buffer.getRGB(col, row)
|
||||
return DisplayColor.Companion.indexFromInt(rgb)
|
||||
val rgb = buffer?.getRGB(col, row) ?: 0
|
||||
return DisplayColor.indexFromInt(rgb)
|
||||
}
|
||||
|
||||
fun drawLine(startCol: Short, startRow: Short, endCol: Short, endRow: Short) {
|
||||
@@ -231,7 +227,7 @@ class MTMCDisplay(private val computer: MonTanaMiniComputer) {
|
||||
}
|
||||
|
||||
fun scaleImage(original: BufferedImage, scaleDimensions: Dimension): BufferedImage {
|
||||
val resized = BufferedImage(scaleDimensions.width, scaleDimensions.height, original.type)
|
||||
val resized = createBufferedImage(scaleDimensions.width, scaleDimensions.height)
|
||||
/*
|
||||
val g = resized.createGraphics()
|
||||
g.setRenderingHint(
|
||||
@@ -248,8 +244,7 @@ class MTMCDisplay(private val computer: MonTanaMiniComputer) {
|
||||
}
|
||||
|
||||
fun convertImage(image: BufferedImage): BufferedImage {
|
||||
val arbg =
|
||||
BufferedImage(image.width, image.height, 2) //BufferedImage.TYPE_4BYTE_ABGR)
|
||||
val arbg = createBufferedImage(image.width, image.height) //BufferedImage.TYPE_4BYTE_ABGR)
|
||||
for (x in 0..<image.width) {
|
||||
for (y in 0..<image.height) {
|
||||
val rgb = image.getRGB(x, y)
|
||||
|
||||
Reference in New Issue
Block a user