MCPcopy Create free account
hub / github.com/defold/defold / unpack_etc2_eac

Function unpack_etc2_eac

engine/dlib/src/basis/encoder/basisu_gpu_texture.cpp:25–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23namespace basisu
24{
25 void unpack_etc2_eac(const void *pBlock_bits, color_rgba *pPixels)
26 {
27 static_assert(sizeof(eac_a8_block) == 8, "sizeof(eac_a8_block) == 8");
28
29 const eac_a8_block *pBlock = static_cast<const eac_a8_block *>(pBlock_bits);
30
31 const int8_t *pTable = g_etc2_eac_tables[pBlock->m_table];
32
33 const uint64_t selector_bits = pBlock->get_selector_bits();
34
35 const int32_t base = pBlock->m_base;
36 const int32_t mul = pBlock->m_multiplier;
37
38 pPixels[0].a = clamp255(base + pTable[pBlock->get_selector(0, 0, selector_bits)] * mul);
39 pPixels[1].a = clamp255(base + pTable[pBlock->get_selector(1, 0, selector_bits)] * mul);
40 pPixels[2].a = clamp255(base + pTable[pBlock->get_selector(2, 0, selector_bits)] * mul);
41 pPixels[3].a = clamp255(base + pTable[pBlock->get_selector(3, 0, selector_bits)] * mul);
42
43 pPixels[4].a = clamp255(base + pTable[pBlock->get_selector(0, 1, selector_bits)] * mul);
44 pPixels[5].a = clamp255(base + pTable[pBlock->get_selector(1, 1, selector_bits)] * mul);
45 pPixels[6].a = clamp255(base + pTable[pBlock->get_selector(2, 1, selector_bits)] * mul);
46 pPixels[7].a = clamp255(base + pTable[pBlock->get_selector(3, 1, selector_bits)] * mul);
47
48 pPixels[8].a = clamp255(base + pTable[pBlock->get_selector(0, 2, selector_bits)] * mul);
49 pPixels[9].a = clamp255(base + pTable[pBlock->get_selector(1, 2, selector_bits)] * mul);
50 pPixels[10].a = clamp255(base + pTable[pBlock->get_selector(2, 2, selector_bits)] * mul);
51 pPixels[11].a = clamp255(base + pTable[pBlock->get_selector(3, 2, selector_bits)] * mul);
52
53 pPixels[12].a = clamp255(base + pTable[pBlock->get_selector(0, 3, selector_bits)] * mul);
54 pPixels[13].a = clamp255(base + pTable[pBlock->get_selector(1, 3, selector_bits)] * mul);
55 pPixels[14].a = clamp255(base + pTable[pBlock->get_selector(2, 3, selector_bits)] * mul);
56 pPixels[15].a = clamp255(base + pTable[pBlock->get_selector(3, 3, selector_bits)] * mul);
57 }
58
59 struct bc1_block
60 {

Callers 1

unpack_blockFunction · 0.85

Calls 3

clamp255Function · 0.70
get_selector_bitsMethod · 0.45
get_selectorMethod · 0.45

Tested by

no test coverage detected