diff options
Diffstat (limited to 'tools/render-test/render-test-main.cpp')
| -rw-r--r-- | tools/render-test/render-test-main.cpp | 14 |
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; |
