From b16c23f1f0738fc896233632d0fbffd69fadfa6b Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sat, 8 Jun 2019 03:33:56 +0900 Subject: [PATCH] unsafe array on lightmaprenderer: could this be possible? --- src/net/torvald/terrarum/gameworld/BlockLayer.kt | 5 ++++- src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/net/torvald/terrarum/gameworld/BlockLayer.kt b/src/net/torvald/terrarum/gameworld/BlockLayer.kt index fdca503c7..a1c109204 100644 --- a/src/net/torvald/terrarum/gameworld/BlockLayer.kt +++ b/src/net/torvald/terrarum/gameworld/BlockLayer.kt @@ -5,7 +5,10 @@ import net.torvald.terrarum.AppLoader.printdbg import sun.misc.Unsafe /** - * Created by minjaesong on 2016-01-17. + * Original version Created by minjaesong on 2016-01-17. + * Unsafe version Created by minjaesong on 2019-06-08. + * + * Note to self: refrain from using shorts--just do away with two bytes: different system have different endianness */ open class BlockLayer(val width: Int, val height: Int) : Disposable { diff --git a/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt b/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt index 5ffc266d1..4a3d8c1d8 100644 --- a/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt @@ -147,6 +147,7 @@ object LightmapRenderer { val ypos = y - for_y_start + overscan_open val xpos = x - for_x_start + overscan_open + // TODO as you can see above, we're already doing a boundary check; try using unsafe here? return lightmap[ypos][xpos] //return lightmap[ypos * LIGHTMAP_WIDTH + xpos] } @@ -174,6 +175,7 @@ object LightmapRenderer { val ypos = y - for_y_start + overscan_open val xpos = x - for_x_start + overscan_open + // TODO as you can see above, we're already doing a boundary check; try using unsafe here? lightmap[ypos][xpos] = applyFun.invoke(list[ypos][xpos], colour) //list[ypos * LIGHTMAP_WIDTH + xpos] = applyFun.invoke(list[ypos * LIGHTMAP_WIDTH + xpos], colour) }