summaryrefslogtreecommitdiffstats
path: root/tools/render-test/render-test-main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render-test/render-test-main.cpp')
-rw-r--r--tools/render-test/render-test-main.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp
index 325f12e49..87d9a246d 100644
--- a/tools/render-test/render-test-main.cpp
+++ b/tools/render-test/render-test-main.cpp
@@ -334,6 +334,17 @@ struct AssignValsFromLayoutContext
return SLANG_OK;
}
+ SlangResult assignArray(ShaderCursor const& dstCursor, ShaderInputLayout::ArrayVal* srcVal)
+ {
+ Index elementCounter = 0;
+ for(auto elementVal : srcVal->vals)
+ {
+ Index elementIndex = elementCounter++;
+ SLANG_RETURN_ON_FAIL(assign(dstCursor[elementIndex], elementVal));
+ }
+ return SLANG_OK;
+ }
+
SlangResult assign(ShaderCursor const& dstCursor, ShaderInputLayout::ValPtr const& srcVal)
{
auto& entryCursor = dstCursor;
@@ -360,6 +371,9 @@ struct AssignValsFromLayoutContext
case ShaderInputType::Aggregate:
return assignAggregate(dstCursor, (ShaderInputLayout::AggVal*) srcVal.Ptr());
+ case ShaderInputType::Array:
+ return assignArray(dstCursor, (ShaderInputLayout::ArrayVal*) srcVal.Ptr());
+
default:
assert(!"Unhandled type");
return SLANG_FAIL;