mirror of
https://github.com/love2d/love.git
synced 2026-08-16 00:02:12 +02:00
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:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user