Building VTK 9.6.2 with WebGPU enabled on Windows / MSVC fails to compile Rendering/WebGPU/vtkWebGPUComputeBuffer.h.
Group and Binding are declared as vtkIdType members but each accessor is defined twice, once hand-written returning uint32_t, and once via vtkGetMacro returning vtkIdType:
// lines 91-92
uint32_t GetGroup() const { return this->Group; }
vtkGetMacro(Group, vtkIdType); // expands to vtkIdType GetGroup() const
// lines 104-105
uint32_t GetBinding() const { return this->Binding; }
vtkGetMacro(Binding, vtkIdType); // expands to vtkIdType GetBinding() const
After macro expansion each is a redefinition of GetGroup() / GetBinding() differing only by return type (uint32_t vs vtkIdType), which is ill-formed:
vtkWebGPUComputeBuffer.h(92): error C2556:
'vtkIdType vtkWebGPUComputeBuffer::GetGroup(void) const': overloaded function differs only by return type from 'uint32_t vtkWebGPUComputeBuffer::GetGroup(void) const'
vtkWebGPUComputeBuffer.h(92): error C2371: 'vtkWebGPUComputeBuffer::GetGroup': redefinition; different basic types
Are we doing something wrong? Cause that must have gone through CI/CD at some point.
Thanks!