diff options
Diffstat (limited to 'tools/render-test/shader-input-layout.cpp')
| -rw-r--r-- | tools/render-test/shader-input-layout.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/render-test/shader-input-layout.cpp b/tools/render-test/shader-input-layout.cpp index 11c87c0d9..0d13e5ca1 100644 --- a/tools/render-test/shader-input-layout.cpp +++ b/tools/render-test/shader-input-layout.cpp @@ -390,13 +390,23 @@ namespace renderer_test parser.Read("["); while (!parser.IsEnd() && !parser.LookAhead("]")) { + bool negate = false; + if(parser.NextToken().Type == TokenType::OpSub) + { + parser.ReadToken(); + negate = true; + } + if (parser.NextToken().Type == TokenType::IntLiteral) { - entry.bufferData.add(parser.ReadUInt()); + uint32_t val = parser.ReadUInt(); + if(negate) val = uint32_t(-int32_t(val)); + entry.bufferData.add(val); } else { auto floatNum = parser.ReadFloat(); + if(negate) floatNum = -floatNum; entry.bufferData.add(*(unsigned int*)&floatNum); } } |
