mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-13 23:26:24 +00:00
Add IsAligned helper for values
This commit is contained in:
@@ -49,7 +49,7 @@ bool IsPowerOfTwo(size_t n) {
|
||||
return (n & (n - 1)) == 0;
|
||||
}
|
||||
|
||||
bool IsAligned(const void* ptr, size_t alignment) {
|
||||
bool IsPtrAligned(const void* ptr, size_t alignment) {
|
||||
ASSERT(IsPowerOfTwo(alignment));
|
||||
ASSERT(alignment != 0);
|
||||
return (reinterpret_cast<size_t>(ptr) & (alignment - 1)) == 0;
|
||||
@@ -61,6 +61,14 @@ void* AlignVoidPtr(void* ptr, size_t alignment) {
|
||||
return reinterpret_cast<void*>((reinterpret_cast<size_t>(ptr) + (alignment - 1)) & ~(alignment - 1));
|
||||
}
|
||||
|
||||
bool IsAligned(uint32_t value, size_t alignment) {
|
||||
ASSERT(alignment <= UINT32_MAX);
|
||||
ASSERT(IsPowerOfTwo(alignment));
|
||||
ASSERT(alignment != 0);
|
||||
uint32_t alignment32 = static_cast<uint32_t>(alignment);
|
||||
return (value & (alignment32 - 1)) == 0;
|
||||
}
|
||||
|
||||
uint32_t Align(uint32_t value, size_t alignment) {
|
||||
ASSERT(alignment <= UINT32_MAX);
|
||||
ASSERT(IsPowerOfTwo(alignment));
|
||||
|
||||
Reference in New Issue
Block a user