mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-22 06:45:31 +00:00
* n64texconv and bin2c * mv tools/n64texconv tools/assets/ * fix * more light fixes * Silence -Wshadow for libimagequant * Add reference counting gc for palette objects in python bindings * Fix missing alignment in n64texconv_*_to_c functions Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Check palette size in n64texconv_image_from_png * accept memoryview as well as bytes for binary data * minimal doc on n64texconv_quantize_shared * fix a buffer size passed to libimagequant * assert pal count <= 256 on png write * Disable palette size check for input pngs, ZAPD fails the check * No OpenMP for clang * When reading an indexed png into a CI format, requantize if there are too many colors for the target texel size --------- Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
67 lines
1.6 KiB
C
67 lines
1.6 KiB
C
#ifndef ENDIAN_H_
|
|
#define ENDIAN_H_
|
|
|
|
#if defined(__linux__) || defined(__CYGWIN__)
|
|
#include <endian.h>
|
|
#elif defined(__APPLE__)
|
|
#include <libkern/OSByteOrder.h>
|
|
|
|
#define htobe16(x) OSSwapHostToBigInt16(x)
|
|
#define htole16(x) OSSwapHostToLittleInt16(x)
|
|
#define be16toh(x) OSSwapBigToHostInt16(x)
|
|
#define le16toh(x) OSSwapLittleToHostInt16(x)
|
|
|
|
#define htobe32(x) OSSwapHostToBigInt32(x)
|
|
#define htole32(x) OSSwapHostToLittleInt32(x)
|
|
#define be32toh(x) OSSwapBigToHostInt32(x)
|
|
#define le32toh(x) OSSwapLittleToHostInt32(x)
|
|
|
|
#define htobe64(x) OSSwapHostToBigInt64(x)
|
|
#define htole64(x) OSSwapHostToLittleInt64(x)
|
|
#define be64toh(x) OSSwapBigToHostInt64(x)
|
|
#define le64toh(x) OSSwapLittleToHostInt64(x)
|
|
#else
|
|
|
|
#if !defined(__BYTE_ORDER__)
|
|
#error "No endian define provided by compiler"
|
|
#endif
|
|
|
|
#if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
|
|
|
|
#define htobe16(x) (x)
|
|
#define htole16(x) __builtin_bswap16(x)
|
|
#define be16toh(x) (x)
|
|
#define le16toh(x) __builtin_bswap16(x)
|
|
|
|
#define htobe32(x) (x)
|
|
#define htole32(x) __builtin_bswap32(x)
|
|
#define be32toh(x) (x)
|
|
#define le32toh(x) __builtin_bswap32(x)
|
|
|
|
#define htobe64(x) (x)
|
|
#define htole64(x) __builtin_bswap64(x)
|
|
#define be64toh(x) (x)
|
|
#define le64toh(x) __builtin_bswap64(x)
|
|
|
|
#else
|
|
|
|
#define htobe16(x) __builtin_bswap16(x)
|
|
#define htole16(x) (x)
|
|
#define be16toh(x) __builtin_bswap16(x)
|
|
#define le16toh(x) (x)
|
|
|
|
#define htobe32(x) __builtin_bswap32(x)
|
|
#define htole32(x) (x)
|
|
#define be32toh(x) __builtin_bswap32(x)
|
|
#define le32toh(x) (x)
|
|
|
|
#define htobe64(x) __builtin_bswap64(x)
|
|
#define htole64(x) (x)
|
|
#define be64toh(x) __builtin_bswap64(x)
|
|
#define le64toh(x) (x)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|