Fix newMesh(format, ...). Fix Mesh:attachAttribute.

Deprecate the mesh argument variant of attachAttribute in favor of the buffer argument variant.
This commit is contained in:
Alex Szpakowski
2020-07-21 21:46:45 -03:00
parent c2be89f130
commit 7ad5e5a21a
3 changed files with 6 additions and 3 deletions
+1
View File
@@ -307,6 +307,7 @@ void Mesh::attachAttribute(const std::string &name, Buffer *buffer, const std::s
else if (attachedAttributes.size() + 1 > VertexAttributes::MAX)
throw love::Exception("A maximum of %d attributes can be attached at once.", VertexAttributes::MAX);
newattrib.name = name;
newattrib.buffer = buffer;
newattrib.enabled = oldattrib.buffer.get() ? oldattrib.enabled : true;
newattrib.indexInBuffer = buffer->getDataMemberIndex(attachname);
+4 -3
View File
@@ -1690,7 +1690,7 @@ static Mesh *newCustomMesh(lua_State *L)
const char *name = luaL_checkstring(L, -3);
DataFormat format = DATAFORMAT_FLOAT;
DataFormat format = DATAFORMAT_MAX_ENUM;
const char *tname = luaL_checkstring(L, -2);
if (!lua_isnoneornil(L, -1))
@@ -1728,10 +1728,11 @@ static Mesh *newCustomMesh(lua_State *L)
else
luaL_error(L, "Invalid component count (%d) for vertex data type %s", components, tname);
}
else if (!getConstant(tname, format))
luax_enumerror(L, "vertex data format", getConstants(format), tname);
}
if (format == DATAFORMAT_MAX_ENUM && !getConstant(tname, format))
luax_enumerror(L, "vertex data format", getConstants(format), tname);
lua_pop(L, 4);
vertexformat.emplace_back(name, format);
}
+1
View File
@@ -300,6 +300,7 @@ int w_Mesh_attachAttribute(lua_State *L)
buffer = mesh->getVertexBuffer();
if (buffer == nullptr)
return luaL_error(L, "Mesh does not have its own vertex buffer.");
luax_markdeprecated(L, "Mesh:attachAttribute(name, mesh, ...)", API_METHOD, DEPRECATED_REPLACED, "Mesh:attachAttribute(name, buffer, ...)");
}
AttributeStep step = STEP_PER_VERTEX;