From f626e43786007ad8fa0135158452964f1ca79fba Mon Sep 17 00:00:00 2001 From: Emanuel Rabina Date: Thu, 25 Jul 2024 21:34:49 +1200 Subject: [PATCH] Counter-clockwise vertex order for sprites (front facing) --- .../source/nz/net/ultraq/redhorizon/classic/maps/Map.groovy | 2 +- .../ultraq/redhorizon/engine/extensions/JomlExtensions.groovy | 4 ++-- .../redhorizon/engine/graphics/opengl/OpenGLRenderer.groovy | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/redhorizon-classic/source/nz/net/ultraq/redhorizon/classic/maps/Map.groovy b/redhorizon-classic/source/nz/net/ultraq/redhorizon/classic/maps/Map.groovy index 4ec8f156..6523e33e 100644 --- a/redhorizon-classic/source/nz/net/ultraq/redhorizon/classic/maps/Map.groovy +++ b/redhorizon-classic/source/nz/net/ultraq/redhorizon/classic/maps/Map.groovy @@ -388,7 +388,7 @@ class Map extends Node { mapTiles.each { mapTile -> allVertices.addAll(new Rectanglef(0, 0, TILE_WIDTH, TILE_HEIGHT).translate(mapTile.position()) as Vector2f[]) allTextureUVs.addAll(tileSet.spriteSheet[mapTile.frameInTileSet()] as Vector2f[]) - allIndices.addAll([0, 1, 3, 1, 2, 3].collect { index -> index + indexOffset }) + allIndices.addAll([0, 1, 2, 0, 2, 3].collect { index -> index + indexOffset }) indexOffset += 4 } return new Tuple3(allVertices as Vector2f[], allTextureUVs as Vector2f[], allIndices as int[]) diff --git a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/extensions/JomlExtensions.groovy b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/extensions/JomlExtensions.groovy index 2465df3a..7683abcf 100644 --- a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/extensions/JomlExtensions.groovy +++ b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/extensions/JomlExtensions.groovy @@ -37,9 +37,9 @@ class JomlExtensions { if (clazz == Vector2f[]) { return new Vector2f[]{ new Vector2f(self.minX, self.minY), - new Vector2f(self.minX, self.maxY), + new Vector2f(self.maxX, self.minY), new Vector2f(self.maxX, self.maxY), - new Vector2f(self.maxX, self.minY) + new Vector2f(self.minX, self.maxY) } } throw new IllegalArgumentException("Cannot convert Rectanglef to type ${clazz}") diff --git a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/opengl/OpenGLRenderer.groovy b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/opengl/OpenGLRenderer.groovy index 31306dc7..53215163 100644 --- a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/opengl/OpenGLRenderer.groovy +++ b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/opengl/OpenGLRenderer.groovy @@ -240,7 +240,7 @@ class OpenGLRenderer implements GraphicsRenderer { surface as Vector2f[], Colour.WHITE, textureUVs as Vector2f[], - [0, 1, 3, 1, 2, 3] as int[], + [0, 1, 2, 0, 2, 3] as int[], false ) }