1 | /* -*- tab-width: 4; -*- */ |
2 | /* vi: set sw=2 ts=4 expandtab: */ |
3 | |
4 | /* $Id: 02ea6de2d8db512ca3af08f48b98ab5f6c35e7e5 $ */ |
5 | |
6 | /* |
7 | * Copyright 2010-2020 The Khronos Group Inc. |
8 | * SPDX-License-Identifier: Apache-2.0 |
9 | */ |
10 | |
11 | #include <KHR/khrplatform.h> |
12 | #include "ktx.h" |
13 | |
14 | /* |
15 | * SwapEndian16: Swaps endianness in an array of 16-bit values |
16 | */ |
17 | void |
18 | _ktxSwapEndian16(khronos_uint16_t* pData16, ktx_size_t count) |
19 | { |
20 | for (ktx_size_t i = 0; i < count; ++i) |
21 | { |
22 | khronos_uint16_t x = *pData16; |
23 | *pData16++ = (x << 8) | (x >> 8); |
24 | } |
25 | } |
26 | |
27 | /* |
28 | * SwapEndian32: Swaps endianness in an array of 32-bit values |
29 | */ |
30 | void |
31 | _ktxSwapEndian32(khronos_uint32_t* pData32, ktx_size_t count) |
32 | { |
33 | for (ktx_size_t i = 0; i < count; ++i) |
34 | { |
35 | khronos_uint32_t x = *pData32; |
36 | *pData32++ = (x << 24) | ((x & 0xFF00) << 8) | ((x & 0xFF0000) >> 8) | (x >> 24); |
37 | } |
38 | } |
39 | |
40 | /* |
41 | * SwapEndian364: Swaps endianness in an array of 32-bit values |
42 | */ |
43 | void |
44 | _ktxSwapEndian64(khronos_uint64_t* pData64, ktx_size_t count) |
45 | { |
46 | for (ktx_size_t i = 0; i < count; ++i) |
47 | { |
48 | khronos_uint64_t x = *pData64; |
49 | *pData64++ = (x << 56) | ((x & 0xFF00) << 40) | ((x & 0xFF0000) << 24) |
50 | | ((x & 0xFF000000) << 8 ) | ((x & 0xFF00000000) >> 8) |
51 | | ((x & 0xFF0000000000) >> 24) |
52 | | ((x & 0xFF000000000000) << 40) | (x >> 56); |
53 | } |
54 | } |
55 | |
56 | |
57 | |
58 | |