[love2d] Fixed vertex color multiplier. We support both the old 0-255 and the new 0-1 RGBA range. Closes #1392.

This commit is contained in:
badlogic 2019-06-24 13:46:12 +02:00
parent a1c3cf269d
commit 2fee7b4bdf

View File

@ -200,20 +200,22 @@ function PolygonBatcher:draw (texture, vertices, uvs, numVertices, indices, colo
local vertexStart = self.verticesLength + 1 local vertexStart = self.verticesLength + 1
local vertexEnd = vertexStart + numVertices local vertexEnd = vertexStart + numVertices
local vertex = self.vertex local vertex = self.vertex
local colorScalar = 1;
if love._version_major <= 10 then colorScalar = 255 end
if not self.useTwoColorTint then if not self.useTwoColorTint then
vertex[5] = color.r * 255 vertex[5] = color.r * colorScalar
vertex[6] = color.g * 255 vertex[6] = color.g * colorScalar
vertex[7] = color.b * 255 vertex[7] = color.b * colorScalar
vertex[8] = color.a * 255 vertex[8] = color.a * colorScalar
else else
vertex[5] = color.r * 255 vertex[5] = color.r * colorScalar
vertex[6] = color.g * 255 vertex[6] = color.g * colorScalar
vertex[7] = color.b * 255 vertex[7] = color.b * colorScalar
vertex[8] = color.a * 255 vertex[8] = color.a * colorScalar
vertex[9] = darkColor.r * 255 vertex[9] = darkColor.r * colorScalar
vertex[10] = darkColor.g * 255 vertex[10] = darkColor.g * colorScalar
vertex[11] = darkColor.b * 255 vertex[11] = darkColor.b * colorScalar
vertex[12] = darkColor.a * 255 vertex[12] = darkColor.a * colorScalar
end end
local v = 1 local v = 1
@ -231,15 +233,15 @@ function PolygonBatcher:draw (texture, vertices, uvs, numVertices, indices, colo
vertex[2] = tempVertex.y vertex[2] = tempVertex.y
vertex[3] = tempVertex.u vertex[3] = tempVertex.u
vertex[4] = tempVertex.v vertex[4] = tempVertex.v
vertex[5] = tempVertex.light.r * 255 vertex[5] = tempVertex.light.r * colorScalar
vertex[6] = tempVertex.light.g * 255 vertex[6] = tempVertex.light.g * colorScalar
vertex[7] = tempVertex.light.b * 255 vertex[7] = tempVertex.light.b * colorScalar
vertex[8] = tempVertex.light.a * 255 vertex[8] = tempVertex.light.a * colorScalar
if (self.useTwoColorTint) then if (self.useTwoColorTint) then
vertex[9] = tempVertex.dark.r * 255 vertex[9] = tempVertex.dark.r * colorScalar
vertex[10] = tempVertex.dark.g * 255 vertex[10] = tempVertex.dark.g * colorScalar
vertex[11] = tempVertex.dark.b * 255 vertex[11] = tempVertex.dark.b * colorScalar
vertex[12] = tempVertex.dark.a * 255 vertex[12] = tempVertex.dark.a * colorScalar
end end
mesh:setVertex(vertexStart, vertex) mesh:setVertex(vertexStart, vertex)
vertexStart = vertexStart + 1 vertexStart = vertexStart + 1