From 362ee4ad4f5fc755c677c6298c750c55eec25110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rob=20Piek=C3=A9?= Date: Mon, 27 Jan 2025 10:04:22 +0000 Subject: [PATCH] Adding (U)Int16(VecN) support to HdGetComponentFormat(), HdGetComponentCount(), HdDataSizeOfFormat() see https://github.com/PixarAnimationStudios/OpenUSD/issues/3496 --- pxr/imaging/hd/types.cpp | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/pxr/imaging/hd/types.cpp b/pxr/imaging/hd/types.cpp index 8224f03f11..3e72ec47e8 100644 --- a/pxr/imaging/hd/types.cpp +++ b/pxr/imaging/hd/types.cpp @@ -421,13 +421,23 @@ HdFormat HdGetComponentFormat(HdFormat f) case HdFormatFloat32Vec3: case HdFormatFloat32Vec4: return HdFormatFloat32; - case HdFormatFloat32UInt8: - return HdFormatFloat32UInt8; // treat as a single component + case HdFormatInt16: + case HdFormatInt16Vec2: + case HdFormatInt16Vec3: + case HdFormatInt16Vec4: + return HdFormatInt16; + case HdFormatUInt16: + case HdFormatUInt16Vec2: + case HdFormatUInt16Vec3: + case HdFormatUInt16Vec4: + return HdFormatUInt16; case HdFormatInt32: case HdFormatInt32Vec2: case HdFormatInt32Vec3: case HdFormatInt32Vec4: return HdFormatInt32; + case HdFormatFloat32UInt8: + return HdFormatFloat32UInt8; // treat as a single component default: return HdFormatInvalid; } @@ -440,18 +450,24 @@ size_t HdGetComponentCount(HdFormat f) case HdFormatSNorm8Vec2: case HdFormatFloat16Vec2: case HdFormatFloat32Vec2: + case HdFormatInt16Vec2: + case HdFormatUInt16Vec2: case HdFormatInt32Vec2: return 2; case HdFormatUNorm8Vec3: case HdFormatSNorm8Vec3: case HdFormatFloat16Vec3: case HdFormatFloat32Vec3: + case HdFormatInt16Vec3: + case HdFormatUInt16Vec3: case HdFormatInt32Vec3: return 3; case HdFormatUNorm8Vec4: case HdFormatSNorm8Vec4: case HdFormatFloat16Vec4: case HdFormatFloat32Vec4: + case HdFormatInt16Vec4: + case HdFormatUInt16Vec4: case HdFormatInt32Vec4: return 4; default: @@ -475,12 +491,20 @@ size_t HdDataSizeOfFormat(HdFormat f) case HdFormatSNorm8Vec4: return 4; case HdFormatFloat16: + case HdFormatInt16: + case HdFormatUInt16: return 2; case HdFormatFloat16Vec2: + case HdFormatInt16Vec2: + case HdFormatUInt16Vec2: return 4; case HdFormatFloat16Vec3: + case HdFormatInt16Vec3: + case HdFormatUInt16Vec3: return 6; case HdFormatFloat16Vec4: + case HdFormatInt16Vec4: + case HdFormatUInt16Vec4: return 8; case HdFormatFloat32: case HdFormatInt32: