1 2## Core Functions 3 4### LEB128 5 6~~~~~ 7uint64_t LEB128() { 8 result = 0; 9 shift = 0; 10 while(true) { 11 in UI8 12 result |= (low order 7 bits of in) << shift; 13 if (high order bit of in == 0) 14 break; 15 shift += 7; 16 } 17 return result; 18} 19~~~~~ 20{:.draco-syntax } 21 22 23### mem_get_le16 24 25~~~~~ 26uint32_t mem_get_le16(mem) { 27 val = mem[1] << 8; 28 val |= mem[0]; 29 return val; 30} 31~~~~~ 32{:.draco-syntax } 33 34 35### mem_get_le24 36 37~~~~~ 38uint32_t mem_get_le24(mem) { 39 val = mem[2] << 16; 40 val |= mem[1] << 8; 41 val |= mem[0]; 42 return val; 43} 44~~~~~ 45{:.draco-syntax } 46 47 48### mem_get_le32 49 50~~~~~ 51uint32_t mem_get_le32(mem) { 52 val = mem[3] << 24; 53 val |= mem[2] << 16; 54 val |= mem[1] << 8; 55 val |= mem[0]; 56 return val; 57} 58~~~~~ 59{:.draco-syntax } 60