From 849d2758d7b9e0f3b5c1c11ef2f8f7a06d012c2d Mon Sep 17 00:00:00 2001 From: assiduous Date: Sun, 18 Oct 2020 10:02:51 -0700 Subject: Implemented Align for pointers; added tests --- Common/interface/Align.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Common/interface') diff --git a/Common/interface/Align.hpp b/Common/interface/Align.hpp index 1d0d43cc..658ec7ca 100644 --- a/Common/interface/Align.hpp +++ b/Common/interface/Align.hpp @@ -30,6 +30,8 @@ /// \file /// Alignment utilities +#include + #include "../../Platforms/Basic/interface/DebugUtilities.hpp" namespace Diligent @@ -48,6 +50,12 @@ inline T Align(T val, T alignment) return (val + (alignment - 1)) & ~(alignment - 1); } +template +inline T* Align(T* val, size_t alignment) +{ + return reinterpret_cast(Align(reinterpret_cast(val), static_cast(alignment))); +} + template inline T AlignDown(T val, T alignment) { @@ -55,4 +63,10 @@ inline T AlignDown(T val, T alignment) return val & ~(alignment - 1); } +template +inline T* AlignDown(T* val, size_t alignment) +{ + return reinterpret_cast(AlignDown(reinterpret_cast(val), static_cast(alignment))); +} + } // namespace Diligent -- cgit v1.2.3