Giter VIP home page Giter VIP logo

astc_decomp's Introduction

o/

I'm a hobby game-data-miner that went from using unitypack to writing my Unity asset unpacker and editor named UnityPy. For this, I also created some additional libraries to support the export and import of more asset types. Through this, I learned knowledge in various fields, such as binary formats, encryption, compression, textures, networking, and many more.

Irl I'm a computer science student that focuses on data security and network analysis. In the future I will likely publish some useful tools in those two areas, so stay tuned.

Tools

  • UnityPy - a library for Unity asset extraction and modification

    • TypetreeGenerator - a tool to generate the typetree structure for Unity MonoBehaviours
    • etcpak - a library for dxt & etc compression and decompression
    • astc_decomp - a library for astc decompression
    • tex2img - a library for decompressing various texture formats
  • protobuf_extractor - a tool to extract and reconstruct protobuf definitions

Game Data-Mines

astc_decomp's People

Contributors

k0lb3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

hengle bconstanzo

astc_decomp's Issues

Unable to compile for Python 3.9 on windows

Hi there,
when I clone this repo and try to build it for python 3.9, I have a couple of issues.
first, without any modifications to the repo, when building I get this error:

c1xx: fatal error C1083: Cannot open source file: 'astc_decomp.cpp': No such file or directory

I can resolve this by removing the subdirectory (and updating other files which reference the subdirectory) however now I am getting this:

build\temp.win-amd64-3.9\Release\astc_decomp.obj : warning LNK4042: object specified more than once; extras ignored
LINK : error LNK2001: unresolved external symbol PyInit_astc_decomp
build\temp.win-amd64-3.9\Release\astc_decomp.cp39-win_amd64.lib : fatal error LNK1120: 1 unresolved externals

not sure if that's the result of me changing the directory structure incompletely or not, but i'm assuming the first issue above shouldn't be a problem to begin w/?

Compiling fails on Ubuntu 19.10

Running pip3 install astc_decomp on Ubuntu 19.10 gives this result:

Collecting astc_decomp
  Using cached https://files.pythonhosted.org/packages/5c/ce/eff546453dc6c8b9915d519cffa580b849bfb11d2588d7e0d1b1f27afb10/astc_decomp-1.0.2.tar.gz
