From fd89ab526c46aff502256353ce01ebefbf172b4f Mon Sep 17 00:00:00 2001 From: XProger Date: Thu, 16 Mar 2017 14:54:01 +0300 Subject: [PATCH] #22 fix sprite texture coordinates --- src/mesh.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mesh.h b/src/mesh.h index d5fd5c7..18cfedf 100644 --- a/src/mesh.h +++ b/src/mesh.h @@ -738,8 +738,8 @@ struct MeshBuilder { int count = triangle ? 3 : 4; for (int i = 0; i < count; i++) { Vertex &v = vertices[vCount + i]; - v.texCoord.x = ((tx + tex->texCoord[i].x) << 5) + 8; - v.texCoord.y = ((ty + tex->texCoord[i].y) << 5) + 8; + v.texCoord.x = ((tx + tex->texCoord[i].x) << 5) + 16; + v.texCoord.y = ((ty + tex->texCoord[i].y) << 5) + 16; v.texCoord.z = range; v.texCoord.w = frame; } @@ -788,10 +788,10 @@ struct MeshBuilder { int tx = (sprite.tile % 4) * 256; int ty = (sprite.tile / 4) * 256; - int16 u0 = ((tx + sprite.texCoord[0].x) << 5) + 8; - int16 v0 = ((ty + sprite.texCoord[0].y) << 5) + 8; - int16 u1 = ((tx + sprite.texCoord[1].x) << 5) + 8; - int16 v1 = ((ty + sprite.texCoord[1].y) << 5) + 8; + int16 u0 = ((tx + sprite.texCoord[0].x + 1) << 5); + int16 v0 = ((ty + sprite.texCoord[0].y + 1) << 5); + int16 u1 = ((tx + sprite.texCoord[1].x - 1) << 5); + int16 v1 = ((ty + sprite.texCoord[1].y - 1) << 5); quad[0].texCoord = { u0, v0, sprite.l, sprite.t }; quad[1].texCoord = { u1, v0, sprite.r, sprite.t };