mirror of
https://github.com/love2d/love.git
synced 2026-08-15 07:41:11 +02:00
metal: fix shader:send with fields in an array-of-structs.
This commit is contained in:
@@ -288,8 +288,19 @@ void Shader::buildLocalUniforms(const spirv_cross::CompilerMSL &msl, const spirv
|
||||
switch (membertype.basetype)
|
||||
{
|
||||
case SPIRType::Struct:
|
||||
name += ".";
|
||||
buildLocalUniforms(msl, membertype, offset, name);
|
||||
if (membertype.op == spv::OpTypeArray)
|
||||
{
|
||||
for (uint32 i = 0; i < membertype.array[0]; i++)
|
||||
{
|
||||
std::string structname = name + "[" + std::to_string(i) + "].";
|
||||
buildLocalUniforms(msl, membertype, offset, structname);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string structname = name = ".";
|
||||
buildLocalUniforms(msl, membertype, offset, structname);
|
||||
}
|
||||
continue;
|
||||
case SPIRType::Int:
|
||||
case SPIRType::UInt:
|
||||
|
||||
Reference in New Issue
Block a user