Building wheels for collected packages: astc-decomp
  Running setup.py bdist_wheel for astc-decomp ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-hzpitp6n/astc-decomp/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-j405c2jw --python-tag cp37:
  /usr/lib/python3.7/distutils/extension.py:131: UserWarning: Unknown Extension options: 'install_requires'
    warnings.warn(msg)
  running bdist_wheel
  running build
  running build_ext
  building 'astc_decomp' extension
  creating build
  creating build/temp.linux-x86_64-3.7
  creating build/temp.linux-x86_64-3.7/astc_dec
  x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Iastc_dec -I/usr/include/python3.7m -c astc_decomp.cpp -o build/temp.linux-x86_64-3.7/astc_decomp.o
  x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Iastc_dec -I/usr/include/python3.7m -c astc_dec/astc_decomp.cpp -o build/temp.linux-x86_64-3.7/astc_dec/astc_decomp.o
  In file included from astc_dec/astc_decomp.cpp:35:
  astc_dec/astc_decomp.h:36:17: error: ‘uint8_t’ was not declared in this scope
     36 | bool decompress(uint8_t* pDst, const uint8_t* data, bool isSRGB, int blockWidth, int blockHeight);
        |                 ^~~~~~~
  astc_dec/astc_decomp.h:36:26: error: ‘pDst’ was not declared in this scope
     36 | bool decompress(uint8_t* pDst, const uint8_t* data, bool isSRGB, int blockWidth, int blockHeight);
        |                          ^~~~
  astc_dec/astc_decomp.h:36:32: error: expected primary-expression before ‘const’
     36 | bool decompress(uint8_t* pDst, const uint8_t* data, bool isSRGB, int blockWidth, int blockHeight);
        |                                ^~~~~
  astc_dec/astc_decomp.h:36:53: error: expected primary-expression before ‘bool’
     36 | bool decompress(uint8_t* pDst, const uint8_t* data, bool isSRGB, int blockWidth, int blockHeight);
        |                                                     ^~~~
  astc_dec/astc_decomp.h:36:66: error: expected primary-expression before ‘int’
     36 | bool decompress(uint8_t* pDst, const uint8_t* data, bool isSRGB, int blockWidth, int blockHeight);
        |                                                                  ^~~
  astc_dec/astc_decomp.h:36:82: error: expected primary-expression before ‘int’
     36 | bool decompress(uint8_t* pDst, const uint8_t* data, bool isSRGB, int blockWidth, int blockHeight);
        |                                                                                  ^~~
  astc_dec/astc_decomp.h:36:97: error: expression list treated as compound expression in initializer [-fpermissive]
     36 | bool decompress(uint8_t* pDst, const uint8_t* data, bool isSRGB, int blockWidth, int blockHeight);
        |                                                                                                 ^
  astc_dec/astc_decomp.cpp:42:9: error: ‘uint8_t’ does not name a type; did you mean ‘u_int8_t’?
     42 | typedef uint8_t deUint8;
        |         ^~~~~~~
        |         u_int8_t
  astc_dec/astc_decomp.cpp:44:9: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
     44 | typedef uint32_t deUint32;
        |         ^~~~~~~~
        |         u_int32_t
  astc_dec/astc_decomp.cpp:46:9: error: ‘uint16_t’ does not name a type; did you mean ‘u_int16_t’?
     46 | typedef uint16_t deUint16;
        |         ^~~~~~~~
        |         u_int16_t
  astc_dec/astc_decomp.cpp:49:9: error: ‘uint64_t’ does not name a type; did you mean ‘u_int64_t’?
     49 | typedef uint64_t deUint64;
        |         ^~~~~~~~
        |         u_int64_t
  astc_dec/astc_decomp.cpp:89:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
     89 |   uint32_t m_c[4];
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:99:17: error: expected ‘)’ before ‘x’
     99 |   UVec4(uint32_t x, uint32_t y, uint32_t z, uint32_t w)
        |        ~        ^~
        |                 )
  astc_dec/astc_decomp.cpp:107:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    107 |   uint32_t x() const { return m_c[0]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:108:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    108 |   uint32_t y() const { return m_c[1]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:109:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    109 |   uint32_t z() const { return m_c[2]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:110:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    110 |   uint32_t w() const { return m_c[3]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:112:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    112 |   uint32_t& x() { return m_c[0]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:113:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    113 |   uint32_t& y() { return m_c[1]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:114:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    114 |   uint32_t& z() { return m_c[2]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:115:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    115 |   uint32_t& w() { return m_c[3]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:117:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    117 |   uint32_t operator[] (uint32_t idx) const { assert(idx < 4);  return m_c[idx]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp:118:3: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    118 |   uint32_t& operator[] (uint32_t idx) { assert(idx < 4);  return m_c[idx]; }
        |   ^~~~~~~~
        |   u_int32_t
  astc_dec/astc_decomp.cpp: In constructor ‘basisu::UVec4::UVec4()’:
  astc_dec/astc_decomp.cpp:93:4: error: ‘m_c’ was not declared in this scope
     93 |    m_c[0] = 0;
        |    ^~~
  astc_dec/astc_decomp.cpp: At global scope:
  astc_dec/astc_decomp.cpp:156:23: error: ‘uint32_t’ has not been declared
    156 |   int32_t operator[] (uint32_t idx) const { assert(idx < 4);  return m_c[idx]; }
        |                       ^~~~~~~~
  astc_dec/astc_decomp.cpp:157:24: error: declaration of ‘operator[]’ as non-function
    157 |   int32_t& operator[] (uint32_t idx) { assert(idx < 4);  return m_c[idx]; }
        |                        ^~~~~~~~
  astc_dec/astc_decomp.cpp:157:21: error: expected ‘;’ at end of member declaration
    157 |   int32_t& operator[] (uint32_t idx) { assert(idx < 4);  return m_c[idx]; }
        |                     ^
        |                      ;
  astc_dec/astc_decomp.cpp:157:32: error: expected ‘)’ before ‘idx’
    157 |   int32_t& operator[] (uint32_t idx) { assert(idx < 4);  return m_c[idx]; }
        |                       ~        ^~~~
        |                                )
  astc_dec/astc_decomp.cpp: In member function ‘basisu::UVec4 basisu::IVec4::asUint() const’:
  astc_dec/astc_decomp.cpp:153:99: error: no matching function for call to ‘basisu::UVec4::UVec4(const int&, const int&, const int&, const int&)’
    153 |    return UVec4(std::max(0, m_c[0]), std::max(0, m_c[1]), std::max(0, m_c[2]), std::max(0, m_c[3]));
        |                                                                                                   ^
  astc_dec/astc_decomp.cpp:91:3: note: candidate: ‘basisu::UVec4::UVec4()’
     91 |   UVec4()
        |   ^~~~~
  astc_dec/astc_decomp.cpp:91:3: note:   candidate expects 0 arguments, 4 provided
  astc_dec/astc_decomp.cpp:87:9: note: candidate: ‘constexpr basisu::UVec4::UVec4(const basisu::UVec4&)’
     87 |  struct UVec4
        |         ^~~~~
  astc_dec/astc_decomp.cpp:87:9: note:   candidate expects 1 argument, 4 provided
  astc_dec/astc_decomp.cpp:87:9: note: candidate: ‘constexpr basisu::UVec4::UVec4(basisu::UVec4&&)’
  astc_dec/astc_decomp.cpp:87:9: note:   candidate expects 1 argument, 4 provided
  astc_dec/astc_decomp.cpp: At global scope:
  astc_dec/astc_decomp.cpp:186:23: error: ‘uint32_t’ has not been declared
    186 |   int32_t operator[] (uint32_t idx) const { assert(idx < 3);  return m_c[idx]; }
        |                       ^~~~~~~~
  astc_dec/astc_decomp.cpp:187:24: error: declaration of ‘operator[]’ as non-function
    187 |   int32_t& operator[] (uint32_t idx) { assert(idx < 3);  return m_c[idx]; }
        |                        ^~~~~~~~
  astc_dec/astc_decomp.cpp:187:21: error: expected ‘;’ at end of member declaration
    187 |   int32_t& operator[] (uint32_t idx) { assert(idx < 3);  return m_c[idx]; }
        |                     ^
        |                      ;
  astc_dec/astc_decomp.cpp:187:32: error: expected ‘)’ before ‘idx’
    187 |   int32_t& operator[] (uint32_t idx) { assert(idx < 3);  return m_c[idx]; }
        |                       ~        ^~~~
        |                                )
  astc_dec/astc_decomp.cpp:190:9: error: ‘uint32_t’ does not name a type; did you mean ‘u_int32_t’?
    190 |  static uint32_t deDivRoundUp32(uint32_t a, uint32_t b)
        |         ^~~~~~~~
        |         u_int32_t
  astc_dec/astc_decomp.cpp:195:27: error: ‘uint32_t’ was not declared in this scope; did you mean ‘u_int32_t’?
    195 |  static bool deInBounds32(uint32_t v, uint32_t l, uint32_t h)
        |                           ^~~~~~~~
        |                           u_int32_t
  astc_dec/astc_decomp.cpp:195:39: error: ‘uint32_t’ was not declared in this scope; did you mean ‘u_int32_t’?
    195 |  static bool deInBounds32(uint32_t v, uint32_t l, uint32_t h)
        |                                       ^~~~~~~~
        |                                       u_int32_t
  astc_dec/astc_decomp.cpp:195:51: error: ‘uint32_t’ was not declared in this scope; did you mean ‘u_int32_t’?
    195 |  static bool deInBounds32(uint32_t v, uint32_t l, uint32_t h)
        |                                                   ^~~~~~~~
        |                                                   u_int32_t
  astc_dec/astc_decomp.cpp:195:61: error: expression list treated as compound expression in initializer [-fpermissive]
    195 |  static bool deInBounds32(uint32_t v, uint32_t l, uint32_t h)
        |                                                             ^
  astc_dec/astc_decomp.cpp:211:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    211 | inline deUint32 getBit (deUint32 src, int ndx)
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:216:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    216 | inline deUint32 getBits (deUint32 src, int low, int high)
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:225:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
    225 | inline bool isBitSet (deUint32 src, int ndx)
        | ^~~~~~
  astc_dec/astc_decomp.cpp:225:23: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
    225 | inline bool isBitSet (deUint32 src, int ndx)
        |                       ^~~~~~~~
        |                       deInt32
  astc_dec/astc_decomp.cpp:225:37: error: expected primary-expression before ‘int’
    225 | inline bool isBitSet (deUint32 src, int ndx)
        |                                     ^~~
  astc_dec/astc_decomp.cpp:225:44: error: expression list treated as compound expression in initializer [-fpermissive]
    225 | inline bool isBitSet (deUint32 src, int ndx)
        |                                            ^
  astc_dec/astc_decomp.cpp:229:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    229 | inline deUint32 reverseBits (deUint32 src, int numBits)
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:237:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    237 | inline deUint32 bitReplicationScale (deUint32 src, int numSrcBits, int numDstBits)
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp: In function ‘int basisu::astc::{anonymous}::computeNumRequiredBits(const basisu::astc::{anonymous}::ISEParams&, int)’:
  astc_dec/astc_decomp.cpp:276:31: error: ‘deDivRoundUp32’ was not declared in this scope
    276 |   case ISEMODE_TRIT:   return deDivRoundUp32(numValues*8, 5) + numValues*iseParams.numBits;
        |                               ^~~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp: At global scope:
  astc_dec/astc_decomp.cpp:320:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
    320 | inline int computeNumColorEndpointValues (deUint32 endpointMode)
        | ^~~~~~
  astc_dec/astc_decomp.cpp:320:43: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
    320 | inline int computeNumColorEndpointValues (deUint32 endpointMode)
        |                                           ^~~~~~~~
        |                                           deInt32
  astc_dec/astc_decomp.cpp:336:10: error: ‘deUint64’ does not name a type; did you mean ‘deInt64’?
    336 |  typedef deUint64 Word;
        |          ^~~~~~~~
        |          deInt64
  astc_dec/astc_decomp.cpp:339:23: error: ‘Word’ was not declared in this scope
    339 |   WORD_BYTES = sizeof(Word),
        |                       ^~~~
  astc_dec/astc_decomp.cpp:341:19: warning: division by zero [-Wdiv-by-zero]
    341 |   NUM_WORDS = 128 / WORD_BITS
        |               ~~~~^~~~~~~~~~~
  astc_dec/astc_decomp.cpp:341:21: error: division by zero is not a constant expression
    341 |   NUM_WORDS = 128 / WORD_BITS
        |                     ^~~~~~~~~
  astc_dec/astc_decomp.cpp:341:19: error: ‘(128 / 0)’ is not a constant expression
    341 |   NUM_WORDS = 128 / WORD_BITS
        |               ~~~~^~~~~~~~~~~
  astc_dec/astc_decomp.cpp:341:21: error: enumerator value for ‘NUM_WORDS’ is not an integer constant
    341 |   NUM_WORDS = 128 / WORD_BITS
        |                     ^~~~~~~~~
  astc_dec/astc_decomp.cpp:345:18: error: ‘deUint8’ does not name a type; did you mean ‘deInt8’?
    345 |  Block128 (const deUint8* src)
        |                  ^~~~~~~
        |                  deInt8
  astc_dec/astc_decomp.cpp:354:2: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    354 |  deUint32 getBit (int ndx) const
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:359:2: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    359 |  deUint32 getBits (int low, int high) const
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:384:2: error: ‘Word’ does not name a type
    384 |  Word m_words[NUM_WORDS];
        |  ^~~~
  astc_dec/astc_decomp.cpp: In constructor ‘basisu::astc::{anonymous}::Block128::Block128(const int*)’:
  astc_dec/astc_decomp.cpp:349:4: error: ‘m_words’ was not declared in this scope
    349 |    m_words[wordNdx] = 0;
        |    ^~~~~~~
  astc_dec/astc_decomp.cpp:351:26: error: ‘Word’ was not declared in this scope
    351 |     m_words[wordNdx] |= (Word)src[wordNdx*WORD_BYTES + byteNdx] << (8*byteNdx);
        |                          ^~~~
  astc_dec/astc_decomp.cpp: In member function ‘bool basisu::astc::{anonymous}::Block128::isBitSet(int) const’:
  astc_dec/astc_decomp.cpp:381:10: error: ‘getBit’ was not declared in this scope; did you mean ‘getpt’?
    381 |   return getBit(ndx) != 0;
        |          ^~~~~~
        |          getpt
  astc_dec/astc_decomp.cpp: At global scope:
  astc_dec/astc_decomp.cpp:399:2: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    399 |  deUint32 getNext (int num)
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:420:2: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    420 |  deUint32 m;
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:421:2: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    421 |  deUint32 tq; //!< Trit or quint value, depending on ISE mode.
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:422:2: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    422 |  deUint32 v;
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:456:2: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    456 |  deUint32 w[2];
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:458:33: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
    458 | ASTCBlockMode getASTCBlockMode (deUint32 blockModeData)
        |                                 ^~~~~~~~
        |                                 deInt32
  astc_dec/astc_decomp.cpp:459:1: error: expected ‘,’ or ‘;’ before ‘{’ token
    459 | {
        | ^
  astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::setASTCErrorColorBlock(void*, int, int, bool)’:
  astc_dec/astc_decomp.cpp:563:3: error: ‘deUint8’ was not declared in this scope; did you mean ‘deInt8’?
    563 |   deUint8* const dstU = (deUint8*)dst;
        |   ^~~~~~~
        |   deInt8
  astc_dec/astc_decomp.cpp:563:12: error: expected primary-expression before ‘const’
    563 |   deUint8* const dstU = (deUint8*)dst;
        |            ^~~~~
  astc_dec/astc_decomp.cpp:566:4: error: ‘dstU’ was not declared in this scope; did you mean ‘dst’?
    566 |    dstU[4*i + 0] = 0xff;
        |    ^~~~
        |    dst
  astc_dec/astc_decomp.cpp: In function ‘basisu::astc::{anonymous}::DecompressResult basisu::astc::{anonymous}::decodeVoidExtentBlock(void*, const basisu::astc::{anonymous}::Block128&, int, int, bool, bool)’:
  astc_dec/astc_decomp.cpp:586:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    586 |  const deUint32 minSExtent   = blockData.getBits(12, 24);
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:587:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    587 |  const deUint32 maxSExtent   = blockData.getBits(25, 37);
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:588:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    588 |  const deUint32 minTExtent   = blockData.getBits(38, 50);
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:589:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    589 |  const deUint32 maxTExtent   = blockData.getBits(51, 63);
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:590:34: error: ‘minSExtent’ was not declared in this scope
    590 |  const bool  allExtentsAllOnes = minSExtent == 0x1fff && maxSExtent == 0x1fff && minTExtent == 0x1fff && maxTExtent == 0x1fff;
        |                                  ^~~~~~~~~~
  astc_dec/astc_decomp.cpp:590:58: error: ‘maxSExtent’ was not declared in this scope
    590 |  const bool  allExtentsAllOnes = minSExtent == 0x1fff && maxSExtent == 0x1fff && minTExtent == 0x1fff && maxTExtent == 0x1fff;
        |                                                          ^~~~~~~~~~
  astc_dec/astc_decomp.cpp:590:82: error: ‘minTExtent’ was not declared in this scope
    590 |  const bool  allExtentsAllOnes = minSExtent == 0x1fff && maxSExtent == 0x1fff && minTExtent == 0x1fff && maxTExtent == 0x1fff;
        |                                                                                  ^~~~~~~~~~
  astc_dec/astc_decomp.cpp:590:106: error: ‘maxTExtent’ was not declared in this scope
    590 |  const bool  allExtentsAllOnes = minSExtent == 0x1fff && maxSExtent == 0x1fff && minTExtent == 0x1fff && maxTExtent == 0x1fff;
        |                                                                                                          ^~~~~~~~~~
  astc_dec/astc_decomp.cpp:597:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    597 |  const deUint32 rgba[4] =
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:606:3: error: ‘deUint8’ was not declared in this scope; did you mean ‘deInt8’?
    606 |   deUint8* const dstU = (deUint8*)dst;
        |   ^~~~~~~
        |   deInt8
  astc_dec/astc_decomp.cpp:606:12: error: expected primary-expression before ‘const’
    606 |   deUint8* const dstU = (deUint8*)dst;
        |            ^~~~~
  astc_dec/astc_decomp.cpp:609:4: error: ‘dstU’ was not declared in this scope; did you mean ‘dst’?
    609 |    dstU[i*4 + c] = (deUint8)((rgba[c] & 0xff00) >> 8);
        |    ^~~~
        |    dst
  astc_dec/astc_decomp.cpp:609:31: error: ‘rgba’ was not declared in this scope
    609 |    dstU[i*4 + c] = (deUint8)((rgba[c] & 0xff00) >> 8);
        |                               ^~~~
  astc_dec/astc_decomp.cpp:632:21: error: ‘rgba’ was not declared in this scope
    632 |     dstF[i*4 + c] = rgba[c] == 65535 ? 1.0f : (float)rgba[c] / 65536.0f;
        |                     ^~~~
  astc_dec/astc_decomp.cpp: At global scope:
  astc_dec/astc_decomp.cpp:637:32: error: variable or field ‘decodeColorEndpointModes’ declared void
    637 | void decodeColorEndpointModes (deUint32* endpointModesDst, const Block128& blockData, int numPartitions, int extraCemBitsStart)
        |                                ^~~~~~~~
  astc_dec/astc_decomp.cpp:637:32: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
    637 | void decodeColorEndpointModes (deUint32* endpointModesDst, const Block128& blockData, int numPartitions, int extraCemBitsStart)
        |                                ^~~~~~~~
        |                                deInt32
  astc_dec/astc_decomp.cpp:637:42: error: ‘endpointModesDst’ was not declared in this scope
    637 | void decodeColorEndpointModes (deUint32* endpointModesDst, const Block128& blockData, int numPartitions, int extraCemBitsStart)
        |                                          ^~~~~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:637:60: error: expected primary-expression before ‘const’
    637 | void decodeColorEndpointModes (deUint32* endpointModesDst, const Block128& blockData, int numPartitions, int extraCemBitsStart)
        |                                                            ^~~~~
  astc_dec/astc_decomp.cpp:637:87: error: expected primary-expression before ‘int’
    637 | void decodeColorEndpointModes (deUint32* endpointModesDst, const Block128& blockData, int numPartitions, int extraCemBitsStart)
        |                                                                                       ^~~
  astc_dec/astc_decomp.cpp:637:106: error: expected primary-expression before ‘int’
    637 | void decodeColorEndpointModes (deUint32* endpointModesDst, const Block128& blockData, int numPartitions, int extraCemBitsStart)
        |                                                                                                          ^~~
  astc_dec/astc_decomp.cpp:664:42: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    664 | int computeNumColorEndpointValues (const deUint32* endpointModes, int numPartitions)
        |                                          ^~~~~~~~
        |                                          deInt32
  astc_dec/astc_decomp.cpp:664:84: error: ‘int basisu::astc::{anonymous}::computeNumColorEndpointValues(const int*, int)’ redeclared as different kind of entity
    664 | int computeNumColorEndpointValues (const deUint32* endpointModes, int numPartitions)
        |                                                                                    ^
  astc_dec/astc_decomp.cpp:320:12: note: previous declaration ‘int basisu::astc::{anonymous}::computeNumColorEndpointValues’
    320 | inline int computeNumColorEndpointValues (deUint32 endpointMode)
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp: In function ‘int basisu::astc::{anonymous}::computeNumColorEndpointValues(const int*, int)’:
  astc_dec/astc_decomp.cpp:668:59: error: ‘basisu::astc::{anonymous}::computeNumColorEndpointValues’ cannot be used as a function
    668 |   result += computeNumColorEndpointValues(endpointModes[i]);
        |                                                           ^
  astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::decodeISETritBlock(basisu::astc::{anonymous}::ISEDecodedResult*, int, basisu::astc::{anonymous}::BitAccessStream&, int)’:
  astc_dec/astc_decomp.cpp:674:2: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
    674 |  deUint32 m[5];
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:675:2: error: ‘m’ was not declared in this scope
    675 |  m[0]   = data.getNext(numBits);
        |  ^
  astc_dec/astc_decomp.cpp:675:16: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    675 |  m[0]   = data.getNext(numBits);
        |                ^~~~~~~
  astc_dec/astc_decomp.cpp:676:10: error: expected ‘;’ before ‘T01’
    676 |  deUint32 T01 = data.getNext(2);
        |          ^~~~
        |          ;
  astc_dec/astc_decomp.cpp:677:16: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    677 |  m[1]   = data.getNext(numBits);
        |                ^~~~~~~
  astc_dec/astc_decomp.cpp:678:10: error: expected ‘;’ before ‘T23’
    678 |  deUint32 T23 = data.getNext(2);
        |          ^~~~
        |          ;
  astc_dec/astc_decomp.cpp:679:16: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    679 |  m[2]   = data.getNext(numBits);
        |                ^~~~~~~
  astc_dec/astc_decomp.cpp:680:10: error: expected ‘;’ before ‘T4’
    680 |  deUint32 T4  = data.getNext(1);
        |          ^~~
        |          ;
  astc_dec/astc_decomp.cpp:681:16: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    681 |  m[3]   = data.getNext(numBits);
        |                ^~~~~~~
  astc_dec/astc_decomp.cpp:682:10: error: expected ‘;’ before ‘T56’
    682 |  deUint32 T56 = data.getNext(2);
        |          ^~~~
        |          ;
  astc_dec/astc_decomp.cpp:683:16: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    683 |  m[4]   = data.getNext(numBits);
        |                ^~~~~~~
  astc_dec/astc_decomp.cpp:684:10: error: expected ‘;’ before ‘T7’
    684 |  deUint32 T7  = data.getNext(1);
        |          ^~~
        |          ;
  astc_dec/astc_decomp.cpp:688:11: error: ‘T23’ was not declared in this scope
    688 |   case 1: T23  = 0;
        |           ^~~
  astc_dec/astc_decomp.cpp:689:11: error: ‘T4’ was not declared in this scope
    689 |   case 2: T4  = 0;
        |           ^~
  astc_dec/astc_decomp.cpp:690:11: error: ‘T56’ was not declared in this scope
    690 |   case 3: T56  = 0;
        |           ^~~
  astc_dec/astc_decomp.cpp:691:11: error: ‘T7’ was not declared in this scope
    691 |   case 4: T7  = 0;
        |           ^~
  astc_dec/astc_decomp.cpp:696:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    696 |  const deUint32 T = (T7 << 7) | (T56 << 5) | (T4 << 4) | (T23 << 2) | (T01 << 0);
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:697:15: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    697 |  static const deUint32 tritsFromT[256][5] =
        |               ^~~~~~~~
        |               deInt32
  astc_dec/astc_decomp.cpp:716:17: error: ISO C++ forbids declaration of ‘deUint32’ with no type [-fpermissive]
    716 |  const deUint32 (& trits)[5] = tritsFromT[T];
        |                 ^
  astc_dec/astc_decomp.cpp:716:20: error: ‘trits’ was not declared in this scope
    716 |  const deUint32 (& trits)[5] = tritsFromT[T];
        |                    ^~~~~
  astc_dec/astc_decomp.cpp:719:10: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘m’
    719 |   dst[i].m = m[i];
        |          ^
  astc_dec/astc_decomp.cpp:720:10: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘tq’
    720 |   dst[i].tq = trits[i];
        |          ^~
  astc_dec/astc_decomp.cpp:721:10: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘v’
    721 |   dst[i].v = (trits[i] << numBits) + m[i];
        |          ^
  astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::decodeISEQuintBlock(basisu::astc::{anonymous}::ISEDecodedResult*, int, basisu::astc::{anonymous}::BitAccessStream&, int)’:
  astc_dec/astc_decomp.cpp:727:2: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
    727 |  deUint32 m[3];
        |  ^~~~~~~~
        |  deInt32
  astc_dec/astc_decomp.cpp:728:2: error: ‘m’ was not declared in this scope
    728 |  m[0]   = data.getNext(numBits);
        |  ^
  astc_dec/astc_decomp.cpp:728:16: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    728 |  m[0]   = data.getNext(numBits);
        |                ^~~~~~~
  astc_dec/astc_decomp.cpp:729:10: error: expected ‘;’ before ‘Q012’
    729 |  deUint32 Q012 = data.getNext(3);
        |          ^~~~~
        |          ;
  astc_dec/astc_decomp.cpp:730:16: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    730 |  m[1]   = data.getNext(numBits);
        |                ^~~~~~~
  astc_dec/astc_decomp.cpp:731:10: error: expected ‘;’ before ‘Q34’
    731 |  deUint32 Q34 = data.getNext(2);
        |          ^~~~
        |          ;
  astc_dec/astc_decomp.cpp:732:16: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    732 |  m[2]   = data.getNext(numBits);
        |                ^~~~~~~
  astc_dec/astc_decomp.cpp:733:10: error: expected ‘;’ before ‘Q56’
    733 |  deUint32 Q56 = data.getNext(2);
        |          ^~~~
        |          ;
  astc_dec/astc_decomp.cpp:737:11: error: ‘Q34’ was not declared in this scope
    737 |   case 1: Q34  = 0;
        |           ^~~
  astc_dec/astc_decomp.cpp:738:11: error: ‘Q56’ was not declared in this scope
    738 |   case 2: Q56  = 0;
        |           ^~~
  astc_dec/astc_decomp.cpp:743:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    743 |  const deUint32 Q = (Q56 << 5) | (Q34 << 3) | (Q012 << 0);
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:744:15: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    744 |  static const deUint32 quintsFromQ[256][3] =
        |               ^~~~~~~~
        |               deInt32
  astc_dec/astc_decomp.cpp:755:17: error: ISO C++ forbids declaration of ‘deUint32’ with no type [-fpermissive]
    755 |  const deUint32 (& quints)[3] = quintsFromQ[Q];
        |                 ^
  astc_dec/astc_decomp.cpp:755:20: error: ‘quints’ was not declared in this scope; did you mean ‘uint’?
    755 |  const deUint32 (& quints)[3] = quintsFromQ[Q];
        |                    ^~~~~~
        |                    uint
  astc_dec/astc_decomp.cpp:758:10: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘m’
    758 |   dst[i].m = m[i];
        |          ^
  astc_dec/astc_decomp.cpp:759:10: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘tq’
    759 |   dst[i].tq = quints[i];
        |          ^~
  astc_dec/astc_decomp.cpp:760:10: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘v’
    760 |   dst[i].v = (quints[i] << numBits) + m[i];
        |          ^
  astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::decodeISEBitBlock(basisu::astc::{anonymous}::ISEDecodedResult*, basisu::astc::{anonymous}::BitAccessStream&, int)’:
  astc_dec/astc_decomp.cpp:765:9: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘m’
    765 |  dst[0].m = data.getNext(numBits);
        |         ^
  astc_dec/astc_decomp.cpp:765:18: error: ‘class basisu::astc::{anonymous}::BitAccessStream’ has no member named ‘getNext’
    765 |  dst[0].m = data.getNext(numBits);
        |                  ^~~~~~~
  astc_dec/astc_decomp.cpp:766:9: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘v’
    766 |  dst[0].v = dst[0].m;
        |         ^
  astc_dec/astc_decomp.cpp:766:20: error: ‘struct basisu::astc::{anonymous}::ISEDecodedResult’ has no member named ‘m’
    766 |  dst[0].v = dst[0].m;
        |                    ^
  astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::decodeISE(basisu::astc::{anonymous}::ISEDecodedResult*, int, basisu::astc::{anonymous}::BitAccessStream&, const basisu::astc::{anonymous}::ISEParams&)’:
  astc_dec/astc_decomp.cpp:772:25: error: ‘deDivRoundUp32’ was not declared in this scope
    772 |   const int numBlocks = deDivRoundUp32(numValues, 5);
        |                         ^~~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:781:25: error: ‘deDivRoundUp32’ was not declared in this scope
    781 |   const int numBlocks = deDivRoundUp32(numValues, 3);
        |                         ^~~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp: At global scope:
  astc_dec/astc_decomp.cpp:795:32: error: variable or field ‘unquantizeColorEndpoints’ declared void
    795 | void unquantizeColorEndpoints (deUint32* dst, const ISEDecodedResult* iseResults, int numEndpoints, const ISEParams& iseParams)
        |                                ^~~~~~~~
  astc_dec/astc_decomp.cpp:795:32: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
    795 | void unquantizeColorEndpoints (deUint32* dst, const ISEDecodedResult* iseResults, int numEndpoints, const ISEParams& iseParams)
        |                                ^~~~~~~~
        |                                deInt32
  astc_dec/astc_decomp.cpp:795:42: error: ‘dst’ was not declared in this scope
    795 | void unquantizeColorEndpoints (deUint32* dst, const ISEDecodedResult* iseResults, int numEndpoints, const ISEParams& iseParams)
        |                                          ^~~
  astc_dec/astc_decomp.cpp:795:47: error: expected primary-expression before ‘const’
    795 | void unquantizeColorEndpoints (deUint32* dst, const ISEDecodedResult* iseResults, int numEndpoints, const ISEParams& iseParams)
        |                                               ^~~~~
  astc_dec/astc_decomp.cpp:795:83: error: expected primary-expression before ‘int’
    795 | void unquantizeColorEndpoints (deUint32* dst, const ISEDecodedResult* iseResults, int numEndpoints, const ISEParams& iseParams)
        |                                                                                   ^~~
  astc_dec/astc_decomp.cpp:795:101: error: expected primary-expression before ‘const’
    795 | void unquantizeColorEndpoints (deUint32* dst, const ISEDecodedResult* iseResults, int numEndpoints, const ISEParams& iseParams)
        |                                                                                                     ^~~~~
  astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::bitTransferSigned(deInt32&, deInt32&)’:
  astc_dec/astc_decomp.cpp:841:19: error: ‘basisu::astc::{anonymous}::isBitSet’ cannot be used as a function
    841 |  if (isBitSet(a, 5))
        |                   ^
  astc_dec/astc_decomp.cpp: In function ‘basisu::UVec4 basisu::astc::{anonymous}::clampedRGBA(const basisu::IVec4&)’:
  astc_dec/astc_decomp.cpp:849:35: error: no matching function for call to ‘basisu::UVec4::UVec4(int, int, int, int)’
    849 |   basisu::clamp(rgba.w(), 0, 0xff));
        |                                   ^
  astc_dec/astc_decomp.cpp:91:3: note: candidate: ‘basisu::UVec4::UVec4()’
     91 |   UVec4()
        |   ^~~~~
  astc_dec/astc_decomp.cpp:91:3: note:   candidate expects 0 arguments, 4 provided
  astc_dec/astc_decomp.cpp:87:9: note: candidate: ‘constexpr basisu::UVec4::UVec4(const basisu::UVec4&)’
     87 |  struct UVec4
        |         ^~~~~
  astc_dec/astc_decomp.cpp:87:9: note:   candidate expects 1 argument, 4 provided
  astc_dec/astc_decomp.cpp:87:9: note: candidate: ‘constexpr basisu::UVec4::UVec4(basisu::UVec4&&)’
  astc_dec/astc_decomp.cpp:87:9: note:   candidate expects 1 argument, 4 provided
  astc_dec/astc_decomp.cpp: At global scope:
  astc_dec/astc_decomp.cpp:855:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
    855 | inline bool isColorEndpointModeHDR (deUint32 mode)
        | ^~~~~~
  astc_dec/astc_decomp.cpp:855:37: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
    855 | inline bool isColorEndpointModeHDR (deUint32 mode)
        |                                     ^~~~~~~~
        |                                     deInt32
  astc_dec/astc_decomp.cpp:864:52: error: ‘deUint32’ has not been declared
    864 | void decodeHDREndpointMode7 (UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3)
        |                                                    ^~~~~~~~
  astc_dec/astc_decomp.cpp:864:65: error: ‘deUint32’ has not been declared
    864 | void decodeHDREndpointMode7 (UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3)
        |                                                                 ^~~~~~~~
  astc_dec/astc_decomp.cpp:864:78: error: ‘deUint32’ has not been declared
    864 | void decodeHDREndpointMode7 (UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3)
        |                                                                              ^~~~~~~~
  astc_dec/astc_decomp.cpp:864:91: error: ‘deUint32’ has not been declared
    864 | void decodeHDREndpointMode7 (UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3)
        |                                                                                           ^~~~~~~~
  astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::decodeHDREndpointMode7(basisu::UVec4&, basisu::UVec4&, int, int, int, int)’:
  astc_dec/astc_decomp.cpp:866:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    866 |  const deUint32 m10  = getBit(v1, 7) | (getBit(v2, 7) << 1);
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:867:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    867 |  const deUint32 m23  = getBits(v0, 6, 7);
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:868:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    868 |  const deUint32 majComp = m10 != 3 ? m10
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:871:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    871 |  const deUint32 mode  = m10 != 3 ? m23
        |        ^~~~~~~~
        |        deInt32
  astc_dec/astc_decomp.cpp:874:28: error: ‘getBits’ was not declared in this scope; did you mean ‘getpt’?
    874 |  deInt32   red  = (deInt32)getBits(v0, 0, 5);
        |                            ^~~~~~~
        |                            getpt
  astc_dec/astc_decomp.cpp:881:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    881 |   const deUint32 x0 = getBit(v1, 6);
        |         ^~~~~~~~
        |         deInt32
  astc_dec/astc_decomp.cpp:882:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    882 |   const deUint32 x1 = getBit(v1, 5);
        |         ^~~~~~~~
        |         deInt32
  astc_dec/astc_decomp.cpp:883:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    883 |   const deUint32 x2 = getBit(v2, 6);
        |         ^~~~~~~~
        |         deInt32
  astc_dec/astc_decomp.cpp:884:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    884 |   const deUint32 x3 = getBit(v2, 5);
        |         ^~~~~~~~
        |         deInt32
  astc_dec/astc_decomp.cpp:885:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    885 |   const deUint32 x4 = getBit(v3, 7);
        |         ^~~~~~~~
        |         deInt32
  astc_dec/astc_decomp.cpp:886:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    886 |   const deUint32 x5 = getBit(v3, 6);
        |         ^~~~~~~~
        |         deInt32
  astc_dec/astc_decomp.cpp:887:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
    887 |   const deUint32 x6 = getBit(v3, 5);
        |         ^~~~~~~~
        |         deInt32
  astc_dec/astc_decomp.cpp:892:11: error: ‘mode’ was not declared in this scope; did you mean ‘mode_t’?
    892 |   switch (mode)
        |           ^~~~
        |           mode_t
  astc_dec/astc_decomp.cpp:880:88: error: ‘x0’ was not declared in this scope; did you mean ‘e0’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:894:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    894 |    case 0: ASSIGN_X_BITS(R,9,  R,8,  R,7,  R,10,  R,6,  S,6,   S,5); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:104: error: ‘x1’ was not declared in this scope; did you mean ‘e1’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:894:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    894 |    case 0: ASSIGN_X_BITS(R,9,  R,8,  R,7,  R,10,  R,6,  S,6,   S,5); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:120: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:894:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    894 |    case 0: ASSIGN_X_BITS(R,9,  R,8,  R,7,  R,10,  R,6,  S,6,   S,5); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:136: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:894:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    894 |    case 0: ASSIGN_X_BITS(R,9,  R,8,  R,7,  R,10,  R,6,  S,6,   S,5); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:152: error: ‘x4’ was not declared in this scope
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:894:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    894 |    case 0: ASSIGN_X_BITS(R,9,  R,8,  R,7,  R,10,  R,6,  S,6,   S,5); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:168: error: ‘x5’ was not declared in this scope
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:894:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    894 |    case 0: ASSIGN_X_BITS(R,9,  R,8,  R,7,  R,10,  R,6,  S,6,   S,5); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:184: error: ‘x6’ was not declared in this scope
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:894:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    894 |    case 0: ASSIGN_X_BITS(R,9,  R,8,  R,7,  R,10,  R,6,  S,6,   S,5); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:88: error: ‘x0’ was not declared in this scope; did you mean ‘e0’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:895:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    895 |    case 1: ASSIGN_X_BITS(R,8,  G,5,  R,7,  B,5,   R,6,  R,10,  R,9); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:104: error: ‘x1’ was not declared in this scope; did you mean ‘e1’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:895:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    895 |    case 1: ASSIGN_X_BITS(R,8,  G,5,  R,7,  B,5,   R,6,  R,10,  R,9); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:120: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:895:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    895 |    case 1: ASSIGN_X_BITS(R,8,  G,5,  R,7,  B,5,   R,6,  R,10,  R,9); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:136: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:895:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    895 |    case 1: ASSIGN_X_BITS(R,8,  G,5,  R,7,  B,5,   R,6,  R,10,  R,9); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:152: error: ‘x4’ was not declared in this scope
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:895:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    895 |    case 1: ASSIGN_X_BITS(R,8,  G,5,  R,7,  B,5,   R,6,  R,10,  R,9); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:168: error: ‘x5’ was not declared in this scope
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:895:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    895 |    case 1: ASSIGN_X_BITS(R,8,  G,5,  R,7,  B,5,   R,6,  R,10,  R,9); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:184: error: ‘x6’ was not declared in this scope
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                                                                                                                        ^~
  astc_dec/astc_decomp.cpp:879:53: note: in definition of macro ‘SHOR’
    879 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
        |                                                     ^~~~~~~
  astc_dec/astc_decomp.cpp:895:12: note: in expansion of macro ‘ASSIGN_X_BITS’
    895 |    case 1: ASSIGN_X_BITS(R,8,  G,5,  R,7,  B,5,   R,6,  R,10,  R,9); break;
        |            ^~~~~~~~~~~~~
  astc_dec/astc_decomp.cpp:880:88: error: ‘x0’ was not declared in this scope; did you mean ‘e0’?
    880 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5, V6,S6) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); SHOR(V6,S6,x6); } while (false)
        |                                                                                        ^~


(and so on...)



    astc_dec/astc_decomp.cpp:949:113: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:959:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      959 |     case 1: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:129: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:959:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      959 |     case 1: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:145: error: ‘x4’ was not declared in this scope; did you mean ‘v4’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:959:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      959 |     case 1: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:161: error: ‘x5’ was not declared in this scope; did you mean ‘v5’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:959:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      959 |     case 1: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:81: error: ‘x0’ was not declared in this scope; did you mean ‘d0’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:960:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      960 |     case 2: ASSIGN_X_BITS(a,9,   c,6,    d0,6,  d1,6,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:97: error: ‘x1’ was not declared in this scope; did you mean ‘d1’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:960:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      960 |     case 2: ASSIGN_X_BITS(a,9,   c,6,    d0,6,  d1,6,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:113: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:960:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      960 |     case 2: ASSIGN_X_BITS(a,9,   c,6,    d0,6,  d1,6,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:129: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:960:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      960 |     case 2: ASSIGN_X_BITS(a,9,   c,6,    d0,6,  d1,6,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:145: error: ‘x4’ was not declared in this scope; did you mean ‘v4’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:960:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      960 |     case 2: ASSIGN_X_BITS(a,9,   c,6,    d0,6,  d1,6,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:161: error: ‘x5’ was not declared in this scope; did you mean ‘v5’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:960:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      960 |     case 2: ASSIGN_X_BITS(a,9,   c,6,    d0,6,  d1,6,  d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:81: error: ‘x0’ was not declared in this scope; did you mean ‘d0’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:961:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      961 |     case 3: ASSIGN_X_BITS(b0,6,  b1,6,   a,9,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:97: error: ‘x1’ was not declared in this scope; did you mean ‘d1’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:961:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      961 |     case 3: ASSIGN_X_BITS(b0,6,  b1,6,   a,9,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:113: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:961:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      961 |     case 3: ASSIGN_X_BITS(b0,6,  b1,6,   a,9,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:129: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:961:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      961 |     case 3: ASSIGN_X_BITS(b0,6,  b1,6,   a,9,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:145: error: ‘x4’ was not declared in this scope; did you mean ‘v4’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:961:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      961 |     case 3: ASSIGN_X_BITS(b0,6,  b1,6,   a,9,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:161: error: ‘x5’ was not declared in this scope; did you mean ‘v5’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:961:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      961 |     case 3: ASSIGN_X_BITS(b0,6,  b1,6,   a,9,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:81: error: ‘x0’ was not declared in this scope; did you mean ‘d0’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:962:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      962 |     case 4: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:97: error: ‘x1’ was not declared in this scope; did you mean ‘d1’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:962:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      962 |     case 4: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:113: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:962:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      962 |     case 4: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:129: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:962:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      962 |     case 4: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:145: error: ‘x4’ was not declared in this scope; did you mean ‘v4’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:962:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      962 |     case 4: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:161: error: ‘x5’ was not declared in this scope; did you mean ‘v5’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:962:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      962 |     case 4: ASSIGN_X_BITS(b0,6,  b1,6,   b0,7,  b1,7,  a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:81: error: ‘x0’ was not declared in this scope; did you mean ‘d0’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:963:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      963 |     case 5: ASSIGN_X_BITS(a,9,   a,10,   c,7,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:97: error: ‘x1’ was not declared in this scope; did you mean ‘d1’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:963:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      963 |     case 5: ASSIGN_X_BITS(a,9,   a,10,   c,7,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:113: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:963:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      963 |     case 5: ASSIGN_X_BITS(a,9,   a,10,   c,7,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:129: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:963:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      963 |     case 5: ASSIGN_X_BITS(a,9,   a,10,   c,7,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:145: error: ‘x4’ was not declared in this scope; did you mean ‘v4’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:963:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      963 |     case 5: ASSIGN_X_BITS(a,9,   a,10,   c,7,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:161: error: ‘x5’ was not declared in this scope; did you mean ‘v5’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:963:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      963 |     case 5: ASSIGN_X_BITS(a,9,   a,10,   c,7,   c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:81: error: ‘x0’ was not declared in this scope; did you mean ‘d0’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:964:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      964 |     case 6: ASSIGN_X_BITS(b0,6,  b1,6,   a,11,  c,6,   a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:97: error: ‘x1’ was not declared in this scope; did you mean ‘d1’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:964:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      964 |     case 6: ASSIGN_X_BITS(b0,6,  b1,6,   a,11,  c,6,   a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:113: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:964:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      964 |     case 6: ASSIGN_X_BITS(b0,6,  b1,6,   a,11,  c,6,   a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:129: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:964:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      964 |     case 6: ASSIGN_X_BITS(b0,6,  b1,6,   a,11,  c,6,   a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:145: error: ‘x4’ was not declared in this scope; did you mean ‘v4’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:964:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      964 |     case 6: ASSIGN_X_BITS(b0,6,  b1,6,   a,11,  c,6,   a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:161: error: ‘x5’ was not declared in this scope; did you mean ‘v5’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:964:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      964 |     case 6: ASSIGN_X_BITS(b0,6,  b1,6,   a,11,  c,6,   a,9,   a,10); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:81: error: ‘x0’ was not declared in this scope; did you mean ‘d0’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:965:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      965 |     case 7: ASSIGN_X_BITS(a,9,   a,10,   a,11,  c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:97: error: ‘x1’ was not declared in this scope; did you mean ‘d1’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:965:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      965 |     case 7: ASSIGN_X_BITS(a,9,   a,10,   a,11,  c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:113: error: ‘x2’ was not declared in this scope; did you mean ‘v2’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:965:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      965 |     case 7: ASSIGN_X_BITS(a,9,   a,10,   a,11,  c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:129: error: ‘x3’ was not declared in this scope; did you mean ‘v3’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:965:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      965 |     case 7: ASSIGN_X_BITS(a,9,   a,10,   a,11,  c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:145: error: ‘x4’ was not declared in this scope; did you mean ‘v4’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:965:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      965 |     case 7: ASSIGN_X_BITS(a,9,   a,10,   a,11,  c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:949:161: error: ‘x5’ was not declared in this scope; did you mean ‘v5’?
      949 | #define ASSIGN_X_BITS(V0,S0, V1,S1, V2,S2, V3,S3, V4,S4, V5,S5) do { SHOR(V0,S0,x0); SHOR(V1,S1,x1); SHOR(V2,S2,x2); SHOR(V3,S3,x3); SHOR(V4,S4,x4); SHOR(V5,S5,x5); } while (false)
          |                                                                                                                                                                 ^~
    astc_dec/astc_decomp.cpp:948:53: note: in definition of macro ‘SHOR’
      948 | #define SHOR(DST_VAR, SHIFT, BIT_VAR) (DST_VAR) |= (BIT_VAR) << (SHIFT)
          |                                                     ^~~~~~~
    astc_dec/astc_decomp.cpp:965:13: note: in expansion of macro ‘ASSIGN_X_BITS’
      965 |     case 7: ASSIGN_X_BITS(a,9,   a,10,   a,11,  c,6,   d0,5,  d1,5); break;
          |             ^~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:974:32: error: ‘mode’ was not declared in this scope; did you mean ‘mode_t’?
      974 |   d0 = signExtend(d0, numDBits[mode]);
          |                                ^~~~
          |                                mode_t
    astc_dec/astc_decomp.cpp:986:13: error: no matching function for call to ‘basisu::UVec4::UVec4(int, int, int, int)’
      986 |        0x780);
          |             ^
    astc_dec/astc_decomp.cpp:91:3: note: candidate: ‘basisu::UVec4::UVec4()’
       91 |   UVec4()
          |   ^~~~~
    astc_dec/astc_decomp.cpp:91:3: note:   candidate expects 0 arguments, 4 provided
    astc_dec/astc_decomp.cpp:87:9: note: candidate: ‘constexpr basisu::UVec4::UVec4(const basisu::UVec4&)’
       87 |  struct UVec4
          |         ^~~~~
    astc_dec/astc_decomp.cpp:87:9: note:   candidate expects 1 argument, 4 provided
    astc_dec/astc_decomp.cpp:87:9: note: candidate: ‘constexpr basisu::UVec4::UVec4(basisu::UVec4&&)’
    astc_dec/astc_decomp.cpp:87:9: note:   candidate expects 1 argument, 4 provided
    astc_dec/astc_decomp.cpp:990:13: error: no matching function for call to ‘basisu::UVec4::UVec4(int, int, int, int)’
      990 |        0x780);
          |             ^
    astc_dec/astc_decomp.cpp:91:3: note: candidate: ‘basisu::UVec4::UVec4()’
       91 |   UVec4()
          |   ^~~~~
    astc_dec/astc_decomp.cpp:91:3: note:   candidate expects 0 arguments, 4 provided
    astc_dec/astc_decomp.cpp:87:9: note: candidate: ‘constexpr basisu::UVec4::UVec4(const basisu::UVec4&)’
       87 |  struct UVec4
          |         ^~~~~
    astc_dec/astc_decomp.cpp:87:9: note:   candidate expects 1 argument, 4 provided
    astc_dec/astc_decomp.cpp:87:9: note: candidate: ‘constexpr basisu::UVec4::UVec4(basisu::UVec4&&)’
    astc_dec/astc_decomp.cpp:87:9: note:   candidate expects 1 argument, 4 provided
    astc_dec/astc_decomp.cpp:993:17: error: ‘struct basisu::UVec4’ has no member named ‘x’
      993 |    std::swap(e0.x(), e0.y());
          |                 ^
    astc_dec/astc_decomp.cpp:993:25: error: ‘struct basisu::UVec4’ has no member named ‘y’
      993 |    std::swap(e0.x(), e0.y());
          |                         ^
    astc_dec/astc_decomp.cpp:994:17: error: ‘struct basisu::UVec4’ has no member named ‘x’
      994 |    std::swap(e1.x(), e1.y());
          |                 ^
    astc_dec/astc_decomp.cpp:994:25: error: ‘struct basisu::UVec4’ has no member named ‘y’
      994 |    std::swap(e1.x(), e1.y());
          |                         ^
    astc_dec/astc_decomp.cpp:998:17: error: ‘struct basisu::UVec4’ has no member named ‘x’
      998 |    std::swap(e0.x(), e0.z());
          |                 ^
    astc_dec/astc_decomp.cpp:998:25: error: ‘struct basisu::UVec4’ has no member named ‘z’
      998 |    std::swap(e0.x(), e0.z());
          |                         ^
    astc_dec/astc_decomp.cpp:999:17: error: ‘struct basisu::UVec4’ has no member named ‘x’
      999 |    std::swap(e1.x(), e1.z());
          |                 ^
    astc_dec/astc_decomp.cpp:999:25: error: ‘struct basisu::UVec4’ has no member named ‘z’
      999 |    std::swap(e1.x(), e1.z());
          |                         ^
    astc_dec/astc_decomp.cpp: At global scope:
    astc_dec/astc_decomp.cpp:1003:52: error: ‘deUint32’ has not been declared
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |                                                    ^~~~~~~~
    astc_dec/astc_decomp.cpp:1003:65: error: ‘deUint32’ has not been declared
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |                                                                 ^~~~~~~~
    astc_dec/astc_decomp.cpp:1003:78: error: ‘deUint32’ has not been declared
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |                                                                              ^~~~~~~~
    astc_dec/astc_decomp.cpp:1003:91: error: ‘deUint32’ has not been declared
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |                                                                                           ^~~~~~~~
    astc_dec/astc_decomp.cpp:1003:104: error: ‘deUint32’ has not been declared
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |                                                                                                        ^~~~~~~~
    astc_dec/astc_decomp.cpp:1003:117: error: ‘deUint32’ has not been declared
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |                                                                                                                     ^~~~~~~~
    astc_dec/astc_decomp.cpp:1003:130: error: ‘deUint32’ has not been declared
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |                                                                                                                                  ^~~~~~~~
    astc_dec/astc_decomp.cpp:1003:145: error: ‘deUint32’ has not been declared
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |                                                                                                                                                 ^~~~~~~~
    astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::decodeHDREndpointMode15(basisu::UVec4&, basisu::UVec4&, int, int, int, int, int, int, int, int)’:
    astc_dec/astc_decomp.cpp:1006:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1006 |  const deUint32 mode = (getBit(v7In, 7) << 1) | getBit(v6In, 7);
          |        ^~~~~~~~
          |        deInt32
    astc_dec/astc_decomp.cpp:1007:27: error: ‘getBits’ was not declared in this scope; did you mean ‘getpt’?
     1007 |  deInt32   v6  = (deInt32)getBits(v6In, 0, 6);
          |                           ^~~~~~~
          |                           getpt
    astc_dec/astc_decomp.cpp:1009:6: error: ‘mode’ was not declared in this scope; did you mean ‘mode_t’?
     1009 |  if (mode == 3)
          |      ^~~~
          |      mode_t
    astc_dec/astc_decomp.cpp:1011:6: error: ‘struct basisu::UVec4’ has no member named ‘w’
     1011 |   e0.w() = v6 << 5;
          |      ^
    astc_dec/astc_decomp.cpp:1012:6: error: ‘struct basisu::UVec4’ has no member named ‘w’
     1012 |   e1.w() = v7 << 5;
          |      ^
    astc_dec/astc_decomp.cpp:1024:6: error: ‘struct basisu::UVec4’ has no member named ‘w’
     1024 |   e0.w() = v6;
          |      ^
    astc_dec/astc_decomp.cpp:1025:6: error: ‘struct basisu::UVec4’ has no member named ‘w’
     1025 |   e1.w() = v7;
          |      ^
    astc_dec/astc_decomp.cpp: At global scope:
    astc_dec/astc_decomp.cpp:1028:58: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1028 | void decodeColorEndpoints (ColorEndpointPair* dst, const deUint32* unquantizedEndpoints, const deUint32* endpointModes, int numPartitions)
          |                                                          ^~~~~~~~
          |                                                          deInt32
    astc_dec/astc_decomp.cpp:1028:96: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1028 | void decodeColorEndpoints (ColorEndpointPair* dst, const deUint32* unquantizedEndpoints, const deUint32* endpointModes, int numPartitions)
          |                                                                                                ^~~~~~~~
          |                                                                                                deInt32
    astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::decodeColorEndpoints(basisu::astc::{anonymous}::ColorEndpointPair*, const int*, const int*, int)’:
    astc_dec/astc_decomp.cpp:1033:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1033 |   const deUint32  endpointMode = endpointModes[partitionNdx];
          |         ^~~~~~~~
          |         deInt32
    astc_dec/astc_decomp.cpp:1034:9: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1034 |   const deUint32*  v    = &unquantizedEndpoints[unquantizedNdx];
          |         ^~~~~~~~
          |         deInt32
    astc_dec/astc_decomp.cpp:1037:51: error: ‘endpointMode’ was not declared in this scope; did you mean ‘endpointModes’?
     1037 |   unquantizedNdx += computeNumColorEndpointValues(endpointMode);
          |                                                   ^~~~~~~~~~~~
          |                                                   endpointModes
    astc_dec/astc_decomp.cpp:1037:63: error: ‘basisu::astc::{anonymous}::computeNumColorEndpointValues’ cannot be used as a function
     1037 |   unquantizedNdx += computeNumColorEndpointValues(endpointMode);
          |                                                               ^
    astc_dec/astc_decomp.cpp:1041:16: error: ‘v’ was not declared in this scope
     1041 |     e0 = UVec4(v[0], v[0], v[0], 0xff);
          |                ^
    astc_dec/astc_decomp.cpp:1046:11: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1046 |     const deUint32 L0 = (v[0] >> 2) | (getBits(v[1], 6, 7) << 6);
          |           ^~~~~~~~
          |           deInt32
    astc_dec/astc_decomp.cpp:1047:11: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1047 |     const deUint32 L1 = basisu::min(0xffu, L0 + getBits(v[1], 0, 5));
          |           ^~~~~~~~
          |           deInt32
    astc_dec/astc_decomp.cpp:1048:16: error: ‘L0’ was not declared in this scope; did you mean ‘e0’?
     1048 |     e0 = UVec4(L0, L0, L0, 0xff);
          |                ^~
          |                e0
    astc_dec/astc_decomp.cpp:1049:16: error: ‘L1’ was not declared in this scope; did you mean ‘e1’?
     1049 |     e1 = UVec4(L1, L1, L1, 0xff);
          |                ^~
          |                e1
    astc_dec/astc_decomp.cpp:1054:11: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1054 |     const deUint32 v1Gr  = v[1] >= v[0];
          |           ^~~~~~~~
          |           deInt32
    astc_dec/astc_decomp.cpp:1055:11: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1055 |     const deUint32 y0  = v1Gr ? v[0]<<4 : (v[1]<<4) + 8;
          |           ^~~~~~~~
          |           deInt32
    astc_dec/astc_decomp.cpp:1056:11: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1056 |     const deUint32 y1  = v1Gr ? v[1]<<4 : (v[0]<<4) - 8;
          |           ^~~~~~~~
          |           deInt32
    astc_dec/astc_decomp.cpp:1057:16: error: ‘y0’ was not declared in this scope; did you mean ‘e0’?
     1057 |     e0 = UVec4(y0, y0, y0, 0x780);
          |                ^~
          |                e0
    astc_dec/astc_decomp.cpp:1058:16: error: ‘y1’ was not declared in this scope; did you mean ‘e1’?
     1058 |     e1 = UVec4(y1, y1, y1, 0x780);
          |                ^~
          |                e1
    astc_dec/astc_decomp.cpp:1063:37: error: ‘basisu::astc::{anonymous}::isBitSet’ cannot be used as a function
     1063 |     const bool  m = isBitSet(v[0], 7);
          |                                     ^
    astc_dec/astc_decomp.cpp:1064:11: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1064 |     const deUint32 y0 = m ? (getBits(v[1], 5, 7) << 9) | (getBits(v[0], 0, 6) << 2)
          |           ^~~~~~~~
          |           deInt32
    astc_dec/astc_decomp.cpp:1066:11: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1066 |     const deUint32 d = m ? getBits(v[1], 0, 4) << 2
          |           ^~~~~~~~
          |           deInt32
    astc_dec/astc_decomp.cpp:1068:11: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1068 |     const deUint32 y1 = basisu::min(0xfffu, y0+d);
          |           ^~~~~~~~
          |           deInt32
    astc_dec/astc_decomp.cpp:1069:16: error: ‘y0’ was not declared in this scope; did you mean ‘e0’?
     1069 |     e0 = UVec4(y0, y0, y0, 0x780);
          |                ^~
          |                e0
    astc_dec/astc_decomp.cpp:1070:16: error: ‘y1’ was not declared in this scope; did you mean ‘e1’?
     1070 |     e1 = UVec4(y1, y1, y1, 0x780);
          |                ^~
          |                e1
    astc_dec/astc_decomp.cpp:1063:17: warning: unused variable ‘m’ [-Wunused-variable]
     1063 |     const bool  m = isBitSet(v[0], 7);
          |                 ^
    astc_dec/astc_decomp.cpp:1178:8: error: ‘struct basisu::UVec4’ has no member named ‘w’
     1178 |     e0.w() = v[6];
          |        ^
    astc_dec/astc_decomp.cpp:1179:8: error: ‘struct basisu::UVec4’ has no member named ‘w’
     1179 |     e1.w() = v[7];
          |        ^
    astc_dec/astc_decomp.cpp: At global scope:
    astc_dec/astc_decomp.cpp:1189:86: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1189 | void computeColorEndpoints (ColorEndpointPair* dst, const Block128& blockData, const deUint32* endpointModes, int numPartitions, int numColorEndpointValues, const ISEParams& iseParams, int numBitsAvailable)
          |                                                                                      ^~~~~~~~
          |                                                                                      deInt32
    astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::computeColorEndpoints(basisu::astc::{anonymous}::ColorEndpointPair*, const basisu::astc::{anonymous}::Block128&, const int*, int, int, const basisu::astc::{anonymous}::ISEParams&, int)’:
    astc_dec/astc_decomp.cpp:1198:3: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
     1198 |   deUint32 unquantizedEndpoints[18];
          |   ^~~~~~~~
          |   deInt32
    astc_dec/astc_decomp.cpp:1199:29: error: ‘unquantizedEndpoints’ was not declared in this scope
     1199 |   unquantizeColorEndpoints(&unquantizedEndpoints[0], &colorEndpointData[0], numColorEndpointValues, iseParams);
          |                             ^~~~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1199:3: error: ‘unquantizeColorEndpoints’ was not declared in this scope; did you mean ‘computeColorEndpoints’?
     1199 |   unquantizeColorEndpoints(&unquantizedEndpoints[0], &colorEndpointData[0], numColorEndpointValues, iseParams);
          |   ^~~~~~~~~~~~~~~~~~~~~~~~
          |   computeColorEndpoints
    astc_dec/astc_decomp.cpp: At global scope:
    astc_dec/astc_decomp.cpp:1203:25: error: variable or field ‘unquantizeWeights’ declared void
     1203 | void unquantizeWeights (deUint32 dst[64], const ISEDecodedResult* weightGrid, const ASTCBlockMode& blockMode)
          |                         ^~~~~~~~
    astc_dec/astc_decomp.cpp:1203:25: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
     1203 | void unquantizeWeights (deUint32 dst[64], const ISEDecodedResult* weightGrid, const ASTCBlockMode& blockMode)
          |                         ^~~~~~~~
          |                         deInt32
    astc_dec/astc_decomp.cpp:1203:43: error: expected primary-expression before ‘const’
     1203 | void unquantizeWeights (deUint32 dst[64], const ISEDecodedResult* weightGrid, const ASTCBlockMode& blockMode)
          |                                           ^~~~~
    astc_dec/astc_decomp.cpp:1203:79: error: expected primary-expression before ‘const’
     1203 | void unquantizeWeights (deUint32 dst[64], const ISEDecodedResult* weightGrid, const ASTCBlockMode& blockMode)
          |                                                                               ^~~~~
    astc_dec/astc_decomp.cpp:1254:63: error: ISO C++ forbids declaration of ‘deUint32’ with no type [-fpermissive]
     1254 | void interpolateWeights (TexelWeightPair* dst, const deUint32 (&unquantizedWeights) [64], int blockWidth, int blockHeight, const ASTCBlockMode& blockMode)
          |                                                               ^
    astc_dec/astc_decomp.cpp:1254:63: error: expected ‘,’ or ‘...’ before ‘(’ token
    astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::interpolateWeights(basisu::astc::{anonymous}::TexelWeightPair*, int)’:
    astc_dec/astc_decomp.cpp:1256:34: error: ‘blockMode’ was not declared in this scope; did you mean ‘ASTCBlockMode’?
     1256 |  const int  numWeightsPerTexel = blockMode.isDualPlane ? 2 : 1;
          |                                  ^~~~~~~~~
          |                                  ASTCBlockMode
    astc_dec/astc_decomp.cpp:1257:8: error: ‘deUint32’ does not name a type
     1257 |  const deUint32 scaleX    = (1024 + blockWidth/2) / (blockWidth-1);
          |        ^~~~~~~~
    astc_dec/astc_decomp.cpp:1258:8: error: ‘deUint32’ does not name a type
     1258 |  const deUint32 scaleY    = (1024 + blockHeight/2) / (blockHeight-1);
          |        ^~~~~~~~
    astc_dec/astc_decomp.cpp:1260:32: error: ‘blockHeight’ was not declared in this scope
     1260 |  for (int texelY = 0; texelY < blockHeight; texelY++)
          |                                ^~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1262:33: error: ‘blockWidth’ was not declared in this scope
     1262 |   for (int texelX = 0; texelX < blockWidth; texelX++)
          |                                 ^~~~~~~~~~
    astc_dec/astc_decomp.cpp:1264:10: error: ‘deUint32’ does not name a type
     1264 |    const deUint32 gX = (scaleX*texelX*(blockMode.weightGridWidth-1) + 32) >> 6;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1265:10: error: ‘deUint32’ does not name a type
     1265 |    const deUint32 gY = (scaleY*texelY*(blockMode.weightGridHeight-1) + 32) >> 6;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1266:10: error: ‘deUint32’ does not name a type
     1266 |    const deUint32 jX = gX >> 4;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1267:10: error: ‘deUint32’ does not name a type
     1267 |    const deUint32 jY = gY >> 4;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1268:10: error: ‘deUint32’ does not name a type
     1268 |    const deUint32 fX = gX & 0xf;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1269:10: error: ‘deUint32’ does not name a type
     1269 |    const deUint32 fY = gY & 0xf;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1270:10: error: ‘deUint32’ does not name a type
     1270 |    const deUint32 w11 = (fX*fY + 8) >> 4;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1271:10: error: ‘deUint32’ does not name a type
     1271 |    const deUint32 w10 = fY - w11;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1272:10: error: ‘deUint32’ does not name a type
     1272 |    const deUint32 w01 = fX - w11;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1273:10: error: ‘deUint32’ does not name a type
     1273 |    const deUint32 w00 = 16 - fX - fY + w11;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1274:10: error: ‘deUint32’ does not name a type
     1274 |    const deUint32 i00 = jY*blockMode.weightGridWidth + jX;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1275:10: error: ‘deUint32’ does not name a type
     1275 |    const deUint32 i01 = i00 + 1;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1276:10: error: ‘deUint32’ does not name a type
     1276 |    const deUint32 i10 = i00 + blockMode.weightGridWidth;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1277:10: error: ‘deUint32’ does not name a type
     1277 |    const deUint32 i11 = i00 + blockMode.weightGridWidth + 1;
          |          ^~~~~~~~
    astc_dec/astc_decomp.cpp:1286:11: error: ‘deUint32’ does not name a type
     1286 |     const deUint32 p00 = unquantizedWeights[(i00 * numWeightsPerTexel + texelWeightNdx) & 0x3f];
          |           ^~~~~~~~
    astc_dec/astc_decomp.cpp:1287:11: error: ‘deUint32’ does not name a type
     1287 |     const deUint32 p01 = unquantizedWeights[(i01 * numWeightsPerTexel + texelWeightNdx) & 0x3f];
          |           ^~~~~~~~
    astc_dec/astc_decomp.cpp:1288:11: error: ‘deUint32’ does not name a type
     1288 |     const deUint32 p10 = unquantizedWeights[(i10 * numWeightsPerTexel + texelWeightNdx) & 0x3f];
          |           ^~~~~~~~
    astc_dec/astc_decomp.cpp:1289:11: error: ‘deUint32’ does not name a type
     1289 |     const deUint32 p11 = unquantizedWeights[(i11 * numWeightsPerTexel + texelWeightNdx) & 0x3f];
          |           ^~~~~~~~
    astc_dec/astc_decomp.cpp:1290:58: error: ‘p00’ was not declared in this scope
     1290 |     dst[texelY*blockWidth + texelX].w[texelWeightNdx] = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
          |                                                          ^~~
    astc_dec/astc_decomp.cpp:1290:62: error: ‘w00’ was not declared in this scope
     1290 |     dst[texelY*blockWidth + texelX].w[texelWeightNdx] = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
          |                                                              ^~~
    astc_dec/astc_decomp.cpp:1290:68: error: ‘p01’ was not declared in this scope
     1290 |     dst[texelY*blockWidth + texelX].w[texelWeightNdx] = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
          |                                                                    ^~~
    astc_dec/astc_decomp.cpp:1290:72: error: ‘w01’ was not declared in this scope
     1290 |     dst[texelY*blockWidth + texelX].w[texelWeightNdx] = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
          |                                                                        ^~~
    astc_dec/astc_decomp.cpp:1290:78: error: ‘p10’ was not declared in this scope
     1290 |     dst[texelY*blockWidth + texelX].w[texelWeightNdx] = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
          |                                                                              ^~~
    astc_dec/astc_decomp.cpp:1290:82: error: ‘w10’ was not declared in this scope
     1290 |     dst[texelY*blockWidth + texelX].w[texelWeightNdx] = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
          |                                                                                  ^~~
    astc_dec/astc_decomp.cpp:1290:88: error: ‘p11’ was not declared in this scope
     1290 |     dst[texelY*blockWidth + texelX].w[texelWeightNdx] = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
          |                                                                                        ^~~
    astc_dec/astc_decomp.cpp:1290:92: error: ‘w11’ was not declared in this scope
     1290 |     dst[texelY*blockWidth + texelX].w[texelWeightNdx] = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
          |                                                                                            ^~~
    astc_dec/astc_decomp.cpp: In function ‘void basisu::astc::{anonymous}::computeTexelWeights(basisu::astc::{anonymous}::TexelWeightPair*, const basisu::astc::{anonymous}::Block128&, int, int, const basisu::astc::{anonymous}::ASTCBlockMode&)’:
    astc_dec/astc_decomp.cpp:1303:3: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
     1303 |   deUint32 unquantizedWeights[64];
          |   ^~~~~~~~
          |   deInt32
    astc_dec/astc_decomp.cpp:1304:22: error: ‘unquantizedWeights’ was not declared in this scope
     1304 |   unquantizeWeights(&unquantizedWeights[0], &weightGrid[0], blockMode);
          |                      ^~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1304:3: error: ‘unquantizeWeights’ was not declared in this scope
     1304 |   unquantizeWeights(&unquantizedWeights[0], &weightGrid[0], blockMode);
          |   ^~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp: At global scope:
    astc_dec/astc_decomp.cpp:1308:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1308 | inline deUint32 hash52 (deUint32 v)
          |        ^~~~~~~~
          |        deInt32
    astc_dec/astc_decomp.cpp:1316:28: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
     1316 | int computeTexelPartition (deUint32 seedIn, deUint32 xIn, deUint32 yIn, deUint32 zIn, int numPartitions, bool smallBlock)
          |                            ^~~~~~~~
          |                            deInt32
    astc_dec/astc_decomp.cpp:1316:45: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
     1316 | int computeTexelPartition (deUint32 seedIn, deUint32 xIn, deUint32 yIn, deUint32 zIn, int numPartitions, bool smallBlock)
          |                                             ^~~~~~~~
          |                                             deInt32
    astc_dec/astc_decomp.cpp:1316:59: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
     1316 | int computeTexelPartition (deUint32 seedIn, deUint32 xIn, deUint32 yIn, deUint32 zIn, int numPartitions, bool smallBlock)
          |                                                           ^~~~~~~~
          |                                                           deInt32
    astc_dec/astc_decomp.cpp:1316:73: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
     1316 | int computeTexelPartition (deUint32 seedIn, deUint32 xIn, deUint32 yIn, deUint32 zIn, int numPartitions, bool smallBlock)
          |                                                                         ^~~~~~~~
          |                                                                         deInt32
    astc_dec/astc_decomp.cpp:1316:87: error: expected primary-expression before ‘int’
     1316 | int computeTexelPartition (deUint32 seedIn, deUint32 xIn, deUint32 yIn, deUint32 zIn, int numPartitions, bool smallBlock)
          |                                                                                       ^~~
    astc_dec/astc_decomp.cpp:1316:106: error: expected primary-expression before ‘bool’
     1316 | int computeTexelPartition (deUint32 seedIn, deUint32 xIn, deUint32 yIn, deUint32 zIn, int numPartitions, bool smallBlock)
          |                                                                                                          ^~~~
    astc_dec/astc_decomp.cpp:1316:121: error: expression list treated as compound expression in initializer [-fpermissive]
     1316 | int computeTexelPartition (deUint32 seedIn, deUint32 xIn, deUint32 yIn, deUint32 zIn, int numPartitions, bool smallBlock)
          |                                                                                                                         ^
    astc_dec/astc_decomp.cpp:1374:120: error: ‘deUint32’ has not been declared
     1374 | DecompressResult setTexelColors (void* dst, ColorEndpointPair* colorEndpoints, TexelWeightPair* texelWeights, int ccs, deUint32 partitionIndexSeed,
          |                                                                                                                        ^~~~~~~~
    astc_dec/astc_decomp.cpp:1375:97: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1375 |          int numPartitions, int blockWidth, int blockHeight, bool isSRGB, bool isLDRMode, const deUint32* colorEndpointModes)
          |                                                                                                 ^~~~~~~~
          |                                                                                                 deInt32
    astc_dec/astc_decomp.cpp: In function ‘basisu::astc::{anonymous}::DecompressResult basisu::astc::{anonymous}::setTexelColors(void*, basisu::astc::{anonymous}::ColorEndpointPair*, basisu::astc::{anonymous}::TexelWeightPair*, int, int, int, int, int, bool, bool, const int*)’:
    astc_dec/astc_decomp.cpp:1382:66: error: ‘basisu::astc::{anonymous}::isColorEndpointModeHDR’ cannot be used as a function
     1382 |   isHDREndpoint[i] = isColorEndpointModeHDR(colorEndpointModes[i]);
          |                                                                  ^
    astc_dec/astc_decomp.cpp:1393:146: error: ‘basisu::astc::{anonymous}::computeTexelPartition’ cannot be used as a function
     1393 |   const int    colorEndpointNdx = numPartitions == 1 ? 0 : computeTexelPartition(partitionIndexSeed, texelX, texelY, 0, numPartitions, smallBlock);
          |                                                                                                                                                  ^
    astc_dec/astc_decomp.cpp:1402:7: error: ‘deUint8’ was not declared in this scope; did you mean ‘deInt8’?
     1402 |     ((deUint8*)dst)[texelNdx*4 + 0] = 0xff;
          |       ^~~~~~~
          |       deInt8
    astc_dec/astc_decomp.cpp:1402:15: error: expected primary-expression before ‘)’ token
     1402 |     ((deUint8*)dst)[texelNdx*4 + 0] = 0xff;
          |               ^
    astc_dec/astc_decomp.cpp:1402:16: error: expected ‘)’ before ‘dst’
     1402 |     ((deUint8*)dst)[texelNdx*4 + 0] = 0xff;
          |     ~          ^~~
          |                )
    astc_dec/astc_decomp.cpp:1403:15: error: expected primary-expression before ‘)’ token
     1403 |     ((deUint8*)dst)[texelNdx*4 + 1] = 0;
          |               ^
    astc_dec/astc_decomp.cpp:1403:16: error: expected ‘)’ before ‘dst’
     1403 |     ((deUint8*)dst)[texelNdx*4 + 1] = 0;
          |     ~          ^~~
          |                )
    astc_dec/astc_decomp.cpp:1404:15: error: expected primary-expression before ‘)’ token
     1404 |     ((deUint8*)dst)[texelNdx*4 + 2] = 0xff;
          |               ^
    astc_dec/astc_decomp.cpp:1404:16: error: expected ‘)’ before ‘dst’
     1404 |     ((deUint8*)dst)[texelNdx*4 + 2] = 0xff;
          |     ~          ^~~
          |                )
    astc_dec/astc_decomp.cpp:1405:15: error: expected primary-expression before ‘)’ token
     1405 |     ((deUint8*)dst)[texelNdx*4 + 3] = 0xff;
          |               ^
    astc_dec/astc_decomp.cpp:1405:16: error: expected ‘)’ before ‘dst’
     1405 |     ((deUint8*)dst)[texelNdx*4 + 3] = 0xff;
          |     ~          ^~~
          |                )
    astc_dec/astc_decomp.cpp:1422:12: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1422 |      const deUint32 c0 = (e0[channelNdx] << 8) | (isSRGB ? 0x80 : e0[channelNdx]);
          |            ^~~~~~~~
          |            deInt32
    astc_dec/astc_decomp.cpp:1423:12: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1423 |      const deUint32 c1 = (e1[channelNdx] << 8) | (isSRGB ? 0x80 : e1[channelNdx]);
          |            ^~~~~~~~
          |            deInt32
    astc_dec/astc_decomp.cpp:1424:12: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1424 |      const deUint32 w = weight.w[ccs == channelNdx ? 1 : 0];
          |            ^~~~~~~~
          |            deInt32
    astc_dec/astc_decomp.cpp:1425:12: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1425 |      const deUint32 c = (c0*(64-w) + c1*w + 32) / 64;
          |            ^~~~~~~~
          |            deInt32
    astc_dec/astc_decomp.cpp:1427:9: error: ‘deUint8’ was not declared in this scope; did you mean ‘deInt8’?
     1427 |       ((deUint8*)dst)[texelNdx*4 + channelNdx] = (deUint8)((c & 0xff00) >> 8);
          |         ^~~~~~~
          |         deInt8
    astc_dec/astc_decomp.cpp:1427:17: error: expected primary-expression before ‘)’ token
     1427 |       ((deUint8*)dst)[texelNdx*4 + channelNdx] = (deUint8)((c & 0xff00) >> 8);
          |                 ^
    astc_dec/astc_decomp.cpp:1427:18: error: expected ‘)’ before ‘dst’
     1427 |       ((deUint8*)dst)[texelNdx*4 + channelNdx] = (deUint8)((c & 0xff00) >> 8);
          |       ~          ^~~
          |                  )
    astc_dec/astc_decomp.cpp:1429:48: error: ‘c’ was not declared in this scope
     1429 |       ((float*)dst)[texelNdx*4 + channelNdx] = c == 65535 ? 1.0f : (float)c / 65536.0f;
          |                                                ^
    astc_dec/astc_decomp.cpp:1395:18: warning: unused variable ‘e0’ [-Wunused-variable]
     1395 |   const UVec4&   e0     = colorEndpoints[colorEndpointNdx].e0;
          |                  ^~
    astc_dec/astc_decomp.cpp:1396:18: warning: unused variable ‘e1’ [-Wunused-variable]
     1396 |   const UVec4&   e1     = colorEndpoints[colorEndpointNdx].e1;
          |                  ^~
    astc_dec/astc_decomp.cpp:1397:26: warning: unused variable ‘weight’ [-Wunused-variable]
     1397 |   const TexelWeightPair& weight    = texelWeights[texelNdx];
          |                          ^~~~~~
    astc_dec/astc_decomp.cpp: In function ‘basisu::astc::{anonymous}::DecompressResult basisu::astc::{anonymous}::decompressBlock(void*, const basisu::astc::{anonymous}::Block128&, int, int, bool, bool)’:
    astc_dec/astc_decomp.cpp:1458:61: error: ‘const class basisu::astc::{anonymous}::Block128’ has no member named ‘getBits’
     1458 |  const ASTCBlockMode blockMode = getASTCBlockMode(blockData.getBits(0, 10));
          |                                                             ^~~~~~~
    astc_dec/astc_decomp.cpp:1471:45: error: ‘const class basisu::astc::{anonymous}::Block128’ has no member named ‘getBits’
     1471 |  const int numPartitions   = (int)blockData.getBits(11, 12) + 1;
          |                                             ^~~~~~~
    astc_dec/astc_decomp.cpp:1484:67: error: ‘const class basisu::astc::{anonymous}::Block128’ has no member named ‘getBits’
     1484 |  const bool isSingleUniqueCem   = numPartitions == 1 || blockData.getBits(23, 24) == 0;
          |                                                                   ^~~~~~~
    astc_dec/astc_decomp.cpp:1494:2: error: ‘deUint32’ was not declared in this scope; did you mean ‘deInt32’?
     1494 |  deUint32 colorEndpointModes[4];
          |  ^~~~~~~~
          |  deInt32
    astc_dec/astc_decomp.cpp:1495:28: error: ‘colorEndpointModes’ was not declared in this scope; did you mean ‘isColorEndpointModeHDR’?
     1495 |  decodeColorEndpointModes(&colorEndpointModes[0], blockData, numPartitions, extraCemBitsStart);
          |                            ^~~~~~~~~~~~~~~~~~
          |                            isColorEndpointModeHDR
    astc_dec/astc_decomp.cpp:1495:2: error: ‘decodeColorEndpointModes’ was not declared in this scope; did you mean ‘decodeColorEndpoints’?
     1495 |  decodeColorEndpointModes(&colorEndpointModes[0], blockData, numPartitions, extraCemBitsStart);
          |  ^~~~~~~~~~~~~~~~~~~~~~~~
          |  decodeColorEndpoints
    astc_dec/astc_decomp.cpp:1496:100: error: ‘basisu::astc::{anonymous}::computeNumColorEndpointValues’ cannot be used as a function
     1496 |  const int numColorEndpointValues = computeNumColorEndpointValues(colorEndpointModes, numPartitions);
          |                                                                                                    ^
    astc_dec/astc_decomp.cpp:1498:69: error: ‘deDivRoundUp32’ was not declared in this scope
     1498 |  if (numColorEndpointValues > 18 || numBitsForColorEndpoints < (int)deDivRoundUp32(13*numColorEndpointValues, 5))
          |                                                                     ^~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1511:63: error: ‘const class basisu::astc::{anonymous}::Block128’ has no member named ‘getBits’
     1511 |  const int  ccs      = blockMode.isDualPlane ? (int)blockData.getBits(extraCemBitsStart-2, extraCemBitsStart-1) : -1;
          |                                                               ^~~~~~~
    astc_dec/astc_decomp.cpp:1512:8: error: ‘deUint32’ does not name a type; did you mean ‘deInt32’?
     1512 |  const deUint32 partitionIndexSeed  = numPartitions > 1 ? blockData.getBits(13, 22) : (deUint32)-1;
          |        ^~~~~~~~
          |        deInt32
    astc_dec/astc_decomp.cpp:1513:72: error: ‘partitionIndexSeed’ was not declared in this scope
     1513 |  return setTexelColors(dst, &colorEndpoints[0], &texelWeights[0], ccs, partitionIndexSeed, numPartitions, blockWidth, blockHeight, isSRGB, isLDR, &colorEndpointModes[0]);
          |                                                                        ^~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp: At global scope:
    astc_dec/astc_decomp.cpp:1518:6: error: redefinition of ‘bool basisu::astc::decompress’
     1518 | bool decompress(uint8_t *pDst, const uint8_t * data, bool isSRGB, int blockWidth, int blockHeight)
          |      ^~~~~~~~~~
    In file included from astc_dec/astc_decomp.cpp:35:
    astc_dec/astc_decomp.h:36:6: note: ‘bool basisu::astc::decompress’ previously defined here
       36 | bool decompress(uint8_t* pDst, const uint8_t* data, bool isSRGB, int blockWidth, int blockHeight);
          |      ^~~~~~~~~~
    astc_dec/astc_decomp.cpp:1518:17: error: ‘uint8_t’ was not declared in this scope; did you mean ‘u_int8_t’?
     1518 | bool decompress(uint8_t *pDst, const uint8_t * data, bool isSRGB, int blockWidth, int blockHeight)
          |                 ^~~~~~~
          |                 u_int8_t
    astc_dec/astc_decomp.cpp:1518:26: error: ‘pDst’ was not declared in this scope
     1518 | bool decompress(uint8_t *pDst, const uint8_t * data, bool isSRGB, int blockWidth, int blockHeight)
          |                          ^~~~
    astc_dec/astc_decomp.cpp:1518:32: error: expected primary-expression before ‘const’
     1518 | bool decompress(uint8_t *pDst, const uint8_t * data, bool isSRGB, int blockWidth, int blockHeight)
          |                                ^~~~~
    astc_dec/astc_decomp.cpp:1518:54: error: expected primary-expression before ‘bool’
     1518 | bool decompress(uint8_t *pDst, const uint8_t * data, bool isSRGB, int blockWidth, int blockHeight)
          |                                                      ^~~~
    astc_dec/astc_decomp.cpp:1518:67: error: expected primary-expression before ‘int’
     1518 | bool decompress(uint8_t *pDst, const uint8_t * data, bool isSRGB, int blockWidth, int blockHeight)
          |                                                                   ^~~
    astc_dec/astc_decomp.cpp:1518:83: error: expected primary-expression before ‘int’
     1518 | bool decompress(uint8_t *pDst, const uint8_t * data, bool isSRGB, int blockWidth, int blockHeight)
          |                                                                                   ^~~
    astc_dec/astc_decomp.cpp:1454:18: warning: ‘basisu::astc::{anonymous}::DecompressResult basisu::astc::{anonymous}::decompressBlock(void*, const basisu::astc::{anonymous}::Block128&, int, int, bool, bool)’ defined but not used [-Wunused-function]
     1454 | DecompressResult decompressBlock (void* dst, const Block128& blockData, int blockWidth, int blockHeight, bool isSRGB, bool isLDR)
          |                  ^~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1374:18: warning: ‘basisu::astc::{anonymous}::DecompressResult basisu::astc::{anonymous}::setTexelColors(void*, basisu::astc::{anonymous}::ColorEndpointPair*, basisu::astc::{anonymous}::TexelWeightPair*, int, int, int, int, int, bool, bool, const int*)’ defined but not used [-Wunused-function]
     1374 | DecompressResult setTexelColors (void* dst, ColorEndpointPair* colorEndpoints, TexelWeightPair* texelWeights, int ccs, deUint32 partitionIndexSeed,
          |                  ^~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1254:6: warning: ‘void basisu::astc::{anonymous}::interpolateWeights(basisu::astc::{anonymous}::TexelWeightPair*, int)’ defined but not used [-Wunused-function]
     1254 | void interpolateWeights (TexelWeightPair* dst, const deUint32 (&unquantizedWeights) [64], int blockWidth, int blockHeight, const ASTCBlockMode& blockMode)
          |      ^~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1189:6: warning: ‘void basisu::astc::{anonymous}::computeColorEndpoints(basisu::astc::{anonymous}::ColorEndpointPair*, const basisu::astc::{anonymous}::Block128&, const int*, int, int, const basisu::astc::{anonymous}::ISEParams&, int)’ defined but not used [-Wunused-function]
     1189 | void computeColorEndpoints (ColorEndpointPair* dst, const Block128& blockData, const deUint32* endpointModes, int numPartitions, int numColorEndpointValues, const ISEParams& iseParams, int numBitsAvailable)
          |      ^~~~~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1028:6: warning: ‘void basisu::astc::{anonymous}::decodeColorEndpoints(basisu::astc::{anonymous}::ColorEndpointPair*, const int*, const int*, int)’ defined but not used [-Wunused-function]
     1028 | void decodeColorEndpoints (ColorEndpointPair* dst, const deUint32* unquantizedEndpoints, const deUint32* endpointModes, int numPartitions)
          |      ^~~~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:1003:6: warning: ‘void basisu::astc::{anonymous}::decodeHDREndpointMode15(basisu::UVec4&, basisu::UVec4&, int, int, int, int, int, int, int, int)’ defined but not used [-Wunused-function]
     1003 | void decodeHDREndpointMode15(UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3, deUint32 v4, deUint32 v5, deUint32 v6In, deUint32 v7In)
          |      ^~~~~~~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:864:6: warning: ‘void basisu::astc::{anonymous}::decodeHDREndpointMode7(basisu::UVec4&, basisu::UVec4&, int, int, int, int)’ defined but not used [-Wunused-function]
      864 | void decodeHDREndpointMode7 (UVec4& e0, UVec4& e1, deUint32 v0, deUint32 v1, deUint32 v2, deUint32 v3)
          |      ^~~~~~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:664:5: warning: ‘int basisu::astc::{anonymous}::computeNumColorEndpointValues(const int*, int)’ defined but not used [-Wunused-function]
      664 | int computeNumColorEndpointValues (const deUint32* endpointModes, int numPartitions)
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:195:14: warning: ‘basisu::deInBounds32’ defined but not used [-Wunused-variable]
      195 |  static bool deInBounds32(uint32_t v, uint32_t l, uint32_t h)
          |              ^~~~~~~~~~~~
    astc_dec/astc_decomp.cpp:60:14: warning: ‘bool basisu::inRange(int, int, int)’ defined but not used [-Wunused-function]
       60 |  static bool inRange(int v, int l, int h)
          |              ^~~~~~~
    astc_dec/astc_decomp.cpp:55:14: warning: ‘bool basisu::inBounds(int, int, int)’ defined but not used [-Wunused-function]
       55 |  static bool inBounds(int v, int l, int h)
          |              ^~~~~~~~
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-hzpitp6n/astc-decomp/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-wfk0y6ez/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-install-hzpitp6n/astc-decomp/

A bit of performance left on the table

This module turned out to be the main performance bottleneck on a tool I've been working on, and I found out there could be some performance left on the table. On my computer* I'm getting 20-30% improved decoding speed by adding a few cython types, though I've not managed to clean up everything just yet.

Is this project still active? I can send a pull request and if you can check if the changes hold on other OSes/versions, it could be valuable for others.

* under python 3.10 64 bit, on windows 10

compiled wheel for windows

Can you package this as a wheel on PyPI? This is basically for windows users as most end users don't have visual studio installed for compiling.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.