66 color_array[0].
a = 0xFF;
78 color_array[1].
a = 0xFF;
88 color_array[2].
r = (2 * color_array[0].
r + color_array[1].
r) / 3;
89 color_array[2].
g = (2 * color_array[0].
g + color_array[1].
g) / 3;
90 color_array[2].
b = (2 * color_array[0].
b + color_array[1].
b) / 3;
91 color_array[2].
a = 0xFF;
93 color_array[3].
r = (2 * color_array[1].
r + color_array[0].
r) / 3;
94 color_array[3].
g = (2 * color_array[1].
g + color_array[0].
g) / 3;
95 color_array[3].
b = (2 * color_array[1].
b + color_array[0].
b) / 3;
96 color_array[3].
a = 0xFF;
102 color_array[2].
r = (color_array[0].
r + color_array[1].
r) / 2;
103 color_array[2].
g = (color_array[0].
g + color_array[1].
g) / 2;
104 color_array[2].
b = (color_array[0].
b + color_array[1].
b) / 2;
105 color_array[2].
a = 0xFF;
108 color_array[3].
r = 0x00;
109 color_array[3].
g = 0x00;
110 color_array[3].
b = 0x00;
111 color_array[3].
a = 0x00;
119 color_array[0].
b = (3 *
col0.
b * 22) / 8;
121 color_array[0].
r = (3 *
col0.
r * 22) / 8;
122 color_array[0].
a = 0xFF;
124 color_array[1].
r = (3 *
col1.
r * 22) / 8;
126 color_array[1].
b = (3 *
col1.
b * 22) / 8;
127 color_array[1].
a = 0xFF;
129 int gdiff = color_array[1].
g - color_array[0].
g;
133 color_array[2].
r = ((2 *
col0.
r +
col1.
r) * 22) / 8;
134 color_array[2].
g = (256 * color_array[0].
g + gdiff / 4 + 128 + gdiff * 80) / 256;
135 color_array[2].
b = ((2 *
col0.
b +
col1.
b) * 22) / 8;
136 color_array[2].
a = 0xFF;
138 color_array[3].
r = ((2 *
col1.
r +
col0.
r) * 22) / 8;
139 color_array[3].
g = (256 * color_array[1].
g - gdiff / 4 + 128 - gdiff * 80) / 256;
140 color_array[3].
b = ((2 *
col1.
b +
col0.
b) * 22) / 8;
141 color_array[3].
a = 0xFF;
148 color_array[2].
g = (256 * color_array[0].
g + gdiff / 4 + 128 + gdiff * 128) / 256;
150 color_array[2].
a = 0xFF;
153 color_array[3].
r = 0x00;
154 color_array[3].
g = 0x00;
155 color_array[3].
b = 0x00;
156 color_array[3].
a = 0x00;
167 color_array[0].
a = 0xFF;
172 color_array[1].
a = 0xFF;
175 color_array[2].
r = (color_array[0].
r + color_array[1].
r) / 2;
176 color_array[2].
g = (color_array[0].
g + color_array[1].
g) / 2;
177 color_array[2].
b = (color_array[0].
b + color_array[1].
b) / 2;
178 color_array[2].
a = 0xFF;
181 color_array[3].
r = 0x00;
182 color_array[3].
g = 0x00;
183 color_array[3].
b = 0x00;
184 color_array[3].
a = 0x00;
193 color_array[0].
a = 0xFF;
198 color_array[1].
a = 0xFF;
201 color_array[2].
r = (2 * color_array[0].
r + color_array[1].
r) / 3;
202 color_array[2].
g = (2 * color_array[0].
g + color_array[1].
g) / 3;
203 color_array[2].
b = (2 * color_array[0].
b + color_array[1].
b) / 3;
204 color_array[2].
a = 0xFF;
206 color_array[3].
r = (2 * color_array[1].
r + color_array[0].
r) / 3;
207 color_array[3].
g = (2 * color_array[1].
g + color_array[0].
g) / 3;
208 color_array[3].
b = (2 * color_array[1].
b + color_array[0].
b) / 3;
209 color_array[3].
a = 0xFF;
219 for (
uint j = 0; j < 4; j++) {
220 for (
uint i = 0; i < 4; i++) {
221 uint idx = (
row[j] >> (2 * i)) & 3;
222 block->
color(i, j) = color_array[idx];
234 for (
uint j = 0; j < 4; j++) {
235 for (
uint i = 0; i < 4; i++) {
236 uint idx = (
row[j] >> (2 * i)) & 3;
237 block->
color(i, j) = color_array[idx];
245 for (
uint i = 0; i < 16; i++) {
246 indices |= (idx[i] & 3) << (2 * i);
373 index_array[0x0] =
bits0();
374 index_array[0x1] =
bits1();
375 index_array[0x2] =
bits2();
376 index_array[0x3] =
bits3();
377 index_array[0x4] =
bits4();
378 index_array[0x5] =
bits5();
379 index_array[0x6] =
bits6();
380 index_array[0x7] =
bits7();
381 index_array[0x8] =
bits8();
382 index_array[0x9] =
bits9();
383 index_array[0xA] =
bitsA();
384 index_array[0xB] =
bitsB();
385 index_array[0xC] =
bitsC();
386 index_array[0xD] =
bitsD();
387 index_array[0xE] =
bitsE();
388 index_array[0xF] =
bitsF();
393 int offset = (3 *
index + 16);
394 return uint((this->
u >> offset) & 0x7);
399 int offset = (3 *
index + 16);
401 this->
u = (this->
u & ~mask) | (
uint64(value) << offset);
406 uint8 alpha_array[8];
409 uint8 index_array[16];
412 for (
uint i = 0; i < 16; i++) {
413 block->
color(i).
a = alpha_array[index_array[i]];
423 tmp |= (*b & (
uint64)(0x000000000FFF0000LL)) << 36;
424 tmp |= (*b & (
uint64)(0x000000FFF0000000LL)) << 12;
425 tmp |= (*b & (
uint64)(0x000FFF0000000000LL)) >> 12;
426 tmp |= (*b & (
uint64)(0xFFF0000000000000LL)) >> 36;
436 uint tmp = (*b & 0xFF000000);
437 tmp |= (*b & 0x00000FFF) << 12;
438 tmp |= (*b & 0x00FFF000) >> 12;
478 uint8 alpha_array[8];
481 uint8 index_array[16];
484 for (
uint i = 0; i < 16; i++) {
486 c.b =
c.g =
c.r = alpha_array[index_array[i]];
506 uint8 alpha_array[8];
507 uint8 index_array[16];
512 for (
uint i = 0; i < 16; i++) {
514 c.r = alpha_array[index_array[i]];
520 for (
uint i = 0; i < 16; i++) {
522 c.g = alpha_array[index_array[i]];
545 color_array[0].
b = 0x00;
546 color_array[0].
g =
col0[1];
547 color_array[0].
r =
col0[0];
548 color_array[0].
a = 0xFF;
550 color_array[1].
r = 0x00;
551 color_array[1].
g =
col0[1];
552 color_array[1].
b =
col1[0];
553 color_array[1].
a = 0xFF;
555 color_array[2].
r = 0x00;
556 color_array[2].
g = (2 * color_array[0].
g + color_array[1].
g) / 3;
557 color_array[2].
b = (2 * color_array[0].
b + color_array[1].
b) / 3;
558 color_array[2].
a = 0xFF;
560 color_array[3].
r = 0x00;
561 color_array[3].
g = (2 * color_array[1].
g + color_array[0].
g) / 3;
562 color_array[3].
b = (2 * color_array[1].
b + color_array[0].
b) / 3;
563 color_array[3].
a = 0xFF;
573 for (
uint j = 0; j < 4; j++) {
574 for (
uint i = 0; i < 4; i++) {
575 uint idx = (
row[j] >> (2 * i)) & 3;
576 block->
color(i, j) = color_array[idx];
584 for (
uint i = 0; i < 16; i++) {
585 indices |= (idx[i] & 3) << (2 * i);
611 for (
unsigned short &
alpha : block.
row) {
void mem_read(Stream &mem, BlockDXT1 &block)
unsigned long long uint64
static CCL_NAMESPACE_BEGIN const double alpha
void decodeBlock(ColorBlock *block) const
void indices(uint8 index_array[16]) const
uint index(uint index) const
void setIndex(uint index, uint value)
void decodeBlock(ColorBlock *block) const
void evaluatePalette8(uint8 alpha[8]) const
void evaluatePalette(uint8 alpha[8]) const
void evaluatePalette6(uint8 alpha[8]) const
void decodeBlock(ColorBlock *block) const
void decodeBlock(ColorBlock *block) const
void decodeBlock(ColorBlock *block) const
void setIndices(const int *idx)
void evaluatePalette(Color32 color_array[4]) const
void evaluatePalette3(Color32 color_array[4]) const
void decodeBlock(ColorBlock *block) const
void evaluatePalette4(Color32 color_array[4]) const
void setIndices(const int *idx)
uint evaluatePalette(Color32 color_array[4]) const
void decodeBlockNV5x(ColorBlock *block) const
uint evaluatePaletteNV5x(Color32 color_array[4]) const
void decodeBlockNV5x(ColorBlock *block) const
void decodeBlock(ColorBlock *block) const
void decodeBlockNV5x(ColorBlock *block) const
void decodeBlock(ColorBlock *block) const
Color32 color(uint i) const
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)