From b4403b2d8da63ad1a329bd7965b8cb095aec4107 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 31 Oct 2024 13:04:25 +0000 Subject: [PATCH] Test different whitespacing around pointers --- qrenderdoc/Code/BufferFormatter.cpp | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/qrenderdoc/Code/BufferFormatter.cpp b/qrenderdoc/Code/BufferFormatter.cpp index 5a6f0e459..2353a848a 100644 --- a/qrenderdoc/Code/BufferFormatter.cpp +++ b/qrenderdoc/Code/BufferFormatter.cpp @@ -5290,6 +5290,39 @@ ulong2 *arr[3]; CHECK(innerType.columns == 2); } + def = R"( +int *a; +int* a; +int*a; +int * a; +int * ; +int *; +int* ; +int*; +)"; + + parsed = BufferFormatter::ParseFormatString(def, 0, true); + + CHECK(parsed.errors.isEmpty()); + REQUIRE(parsed.fixed.type.members.size() == 8); + for(size_t i = 0; i < parsed.fixed.type.members.size(); i++) + { + CHECK(parsed.fixed.type.members[i].type.baseType == VarType::GPUPointer); + CHECK(parsed.fixed.type.members[i].type.arrayByteStride == 8); + CHECK(parsed.fixed.type.members[i].type.elements == 1); + + ShaderConstantType innerType; + innerType = + PointerTypeRegistry::GetTypeDescriptor(parsed.fixed.type.members[i].type.pointerTypeID); + REQUIRE(innerType.members.size() == 1); + CHECK(innerType.name.isEmpty()); + CHECK(innerType.members[0].name == parsed.fixed.type.members[i].name); + innerType = innerType.members[0].type; + CHECK(innerType.baseType == VarType::SInt); + CHECK(innerType.rows == 1); + CHECK(innerType.columns == 1); + } + def = R"( struct inner {