From d21d444f586d68cb00733baa38c61cae20dadc5c Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 13 Mar 2017 20:06:04 +0300 Subject: [PATCH] Hack for flags enums. refactoring Made non-virtual function. Refactoring Rebase fixes Revert "Made non-virtual function." This reverts commit d7bfaa5bd970864f57daf18e46741ca72c5d4fe4. Reverted hack --- .../native/interop/gen/jvm/StubGenerator.kt | 2 +- samples/tetris/build | 2 + {sdl_test => samples/tetris}/sdl.def | 0 {sdl_test => samples/tetris}/tetris.kt | 440 ++++++++++-------- samples/tetris/tetris_all.bmp | Bin 0 -> 112374 bytes sdl_test/tetris_all.bmp | Bin 36054 -> 0 bytes sdl_test/tetris_cells_texts.bmp | Bin 99126 -> 0 bytes 7 files changed, 253 insertions(+), 191 deletions(-) create mode 100644 samples/tetris/build rename {sdl_test => samples/tetris}/sdl.def (100%) rename {sdl_test => samples/tetris}/tetris.kt (62%) create mode 100755 samples/tetris/tetris_all.bmp delete mode 100755 sdl_test/tetris_all.bmp delete mode 100755 sdl_test/tetris_cells_texts.bmp diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt index 9a816e7671b..75bd6c55c41 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt @@ -23,7 +23,7 @@ class StubGenerator( val excludedFunctions: Set get() = configuration.excludedFunctions - val keywords = setOf("object") // TODO + val keywords = setOf("object", "val") // TODO fun String.mangleIfKeyword(): String { return if (this in keywords) { diff --git a/samples/tetris/build b/samples/tetris/build new file mode 100644 index 00000000000..b6417f81fba --- /dev/null +++ b/samples/tetris/build @@ -0,0 +1,2 @@ +./dist/bin/interop -def:sdl_test/sdl.def +./dist/bin/konanc sdl_test/tetris.kt SDL/SDL.kt -nativelibrary sdlstubs.bc -linkerArg -F -linkerArg /Library/Frameworks -linkerArg -framework -linkerArg SDL2 diff --git a/sdl_test/sdl.def b/samples/tetris/sdl.def similarity index 100% rename from sdl_test/sdl.def rename to samples/tetris/sdl.def diff --git a/sdl_test/tetris.kt b/samples/tetris/tetris.kt similarity index 62% rename from sdl_test/tetris.kt rename to samples/tetris/tetris.kt index bc8f3520e15..e54ac56effc 100644 --- a/sdl_test/tetris.kt +++ b/samples/tetris/tetris.kt @@ -22,6 +22,9 @@ enum class PlacementResult(val linesCleared: Int = 0, val bonus: Int = 0) { } val EMPTY: Byte = 0 +val CELL1: Byte = 1 +val CELL2: Byte = 2 +val CELL3: Byte = 3 val BRICK: Byte = -1 class Point(var x: Int, var y: Int) @@ -65,97 +68,97 @@ class PiecePosition(piece: Piece, private val origin: Point) { * We use Nintendo Rotation System, right-handed version. * See https://tetris.wiki/Nintendo_Rotation_System */ -enum class Piece(private val origin_: Point, vararg val states: Field) { +enum class Piece(private val origin_: Point, private vararg val states: Field) { T(Point(-1, -2), arrayOf( - byteArrayOf(0, 0, 0), - byteArrayOf(1, 1, 1), - byteArrayOf(0, 1, 0)), + byteArrayOf(EMPTY, EMPTY, EMPTY), + byteArrayOf(CELL1, CELL1, CELL1), + byteArrayOf(EMPTY, CELL1, EMPTY)), arrayOf( - byteArrayOf(0, 1, 0), - byteArrayOf(1, 1, 0), - byteArrayOf(0, 1, 0)), + byteArrayOf(EMPTY, CELL1, EMPTY), + byteArrayOf(CELL1, CELL1, EMPTY), + byteArrayOf(EMPTY, CELL1, EMPTY)), arrayOf( - byteArrayOf(0, 1, 0), - byteArrayOf(1, 1, 1), - byteArrayOf(0, 0, 0)), + byteArrayOf(EMPTY, CELL1, EMPTY), + byteArrayOf(CELL1, CELL1, CELL1), + byteArrayOf(EMPTY, EMPTY, EMPTY)), arrayOf( - byteArrayOf(0, 1, 0), - byteArrayOf(0, 1, 1), - byteArrayOf(0, 1, 0)) + byteArrayOf(EMPTY, CELL1, EMPTY), + byteArrayOf(EMPTY, CELL1, CELL1), + byteArrayOf(EMPTY, CELL1, EMPTY)) ), J(Point(-1, -2), arrayOf( - byteArrayOf(0, 0, 0), - byteArrayOf(2, 2, 2), - byteArrayOf(0, 0, 2)), + byteArrayOf(EMPTY, EMPTY, EMPTY), + byteArrayOf(CELL2, CELL2, CELL2), + byteArrayOf(EMPTY, EMPTY, CELL2)), arrayOf( - byteArrayOf(0, 2, 0), - byteArrayOf(0, 2, 0), - byteArrayOf(2, 2, 0)), + byteArrayOf(EMPTY, CELL2, EMPTY), + byteArrayOf(EMPTY, CELL2, EMPTY), + byteArrayOf(CELL2, CELL2, EMPTY)), arrayOf( - byteArrayOf(2, 0, 0), - byteArrayOf(2, 2, 2), - byteArrayOf(0, 0, 0)), + byteArrayOf(CELL2, EMPTY, EMPTY), + byteArrayOf(CELL2, CELL2, CELL2), + byteArrayOf(EMPTY, EMPTY, EMPTY)), arrayOf( - byteArrayOf(0, 2, 2), - byteArrayOf(0, 2, 0), - byteArrayOf(0, 2, 0)) + byteArrayOf(EMPTY, CELL2, CELL2), + byteArrayOf(EMPTY, CELL2, EMPTY), + byteArrayOf(EMPTY, CELL2, EMPTY)) ), Z(Point(-1, -2), arrayOf( - byteArrayOf(0, 0, 0), - byteArrayOf(3, 3, 0), - byteArrayOf(0, 3, 3)), + byteArrayOf(EMPTY, EMPTY, EMPTY), + byteArrayOf(CELL3, CELL3, EMPTY), + byteArrayOf(EMPTY, CELL3, CELL3)), arrayOf( - byteArrayOf(0, 0, 3), - byteArrayOf(0, 3, 3), - byteArrayOf(0, 3, 0)) + byteArrayOf(EMPTY, EMPTY, CELL3), + byteArrayOf(EMPTY, CELL3, CELL3), + byteArrayOf(EMPTY, CELL3, EMPTY)) ), - O(Point(0, -2), + O(Point(0, -1), arrayOf( - byteArrayOf(1, 1), - byteArrayOf(1, 1)) + byteArrayOf(CELL1, CELL1), + byteArrayOf(CELL1, CELL1)) ), S(Point(-1, -2), arrayOf( - byteArrayOf(0, 0, 0), - byteArrayOf(0, 2, 2), - byteArrayOf(2, 2, 0)), + byteArrayOf(EMPTY, EMPTY, EMPTY), + byteArrayOf(EMPTY, CELL2, CELL2), + byteArrayOf(CELL2, CELL2, EMPTY)), arrayOf( - byteArrayOf(0, 2, 0), - byteArrayOf(0, 2, 2), - byteArrayOf(0, 0, 2)) + byteArrayOf(EMPTY, CELL2, EMPTY), + byteArrayOf(EMPTY, CELL2, CELL2), + byteArrayOf(EMPTY, EMPTY, CELL2)) ), L(Point(-1, -2), arrayOf( - byteArrayOf(0, 0, 0), - byteArrayOf(3, 3, 3), - byteArrayOf(3, 0, 0)), + byteArrayOf(EMPTY, EMPTY, EMPTY), + byteArrayOf(CELL3, CELL3, CELL3), + byteArrayOf(CELL3, EMPTY, EMPTY)), arrayOf( - byteArrayOf(3, 3, 0), - byteArrayOf(0, 3, 0), - byteArrayOf(0, 3, 0)), + byteArrayOf(CELL3, CELL3, EMPTY), + byteArrayOf(EMPTY, CELL3, EMPTY), + byteArrayOf(EMPTY, CELL3, EMPTY)), arrayOf( - byteArrayOf(0, 0, 3), - byteArrayOf(3, 3, 3), - byteArrayOf(0, 0, 0)), + byteArrayOf(EMPTY, EMPTY, CELL3), + byteArrayOf(CELL3, CELL3, CELL3), + byteArrayOf(EMPTY, EMPTY, EMPTY)), arrayOf( - byteArrayOf(0, 3, 0), - byteArrayOf(0, 3, 0), - byteArrayOf(0, 3, 3)) + byteArrayOf(EMPTY, CELL3, EMPTY), + byteArrayOf(EMPTY, CELL3, EMPTY), + byteArrayOf(EMPTY, CELL3, CELL3)) ), I(Point(-2, -2), arrayOf( - byteArrayOf(0, 0, 0, 0), - byteArrayOf(0, 0, 0, 0), - byteArrayOf(1, 1, 1, 1), - byteArrayOf(0, 0, 0, 0)), + byteArrayOf(EMPTY, EMPTY, EMPTY, EMPTY), + byteArrayOf(EMPTY, EMPTY, EMPTY, EMPTY), + byteArrayOf(CELL1, CELL1, CELL1, CELL1), + byteArrayOf(EMPTY, EMPTY, EMPTY, EMPTY)), arrayOf( - byteArrayOf(0, 0, 1, 0), - byteArrayOf(0, 0, 1, 0), - byteArrayOf(0, 0, 1, 0), - byteArrayOf(0, 0, 1, 0)) + byteArrayOf(EMPTY, EMPTY, CELL1, EMPTY), + byteArrayOf(EMPTY, EMPTY, CELL1, EMPTY), + byteArrayOf(EMPTY, EMPTY, CELL1, EMPTY), + byteArrayOf(EMPTY, EMPTY, CELL1, EMPTY)) ); val origin get() = Point(origin_.x, origin_.y) @@ -448,7 +451,6 @@ class Game(width: Int, height: Int, val visualizer: GameFieldVisualizer, val use var attemptsToLock = 0 while (!gameOver) { sleep(1000 / 60) // Refresh rate - 60 frames per second. - //sleep(200) val commands = userInput.readCommands() for (cmd in commands) { val success: Boolean @@ -493,17 +495,23 @@ fun main(args: Array) { SDL_main(args) } -fun print_SDL_Error() { - externals.printf(SDL_GetError()!!.rawValue) -} +fun get_SDL_Error() = SDL_GetError()!!.asCString().toString() class SDL_Visualizer(val width: Int, val height: Int): GameFieldVisualizer, UserInput { private val CELL_SIZE = 20 + private val COLORS = 10 + private val CELLS_WIDTH = COLORS * CELL_SIZE + private val CELLS_HEIGHT = 3 * CELL_SIZE private val SYMBOL_SIZE = 21 private val INFO_MARGIN = 10 private val MARGIN = 2 private val BORDER_WIDTH = 18 private val INFO_SPACE_WIDTH = SYMBOL_SIZE * (2 + 8) + private val LINES_LABEL_WIDTH = 104 + private val SCORE_LABEL_WIDTH = 107 + private val LEVEL_LABEL_WIDTH = 103 + private val NEXT_LABEL_WIDTH = 85 + private val TETRISES_LABEL_WIDTH = 162 private val field: Field = Array(height) { ByteArray(width) } private val nextPieceField: Field = Array(4) { ByteArray(4) } @@ -516,57 +524,35 @@ class SDL_Visualizer(val width: Int, val height: Int): GameFieldVisualizer, User private val fieldHeight: Int private val window: CPointer private val renderer: CPointer - private val cells: CPointer - private val texts: CPointer + private val texture: CPointer init { if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { - //println("SDL_Init error: ${SDL_GetError()}") - print("SDL_CreateWindow Error: ") - print_SDL_Error() - println() + println("SDL_Init Error: ${get_SDL_Error()}") throw Error() } fieldWidth = width * (CELL_SIZE + MARGIN) + MARGIN + BORDER_WIDTH * 2 fieldHeight = height * (CELL_SIZE + MARGIN) + MARGIN + BORDER_WIDTH * 2 - val win = SDL_CreateWindow("Tetris", 100, 100, fieldWidth + INFO_SPACE_WIDTH, - fieldHeight, SDL_WindowFlags.SDL_WINDOW_SHOWN.value) - if (win == null) { - //println("SDL_CreateWindow Error: ${SDL_GetError()!!.asCString()}") - print("SDL_CreateWindow Error: ") - print_SDL_Error() - println() + val window = SDL_CreateWindow("Tetris", 100, 100, fieldWidth + INFO_SPACE_WIDTH, + fieldHeight, SDL_WINDOW_SHOWN) + if (window == null) { + println("SDL_CreateWindow Error: ${get_SDL_Error()}") SDL_Quit() throw Error() } - window = win + this.window = window - val ren = SDL_CreateRenderer(win, -1, (SDL_RendererFlags.SDL_RENDERER_ACCELERATED or SDL_RendererFlags.SDL_RENDERER_PRESENTVSYNC).value) - if (ren == null) { - SDL_DestroyWindow(win) - //println("SDL_CreateRenderer Error: ${SDL_GetError()!!.asCString()}") - println("SDL_CreateRenderer Error: ") - print_SDL_Error() - println() + val renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED or SDL_RENDERER_PRESENTVSYNC) + if (renderer == null) { + SDL_DestroyWindow(window) + println("SDL_CreateRenderer Error: ${get_SDL_Error()}") SDL_Quit() throw Error() } - renderer = ren + this.renderer = renderer - // TODO: merge together. - cells = loadImage(win, ren, "tetris_all.bmp") - texts = loadImage(win, ren, "tetris_cells_texts.bmp") -// if (SDL_SetTextureAlphaMod(tex, 63) != 0) { -// println("Unable to set alpha mod") -// print_SDL_Error() -// println() -// } -// if (SDL_SetTextureColorMod(tex, 127, 127, 127) != 0) { -// println("Unable to set color mod") -// print_SDL_Error() -// println() -// } + texture = loadImage(window, renderer, "tetris_all.bmp") } private fun loadImage(win: CPointer, ren: CPointer, imagePath: String): CPointer { @@ -574,10 +560,7 @@ class SDL_Visualizer(val width: Int, val height: Int): GameFieldVisualizer, User if (bmp == null) { SDL_DestroyRenderer(ren) SDL_DestroyWindow(win) - //println("SDL_LoadBMP Error: ${SDL_GetError()!!.asCString()}") - println("SDL_LoadBMP Error: ") - print_SDL_Error() - println() + println("SDL_LoadBMP_RW Error: ${get_SDL_Error()}") SDL_Quit() throw Error() } @@ -587,10 +570,7 @@ class SDL_Visualizer(val width: Int, val height: Int): GameFieldVisualizer, User if (tex == null) { SDL_DestroyRenderer(ren) SDL_DestroyWindow(win) - //println("SDL_CreateTextureFromSurface Error: ${SDL_GetError()!!.asCString()}") - println("SDL_CreateTextureFromSurface Error: ") - print_SDL_Error() - println() + println("SDL_CreateTextureFromSurface Error: ${get_SDL_Error()}") SDL_Quit() throw Error() } @@ -614,104 +594,182 @@ class SDL_Visualizer(val width: Int, val height: Int): GameFieldVisualizer, User override fun refresh() { SDL_RenderClear(renderer) - drawBorder() drawField() drawInfo() drawNextPiece() SDL_RenderPresent(renderer) } - private fun drawBorder() { - memScoped { - val rect = alloc() - rect.w.value = fieldWidth - rect.h.value = fieldHeight - rect.x.value = 0 - rect.y.value = 0 - SDL_SetRenderDrawColor(renderer, -128, 0, -128, -128) - SDL_RenderFillRect(renderer, rect.ptr.reinterpret()) - rect.w.value = fieldWidth - BORDER_WIDTH * 2 - rect.h.value = fieldHeight - BORDER_WIDTH * 2 - rect.x.value = BORDER_WIDTH - rect.y.value = BORDER_WIDTH - SDL_SetRenderDrawColor(renderer, 0, 0, 0, -128) - SDL_RenderFillRect(renderer, rect.ptr.reinterpret()) + private fun drawBorder(topLeftX: Int, topLeftY: Int, width: Int, height: Int) { + // Upper-left corner. + var srcX = CELLS_WIDTH + var srcY = 0 + var destX = topLeftX + var destY = topLeftY + copyRect(srcX, srcY, destX, destY, BORDER_WIDTH + MARGIN, BORDER_WIDTH) + + // Upper margin. + srcX += BORDER_WIDTH + MARGIN + destX += BORDER_WIDTH + MARGIN + for (i in 0..width - 1) { + copyRect(srcX, srcY, destX, destY, CELL_SIZE + MARGIN, BORDER_WIDTH) + destX += CELL_SIZE + MARGIN } + + // Upper-right corner. + srcX += CELL_SIZE + MARGIN + copyRect(srcX, srcY, destX, destY, BORDER_WIDTH, BORDER_WIDTH + MARGIN) + + // Right margin. + srcY += BORDER_WIDTH + MARGIN + destY += BORDER_WIDTH + MARGIN + for (j in 0..height - 1) { + copyRect(srcX, srcY, destX, destY, BORDER_WIDTH, CELL_SIZE + MARGIN) + destY += CELL_SIZE + MARGIN + } + + // Left margin. + srcX = CELLS_WIDTH + srcY = BORDER_WIDTH + destX = topLeftX + destY = topLeftY + BORDER_WIDTH + for (j in 0..height - 1) { + copyRect(srcX, srcY, destX, destY, BORDER_WIDTH, CELL_SIZE + MARGIN) + destY += CELL_SIZE + MARGIN + } + + // Left-down corner. + srcY += CELL_SIZE + MARGIN + copyRect(srcX, srcY, destX, destY, BORDER_WIDTH, BORDER_WIDTH + MARGIN) + + // Down marign. + srcX += BORDER_WIDTH + srcY += MARGIN + destX += BORDER_WIDTH + destY += MARGIN + for (i in 0..width - 1) { + copyRect(srcX, srcY, destX, destY, CELL_SIZE + MARGIN, BORDER_WIDTH) + destX += CELL_SIZE + MARGIN + + } + // Right-down corner. + srcX += CELL_SIZE + MARGIN + copyRect(srcX, srcY, destX, destY, BORDER_WIDTH + MARGIN, BORDER_WIDTH) } private fun drawField() { - drawField(field, width, height, MARGIN + BORDER_WIDTH, MARGIN + BORDER_WIDTH) + drawField(field = field, + topLeftX = 0, + topLeftY = 0, + width = width, + height = height) } private fun drawNextPiece() { - drawInt(103, 60 + SYMBOL_SIZE, fieldWidth + SYMBOL_SIZE, SYMBOL_SIZE * 11 + INFO_MARGIN * 6, 85, 0, 0) - drawField(nextPieceField, 4, 4, - fieldWidth + SYMBOL_SIZE + MARGIN + CELL_SIZE + MARGIN, - SYMBOL_SIZE * 12 + INFO_MARGIN * 7 + MARGIN) + drawInt(labelSrcX = LEVEL_LABEL_WIDTH, + labelSrcY = CELLS_HEIGHT + SYMBOL_SIZE, + labelDestX = fieldWidth + SYMBOL_SIZE, + labelDestY = getInfoY(5), + labelWidth = NEXT_LABEL_WIDTH, + totalDigits = 0, + value = 0) + drawField(field = nextPieceField, + topLeftX = fieldWidth + SYMBOL_SIZE, + topLeftY = getInfoY(6), + width = 4, + height = 4) } - private fun drawField(f: Field, w: Int, h: Int, x: Int, y: Int) { - memScoped { - val srcRect = alloc() - val destRect = alloc() - srcRect.w.value = CELL_SIZE - srcRect.h.value = CELL_SIZE - destRect.w.value = CELL_SIZE - destRect.h.value = CELL_SIZE - for (i in 0..h - 1) - for (j in 0..w - 1) { - val cell = f[i][j].toInt() - if (cell == 0) continue - srcRect.x.value = (cell - 1) * CELL_SIZE - srcRect.y.value = (level % 10) * CELL_SIZE - destRect.x.value = x + j * (CELL_SIZE + MARGIN) - destRect.y.value = y + i * (CELL_SIZE + MARGIN) - SDL_RenderCopy(renderer, cells, srcRect.ptr.reinterpret(), destRect.ptr.reinterpret()) - } - } + private fun drawField(field: Field, topLeftX: Int, topLeftY: Int, width: Int, height: Int) { + drawBorder(topLeftX = topLeftX, + topLeftY = topLeftY, + width = width, + height = height) + for (i in 0..height - 1) + for (j in 0..width - 1) { + val cell = field[i][j].toInt() + if (cell == 0) continue + copyRect(srcX = (level % COLORS) * CELL_SIZE, + srcY = (3 - cell) * CELL_SIZE, + destX = topLeftX + BORDER_WIDTH + MARGIN + j * (CELL_SIZE + MARGIN), + destY = topLeftY + BORDER_WIDTH + MARGIN + i * (CELL_SIZE + MARGIN), + width = CELL_SIZE, + height = CELL_SIZE) + } } private fun drawInfo() { - drawInt(104, 60, fieldWidth + SYMBOL_SIZE, SYMBOL_SIZE, 107, 6, score) - drawInt(0, 60, fieldWidth + SYMBOL_SIZE, SYMBOL_SIZE * 3 + INFO_MARGIN, 104, 3, linesCleared) - drawInt(0, 60 + SYMBOL_SIZE, fieldWidth + SYMBOL_SIZE, SYMBOL_SIZE * 5 + INFO_MARGIN * 2, 103, 2, level) - drawInt(0, 60 + SYMBOL_SIZE * 2, fieldWidth + SYMBOL_SIZE, SYMBOL_SIZE * 7 + INFO_MARGIN * 3, 162, 2, tetrises) + drawInt(labelSrcX = LINES_LABEL_WIDTH, + labelSrcY = CELLS_HEIGHT, + labelDestX = fieldWidth + SYMBOL_SIZE, + labelDestY = getInfoY(0), + labelWidth = SCORE_LABEL_WIDTH, + totalDigits = 6, + value = score) + drawInt(labelSrcX = 0, + labelSrcY = CELLS_HEIGHT, + labelDestX = fieldWidth + SYMBOL_SIZE, + labelDestY = getInfoY(1), + labelWidth = LINES_LABEL_WIDTH, + totalDigits = 3, + value = linesCleared) + drawInt(labelSrcX = 0, + labelSrcY = CELLS_HEIGHT + SYMBOL_SIZE, + labelDestX = fieldWidth + SYMBOL_SIZE, + labelDestY = getInfoY(2), + labelWidth = LEVEL_LABEL_WIDTH, + totalDigits = 2, + value = level) + drawInt(labelSrcX = 0, + labelSrcY = CELLS_HEIGHT + SYMBOL_SIZE * 2, + labelDestX = fieldWidth + SYMBOL_SIZE, + labelDestY = getInfoY(3), + labelWidth = TETRISES_LABEL_WIDTH, + totalDigits = 2, + value = tetrises) + } + + private fun getInfoY(line: Int): Int { + return SYMBOL_SIZE * (2 * line + 1) + INFO_MARGIN * line } private fun drawInt(labelSrcX: Int, labelSrcY: Int, labelDestX: Int, labelDestY: Int, labelWidth: Int, totalDigits: Int, value: Int) { + copyRect(srcX = labelSrcX, + srcY = labelSrcY, + destX = labelDestX, + destY = labelDestY, + width = labelWidth, + height = SYMBOL_SIZE) + val digits = IntArray(totalDigits) + var x = value + for (i in 0..totalDigits - 1) { + digits[totalDigits - 1 - i] = x % 10 + x = x / 10 + } + for (i in 0..totalDigits - 1) { + copyRect(srcX = digits[i] * SYMBOL_SIZE, + srcY = CELLS_HEIGHT + 3 * SYMBOL_SIZE, + destX = labelDestX + SYMBOL_SIZE + i * SYMBOL_SIZE, + destY = labelDestY + SYMBOL_SIZE, + width = SYMBOL_SIZE, + height = SYMBOL_SIZE) + } + } + + private fun copyRect(srcX: Int, srcY: Int, destX: Int, destY: Int, width: Int, height: Int) { memScoped { val srcRect = alloc() val destRect = alloc() - - srcRect.w.value = labelWidth - srcRect.h.value = SYMBOL_SIZE - srcRect.x.value = labelSrcX - srcRect.y.value = labelSrcY - destRect.w.value = labelWidth - destRect.h.value = SYMBOL_SIZE - destRect.x.value = labelDestX - destRect.y.value = labelDestY - - SDL_RenderCopy(renderer, texts, srcRect.ptr.reinterpret(), destRect.ptr.reinterpret()) - - val digits = IntArray(totalDigits) - var x = value - for (i in 0..totalDigits - 1) { - digits[totalDigits - 1 - i] = x % 10 - x = x / 10 - } - srcRect.w.value = SYMBOL_SIZE - srcRect.h.value = SYMBOL_SIZE - destRect.w.value = SYMBOL_SIZE - destRect.h.value = SYMBOL_SIZE - for (i in 0..totalDigits - 1) { - srcRect.x.value = digits[i] * SYMBOL_SIZE - srcRect.y.value = 123 // TODO: constant. - destRect.x.value = labelDestX + SYMBOL_SIZE + i * SYMBOL_SIZE - destRect.y.value = labelDestY + SYMBOL_SIZE - SDL_RenderCopy(renderer, texts, srcRect.ptr.reinterpret(), destRect.ptr.reinterpret()) - } + srcRect.w.value = width + srcRect.h.value = height + srcRect.x.value = srcX + srcRect.y.value = srcY + destRect.w.value = width + destRect.h.value = height + destRect.x.value = destX + destRect.y.value = destY + SDL_RenderCopy(renderer, texture, srcRect.ptr.reinterpret(), destRect.ptr.reinterpret()) } } @@ -741,21 +799,23 @@ class SDL_Visualizer(val width: Int, val height: Int): GameFieldVisualizer, User val event = alloc() var currentCommands = 0 while (SDL_PollEvent(event.ptr.reinterpret()) != 0) { - if (event.type.value == SDL_EventType.SDL_KEYDOWN.value - || event.type.value == SDL_EventType.SDL_KEYUP.value) { + if (event.type.value == SDL_KEYDOWN + || event.type.value == SDL_KEYUP) { val keyboardEvent = event.ptr.reinterpret().pointed val scancode = when (keyboardEvent.keysym.scancode.value) { - SDL_Scancode.SDL_SCANCODE_LEFT -> LEFT_PRESSED - SDL_Scancode.SDL_SCANCODE_RIGHT -> RIGHT_PRESSED - SDL_Scancode.SDL_SCANCODE_DOWN -> DOWN_PRESSED - SDL_Scancode.SDL_SCANCODE_Z -> Z_PRESSED - SDL_Scancode.SDL_SCANCODE_UP -> UP_PRESSED - SDL_Scancode.SDL_SCANCODE_ESCAPE -> ESC_PRESSED + SDL_SCANCODE_LEFT -> LEFT_PRESSED + SDL_SCANCODE_RIGHT -> RIGHT_PRESSED + SDL_SCANCODE_DOWN -> DOWN_PRESSED + SDL_SCANCODE_Z -> Z_PRESSED + SDL_SCANCODE_UP -> UP_PRESSED + SDL_SCANCODE_ESCAPE -> ESC_PRESSED else -> 0 } if (keyboardEvent.state.value.toInt() == SDL_PRESSED) { - if (pressedKeys and scancode != 0) + if (pressedKeys and scancode != 0) { + // DAS - delayed auto shift: https://tetris.wiki/DAS stickedKeys = stickedKeys or scancode + } currentCommands = currentCommands or scancode pressedKeys = pressedKeys or scancode } @@ -785,7 +845,7 @@ class SDL_Visualizer(val width: Int, val height: Int): GameFieldVisualizer, User } fun destroy() { - SDL_DestroyTexture(cells) + SDL_DestroyTexture(texture) SDL_DestroyRenderer(renderer) SDL_DestroyWindow(window) SDL_Quit() diff --git a/samples/tetris/tetris_all.bmp b/samples/tetris/tetris_all.bmp new file mode 100755 index 0000000000000000000000000000000000000000..e5c57a6cc4f93c32f561f550d346116d38a34e96 GIT binary patch literal 112374 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 XXTAV41iUTS&IJo(8b})jU@JupoCt@_ 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 MhbSp22?`4SKekwD+5i9m literal 0 HcmV?d00001 diff --git a/sdl_test/tetris_all.bmp b/sdl_test/tetris_all.bmp deleted file mode 100755 index ae4d33ba51cdd6c6b21284ee0a7a1282df6aedd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36054 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 diff --git a/sdl_test/tetris_cells_texts.bmp b/sdl_test/tetris_cells_texts.bmp deleted file mode 100755 index 058d090e350dfe846ad626524e4b18b9349e514e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99126 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

64m< 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