diff --git a/DirectXTex/BC.cpp b/DirectXTex/BC.cpp index 6448664..a342f2a 100644 --- a/DirectXTex/BC.cpp +++ b/DirectXTex/BC.cpp @@ -329,7 +329,7 @@ namespace assert(pColor && pBC); static_assert(sizeof(D3DX_BC1) == 8, "D3DX_BC1 should be 8 bytes"); - static XMVECTORF32 s_Scale = { 1.f / 31.f, 1.f / 63.f, 1.f / 31.f, 1.f }; + static XMVECTORF32 s_Scale = { { { 1.f / 31.f, 1.f / 63.f, 1.f / 31.f, 1.f } } }; XMVECTOR clr0 = XMLoadU565(reinterpret_cast(&pBC->rgb[0])); XMVECTOR clr1 = XMLoadU565(reinterpret_cast(&pBC->rgb[1])); diff --git a/DirectXTex/BC6HBC7.cpp b/DirectXTex/BC6HBC7.cpp index 605e93a..b98eef1 100644 --- a/DirectXTex/BC6HBC7.cpp +++ b/DirectXTex/BC6HBC7.cpp @@ -1043,20 +1043,20 @@ const D3DX_BC6H::ModeDescriptor D3DX_BC6H::ms_aDesc[14][82] = // Mode, Partitions, Transformed, IndexPrec, RGBAPrec const D3DX_BC6H::ModeInfo D3DX_BC6H::ms_aInfo[] = { - {0x00, 1, true, 3, LDRColorA(10,10,10,0), LDRColorA( 5, 5, 5,0), LDRColorA(5,5,5,0), LDRColorA(5,5,5,0)}, // Mode 1 - {0x01, 1, true, 3, LDRColorA( 7, 7, 7,0), LDRColorA( 6, 6, 6,0), LDRColorA(6,6,6,0), LDRColorA(6,6,6,0)}, // Mode 2 - {0x02, 1, true, 3, LDRColorA(11,11,11,0), LDRColorA( 5, 4, 4,0), LDRColorA(5,4,4,0), LDRColorA(5,4,4,0)}, // Mode 3 - {0x06, 1, true, 3, LDRColorA(11,11,11,0), LDRColorA( 4, 5, 4,0), LDRColorA(4,5,4,0), LDRColorA(4,5,4,0)}, // Mode 4 - {0x0a, 1, true, 3, LDRColorA(11,11,11,0), LDRColorA( 4, 4, 5,0), LDRColorA(4,4,5,0), LDRColorA(4,4,5,0)}, // Mode 5 - {0x0e, 1, true, 3, LDRColorA( 9, 9, 9,0), LDRColorA( 5, 5, 5,0), LDRColorA(5,5,5,0), LDRColorA(5,5,5,0)}, // Mode 6 - {0x12, 1, true, 3, LDRColorA( 8, 8, 8,0), LDRColorA( 6, 5, 5,0), LDRColorA(6,5,5,0), LDRColorA(6,5,5,0)}, // Mode 7 - {0x16, 1, true, 3, LDRColorA( 8, 8, 8,0), LDRColorA( 5, 6, 5,0), LDRColorA(5,6,5,0), LDRColorA(5,6,5,0)}, // Mode 8 - {0x1a, 1, true, 3, LDRColorA( 8, 8, 8,0), LDRColorA( 5, 5, 6,0), LDRColorA(5,5,6,0), LDRColorA(5,5,6,0)}, // Mode 9 - {0x1e, 1, false, 3, LDRColorA( 6, 6, 6,0), LDRColorA( 6, 6, 6,0), LDRColorA(6,6,6,0), LDRColorA(6,6,6,0)}, // Mode 10 - {0x03, 0, false, 4, LDRColorA(10,10,10,0), LDRColorA(10,10,10,0), LDRColorA(0,0,0,0), LDRColorA(0,0,0,0)}, // Mode 11 - {0x07, 0, true, 4, LDRColorA(11,11,11,0), LDRColorA( 9, 9, 9,0), LDRColorA(0,0,0,0), LDRColorA(0,0,0,0)}, // Mode 12 - {0x0b, 0, true, 4, LDRColorA(12,12,12,0), LDRColorA( 8, 8, 8,0), LDRColorA(0,0,0,0), LDRColorA(0,0,0,0)}, // Mode 13 - {0x0f, 0, true, 4, LDRColorA(16,16,16,0), LDRColorA( 4, 4, 4,0), LDRColorA(0,0,0,0), LDRColorA(0,0,0,0)}, // Mode 14 + {0x00, 1, true, 3, { { LDRColorA(10,10,10,0), LDRColorA( 5, 5, 5,0) }, { LDRColorA(5,5,5,0), LDRColorA(5,5,5,0) } } }, // Mode 1 + {0x01, 1, true, 3, { { LDRColorA( 7, 7, 7,0), LDRColorA( 6, 6, 6,0) }, { LDRColorA(6,6,6,0), LDRColorA(6,6,6,0) } } }, // Mode 2 + {0x02, 1, true, 3, { { LDRColorA(11,11,11,0), LDRColorA( 5, 4, 4,0) }, { LDRColorA(5,4,4,0), LDRColorA(5,4,4,0) } } }, // Mode 3 + {0x06, 1, true, 3, { { LDRColorA(11,11,11,0), LDRColorA( 4, 5, 4,0) }, { LDRColorA(4,5,4,0), LDRColorA(4,5,4,0) } } }, // Mode 4 + {0x0a, 1, true, 3, { { LDRColorA(11,11,11,0), LDRColorA( 4, 4, 5,0) }, { LDRColorA(4,4,5,0), LDRColorA(4,4,5,0) } } }, // Mode 5 + {0x0e, 1, true, 3, { { LDRColorA( 9, 9, 9,0), LDRColorA( 5, 5, 5,0) }, { LDRColorA(5,5,5,0), LDRColorA(5,5,5,0) } } }, // Mode 6 + {0x12, 1, true, 3, { { LDRColorA( 8, 8, 8,0), LDRColorA( 6, 5, 5,0) }, { LDRColorA(6,5,5,0), LDRColorA(6,5,5,0) } } }, // Mode 7 + {0x16, 1, true, 3, { { LDRColorA( 8, 8, 8,0), LDRColorA( 5, 6, 5,0) }, { LDRColorA(5,6,5,0), LDRColorA(5,6,5,0) } } }, // Mode 8 + {0x1a, 1, true, 3, { { LDRColorA( 8, 8, 8,0), LDRColorA( 5, 5, 6,0) }, { LDRColorA(5,5,6,0), LDRColorA(5,5,6,0) } } }, // Mode 9 + {0x1e, 1, false, 3, { { LDRColorA( 6, 6, 6,0), LDRColorA( 6, 6, 6,0) }, { LDRColorA(6,6,6,0), LDRColorA(6,6,6,0) } } }, // Mode 10 + {0x03, 0, false, 4, { { LDRColorA(10,10,10,0), LDRColorA(10,10,10,0) }, { LDRColorA(0,0,0,0), LDRColorA(0,0,0,0) } } }, // Mode 11 + {0x07, 0, true, 4, { { LDRColorA(11,11,11,0), LDRColorA( 9, 9, 9,0) }, { LDRColorA(0,0,0,0), LDRColorA(0,0,0,0) } } }, // Mode 12 + {0x0b, 0, true, 4, { { LDRColorA(12,12,12,0), LDRColorA( 8, 8, 8,0) }, { LDRColorA(0,0,0,0), LDRColorA(0,0,0,0) } } }, // Mode 13 + {0x0f, 0, true, 4, { { LDRColorA(16,16,16,0), LDRColorA( 4, 4, 4,0) }, { LDRColorA(0,0,0,0), LDRColorA(0,0,0,0) } } }, // Mode 14 }; const int D3DX_BC6H::ms_aModeToInfo[] = @@ -1574,7 +1574,7 @@ namespace if (uIndexPrec2 == 0) { - for (register size_t i = 0; i < uNumIndices && fBestErr > 0; i++) + for (size_t i = 0; i < uNumIndices && fBestErr > 0; i++) { XMVECTOR tpixel = XMLoadUByte4(reinterpret_cast(&aPalette[i])); // Compute ErrorMetric @@ -1593,7 +1593,7 @@ namespace } else { - for (register size_t i = 0; i < uNumIndices && fBestErr > 0; i++) + for (size_t i = 0; i < uNumIndices && fBestErr > 0; i++) { XMVECTOR tpixel = XMLoadUByte4(reinterpret_cast(&aPalette[i])); // Compute ErrorMetricRGB @@ -1610,7 +1610,7 @@ namespace } fTotalErr += fBestErr; fBestErr = FLT_MAX; - for (register size_t i = 0; i < uNumIndices2 && fBestErr > 0; i++) + for (size_t i = 0; i < uNumIndices2 && fBestErr > 0; i++) { // Compute ErrorMetricAlpha float ea = float(pixel.a) - float(aPalette[i].a); @@ -1837,9 +1837,9 @@ void D3DX_BC6H::Encode(bool bSigned, const HDRColorA* const pIn) } // Bubble up the first uItems items - for (register size_t i = 0; i < uItems; i++) + for (size_t i = 0; i < uItems; i++) { - for (register size_t j = i + 1; j < uShapes; j++) + for (size_t j = i + 1; j < uShapes; j++) { if (afRoughMSE[i] > afRoughMSE[j]) { @@ -2423,7 +2423,7 @@ void D3DX_BC6H::GeneratePaletteUnquantized(const EncodeParams* pEP, size_t uRegi return; } - for (register size_t i = 0; i < uNumIndices; ++i) + for (size_t i = 0; i < uNumIndices; ++i) { aPalette[i].r = (endPts.A.r * (BC67_WEIGHT_MAX - aWeights[i]) + endPts.B.r * aWeights[i] + BC67_WEIGHT_ROUND) >> BC67_WEIGHT_SHIFT; aPalette[i].g = (endPts.A.g * (BC67_WEIGHT_MAX - aWeights[i]) + endPts.B.g * aWeights[i] + BC67_WEIGHT_ROUND) >> BC67_WEIGHT_SHIFT; @@ -2476,7 +2476,7 @@ float D3DX_BC6H::RoughMSE(EncodeParams* pEP) const for (size_t p = 0; p <= uPartitions; ++p) { size_t np = 0; - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; ++i) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; ++i) { if (g_aPartitionTable[uPartitions][pEP->uShape][i] == p) { @@ -2542,7 +2542,7 @@ void D3DX_BC7::Decode(HDRColorA* pOut) const const uint8_t uNumEndPts = (uPartitions + 1) << 1; const uint8_t uIndexPrec = ms_aInfo[uMode].uIndexPrec; const uint8_t uIndexPrec2 = ms_aInfo[uMode].uIndexPrec2; - register size_t i; + size_t i; size_t uStartBit = uMode + 1; uint8_t P[6]; uint8_t uShape = GetBits(uStartBit, ms_aInfo[uMode].uPartitionBits); @@ -2643,7 +2643,7 @@ void D3DX_BC7::Decode(HDRColorA* pOut) const for (i = 0; i < uNumEndPts; i++) { size_t pi = i * ms_aInfo[uMode].uPBits / uNumEndPts; - for (register uint8_t ch = 0; ch < BC7_NUM_CHANNELS; ch++) + for (uint8_t ch = 0; ch < BC7_NUM_CHANNELS; ch++) { if (RGBAPrec[ch] != RGBAPrecWithP[ch]) { @@ -2780,9 +2780,9 @@ void D3DX_BC7::Encode(DWORD flags, const HDRColorA* const pIn) { switch (r) { - case 1: for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].r, EP.aLDRPixels[i].a); break; - case 2: for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].g, EP.aLDRPixels[i].a); break; - case 3: for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].b, EP.aLDRPixels[i].a); break; + case 1: for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].r, EP.aLDRPixels[i].a); break; + case 2: for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].g, EP.aLDRPixels[i].a); break; + case 3: for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].b, EP.aLDRPixels[i].a); break; } for (size_t im = 0; im < uNumIdxMode && fMSEBest > 0; ++im) @@ -2820,9 +2820,9 @@ void D3DX_BC7::Encode(DWORD flags, const HDRColorA* const pIn) switch (r) { - case 1: for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].r, EP.aLDRPixels[i].a); break; - case 2: for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].g, EP.aLDRPixels[i].a); break; - case 3: for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].b, EP.aLDRPixels[i].a); break; + case 1: for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].r, EP.aLDRPixels[i].a); break; + case 2: for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].g, EP.aLDRPixels[i].a); break; + case 3: for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) std::swap(EP.aLDRPixels[i].b, EP.aLDRPixels[i].a); break; } } } @@ -2849,14 +2849,14 @@ void D3DX_BC7::GeneratePaletteQuantized(const EncodeParams* pEP, size_t uIndexMo LDRColorA b = Unquantize(endPts.B, ms_aInfo[pEP->uMode].RGBAPrecWithP); if (uIndexPrec2 == 0) { - for (register size_t i = 0; i < uNumIndices; i++) + for (size_t i = 0; i < uNumIndices; i++) LDRColorA::Interpolate(a, b, i, i, uIndexPrec, uIndexPrec, aPalette[i]); } else { - for (register size_t i = 0; i < uNumIndices; i++) + for (size_t i = 0; i < uNumIndices; i++) LDRColorA::InterpolateRGB(a, b, i, uIndexPrec, aPalette[i]); - for (register size_t i = 0; i < uNumIndices2; i++) + for (size_t i = 0; i < uNumIndices2; i++) LDRColorA::InterpolateA(a, b, i, uIndexPrec2, aPalette[i]); } } @@ -3055,7 +3055,7 @@ void D3DX_BC7::OptimizeEndPoints(const EncodeParams* pEP, size_t uShape, size_t { // collect the pixels in the region size_t np = 0; - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; ++i) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; ++i) if (g_aPartitionTable[uPartitions][uShape][i] == p) aPixels[np++] = pEP->aLDRPixels[i]; @@ -3094,7 +3094,7 @@ void D3DX_BC7::AssignIndices(const EncodeParams* pEP, size_t uShape, size_t uInd afTotErr[p] = 0; } - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) { uint8_t uRegion = g_aPartitionTable[uPartitions][uShape][i]; assert(uRegion < BC7_MAX_REGIONS); @@ -3105,12 +3105,12 @@ void D3DX_BC7::AssignIndices(const EncodeParams* pEP, size_t uShape, size_t uInd // swap endpoints as needed to ensure that the indices at index_positions have a 0 high-order bit if (uIndexPrec2 == 0) { - for (register size_t p = 0; p <= uPartitions; p++) + for (size_t p = 0; p <= uPartitions; p++) { if (aIndices[g_aFixUp[uPartitions][uShape][p]] & uHighestIndexBit) { std::swap(endPts[p].A, endPts[p].B); - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) if (g_aPartitionTable[uPartitions][uShape][i] == p) aIndices[i] = uNumIndices - 1 - aIndices[i]; } @@ -3119,14 +3119,14 @@ void D3DX_BC7::AssignIndices(const EncodeParams* pEP, size_t uShape, size_t uInd } else { - for (register size_t p = 0; p <= uPartitions; p++) + for (size_t p = 0; p <= uPartitions; p++) { if (aIndices[g_aFixUp[uPartitions][uShape][p]] & uHighestIndexBit) { std::swap(endPts[p].A.r, endPts[p].B.r); std::swap(endPts[p].A.g, endPts[p].B.g); std::swap(endPts[p].A.b, endPts[p].B.b); - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) if (g_aPartitionTable[uPartitions][uShape][i] == p) aIndices[i] = uNumIndices - 1 - aIndices[i]; } @@ -3135,7 +3135,7 @@ void D3DX_BC7::AssignIndices(const EncodeParams* pEP, size_t uShape, size_t uInd if (aIndices2[0] & uHighestIndexBit2) { std::swap(endPts[p].A.a, endPts[p].B.a); - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) aIndices2[i] = uNumIndices2 - 1 - aIndices2[i]; } assert((aIndices2[0] & uHighestIndexBit2) == 0); @@ -3156,7 +3156,7 @@ void D3DX_BC7::EmitBlock(const EncodeParams* pEP, size_t uShape, size_t uRotatio const size_t uIndexPrec2 = ms_aInfo[pEP->uMode].uIndexPrec2; const LDRColorA RGBAPrec = ms_aInfo[pEP->uMode].RGBAPrec; const LDRColorA RGBAPrecWithP = ms_aInfo[pEP->uMode].RGBAPrecWithP; - register size_t i; + size_t i; size_t uStartBit = 0; SetBits(uStartBit, pEP->uMode, 0); SetBits(uStartBit, 1, 1); @@ -3251,7 +3251,7 @@ float D3DX_BC7::Refine(const EncodeParams* pEP, size_t uShape, size_t uRotation, float aOrgErr[BC7_MAX_REGIONS]; float aOptErr[BC7_MAX_REGIONS]; - for(register size_t p = 0; p <= uPartitions; p++) + for(size_t p = 0; p <= uPartitions; p++) { aOrgEndPts[p].A = Quantize(aEndPts[p].A, ms_aInfo[pEP->uMode].RGBAPrecWithP); aOrgEndPts[p].B = Quantize(aEndPts[p].B, ms_aInfo[pEP->uMode].RGBAPrecWithP); @@ -3262,7 +3262,7 @@ float D3DX_BC7::Refine(const EncodeParams* pEP, size_t uShape, size_t uRotation, AssignIndices(pEP, uShape, uIndexMode, aOptEndPts, aOptIdx, aOptIdx2, aOptErr); float fOrgTotErr = 0, fOptTotErr = 0; - for(register size_t p = 0; p <= uPartitions; p++) + for(size_t p = 0; p <= uPartitions; p++) { fOrgTotErr += aOrgErr[p]; fOptTotErr += aOptErr[p]; @@ -3289,7 +3289,7 @@ float D3DX_BC7::MapColors(const EncodeParams* pEP, const LDRColorA aColors[], si float fTotalErr = 0; GeneratePaletteQuantized(pEP, uIndexMode, endPts, aPalette); - for (register size_t i = 0; i < np; ++i) + for (size_t i = 0; i < np; ++i) { fTotalErr += ComputeError(aColors[i], aPalette, uIndexPrec, uIndexPrec2); if (fTotalErr > fMinErr) // check for early exit @@ -3324,7 +3324,7 @@ float D3DX_BC7::RoughMSE(EncodeParams* pEP, size_t uShape, size_t uIndexMode) for (size_t p = 0; p <= uPartitions; p++) { size_t np = 0; - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) { if (g_aPartitionTable[uPartitions][uShape][i] == p) { @@ -3361,7 +3361,7 @@ float D3DX_BC7::RoughMSE(EncodeParams* pEP, size_t uShape, size_t uIndexMode) else { uint8_t uMinAlpha = 255, uMaxAlpha = 0; - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; ++i) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; ++i) { uMinAlpha = std::min(uMinAlpha, pEP->aLDRPixels[auPixIdx[i]].a); uMaxAlpha = std::max(uMaxAlpha, pEP->aLDRPixels[auPixIdx[i]].a); @@ -3383,22 +3383,22 @@ float D3DX_BC7::RoughMSE(EncodeParams* pEP, size_t uShape, size_t uIndexMode) if (uIndexPrec2 == 0) { for (size_t p = 0; p <= uPartitions; p++) - for (register size_t i = 0; i < uNumIndices; i++) + for (size_t i = 0; i < uNumIndices; i++) LDRColorA::Interpolate(aEndPts[p].A, aEndPts[p].B, i, i, uIndexPrec, uIndexPrec, aPalette[p][i]); } else { for (size_t p = 0; p <= uPartitions; p++) { - for (register size_t i = 0; i < uNumIndices; i++) + for (size_t i = 0; i < uNumIndices; i++) LDRColorA::InterpolateRGB(aEndPts[p].A, aEndPts[p].B, i, uIndexPrec, aPalette[p][i]); - for (register size_t i = 0; i < uNumIndices2; i++) + for (size_t i = 0; i < uNumIndices2; i++) LDRColorA::InterpolateA(aEndPts[p].A, aEndPts[p].B, i, uIndexPrec2, aPalette[p][i]); } } float fTotalErr = 0; - for (register size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) + for (size_t i = 0; i < NUM_PIXELS_PER_BLOCK; i++) { uint8_t uRegion = g_aPartitionTable[uPartitions][uShape][i]; fTotalErr += ComputeError(pEP->aLDRPixels[i], aPalette[uRegion], uIndexPrec, uIndexPrec2); diff --git a/DirectXTex/DirectXTexCompress.cpp b/DirectXTex/DirectXTexCompress.cpp index 3afac25..2c25c54 100644 --- a/DirectXTex/DirectXTexCompress.cpp +++ b/DirectXTex/DirectXTexCompress.cpp @@ -28,20 +28,20 @@ namespace { inline DWORD GetBCFlags(_In_ DWORD compress) { - static_assert(TEX_COMPRESS_RGB_DITHER == BC_FLAGS_DITHER_RGB, "TEX_COMPRESS_* flags should match BC_FLAGS_*"); - static_assert(TEX_COMPRESS_A_DITHER == BC_FLAGS_DITHER_A, "TEX_COMPRESS_* flags should match BC_FLAGS_*"); - static_assert(TEX_COMPRESS_DITHER == (BC_FLAGS_DITHER_RGB | BC_FLAGS_DITHER_A), "TEX_COMPRESS_* flags should match BC_FLAGS_*"); - static_assert(TEX_COMPRESS_UNIFORM == BC_FLAGS_UNIFORM, "TEX_COMPRESS_* flags should match BC_FLAGS_*"); - static_assert(TEX_COMPRESS_BC7_USE_3SUBSETS == BC_FLAGS_USE_3SUBSETS, "TEX_COMPRESS_* flags should match BC_FLAGS_*"); - static_assert(TEX_COMPRESS_BC7_QUICK == BC_FLAGS_FORCE_BC7_MODE6, "TEX_COMPRESS_* flags should match BC_FLAGS_*"); + static_assert(static_cast(TEX_COMPRESS_RGB_DITHER) == static_cast(BC_FLAGS_DITHER_RGB), "TEX_COMPRESS_* flags should match BC_FLAGS_*"); + static_assert(static_cast(TEX_COMPRESS_A_DITHER) == static_cast(BC_FLAGS_DITHER_A), "TEX_COMPRESS_* flags should match BC_FLAGS_*"); + static_assert(static_cast(TEX_COMPRESS_DITHER) == static_cast(BC_FLAGS_DITHER_RGB | BC_FLAGS_DITHER_A), "TEX_COMPRESS_* flags should match BC_FLAGS_*"); + static_assert(static_cast(TEX_COMPRESS_UNIFORM) == static_cast(BC_FLAGS_UNIFORM), "TEX_COMPRESS_* flags should match BC_FLAGS_*"); + static_assert(static_cast(TEX_COMPRESS_BC7_USE_3SUBSETS) == static_cast(BC_FLAGS_USE_3SUBSETS), "TEX_COMPRESS_* flags should match BC_FLAGS_*"); + static_assert(static_cast(TEX_COMPRESS_BC7_QUICK) == static_cast(BC_FLAGS_FORCE_BC7_MODE6), "TEX_COMPRESS_* flags should match BC_FLAGS_*"); return (compress & (BC_FLAGS_DITHER_RGB | BC_FLAGS_DITHER_A | BC_FLAGS_UNIFORM | BC_FLAGS_USE_3SUBSETS | BC_FLAGS_FORCE_BC7_MODE6)); } inline DWORD GetSRGBFlags(_In_ DWORD compress) { - static_assert(TEX_COMPRESS_SRGB_IN == TEX_FILTER_SRGB_IN, "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); - static_assert(TEX_COMPRESS_SRGB_OUT == TEX_FILTER_SRGB_OUT, "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); - static_assert(TEX_COMPRESS_SRGB == TEX_FILTER_SRGB, "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_COMPRESS_SRGB_IN) == static_cast(TEX_FILTER_SRGB_IN), "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_COMPRESS_SRGB_OUT) == static_cast(TEX_FILTER_SRGB_OUT), "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_COMPRESS_SRGB) == static_cast(TEX_FILTER_SRGB), "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); return (compress & TEX_COMPRESS_SRGB); } @@ -532,7 +532,7 @@ namespace DirectX } // Scan blocks for non-opaque alpha - static const XMVECTORF32 threshold = { 0.99f, 0.99f, 0.99f, 0.99f }; + static const XMVECTORF32 threshold = { { { 0.99f, 0.99f, 0.99f, 0.99f } } }; __declspec(align(16)) XMVECTOR temp[16]; const uint8_t *pPixels = cImage.pixels; diff --git a/DirectXTex/DirectXTexCompressGPU.cpp b/DirectXTex/DirectXTexCompressGPU.cpp index fbfda44..076be2a 100644 --- a/DirectXTex/DirectXTexCompressGPU.cpp +++ b/DirectXTex/DirectXTexCompressGPU.cpp @@ -23,9 +23,9 @@ namespace { inline DWORD GetSRGBFlags(_In_ DWORD compress) { - static_assert(TEX_COMPRESS_SRGB_IN == TEX_FILTER_SRGB_IN, "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); - static_assert(TEX_COMPRESS_SRGB_OUT == TEX_FILTER_SRGB_OUT, "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); - static_assert(TEX_COMPRESS_SRGB == TEX_FILTER_SRGB, "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_COMPRESS_SRGB_IN) == static_cast(TEX_FILTER_SRGB_IN), "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_COMPRESS_SRGB_OUT) == static_cast(TEX_FILTER_SRGB_OUT), "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_COMPRESS_SRGB) == static_cast(TEX_FILTER_SRGB), "TEX_COMPRESS_SRGB* should match TEX_FILTER_SRGB*"); return (compress & TEX_COMPRESS_SRGB); } diff --git a/DirectXTex/DirectXTexConvert.cpp b/DirectXTex/DirectXTexConvert.cpp index 392dc66..4690481 100644 --- a/DirectXTex/DirectXTexConvert.cpp +++ b/DirectXTex/DirectXTexConvert.cpp @@ -192,10 +192,10 @@ namespace } #endif - const XMVECTORF32 g_Grayscale = { 0.2125f, 0.7154f, 0.0721f, 0.0f }; - const XMVECTORF32 g_HalfMin = { -65504.f, -65504.f, -65504.f, -65504.f }; - const XMVECTORF32 g_HalfMax = { 65504.f, 65504.f, 65504.f, 65504.f }; - const XMVECTORF32 g_8BitBias = { 0.5f / 255.f, 0.5f / 255.f, 0.5f / 255.f, 0.5f / 255.f }; + const XMVECTORF32 g_Grayscale = { { { 0.2125f, 0.7154f, 0.0721f, 0.0f } } }; + const XMVECTORF32 g_HalfMin = { { { -65504.f, -65504.f, -65504.f, -65504.f } } }; + const XMVECTORF32 g_HalfMax = { { { 65504.f, 65504.f, 65504.f, 65504.f } } }; + const XMVECTORF32 g_8BitBias = { { { 0.5f / 255.f, 0.5f / 255.f, 0.5f / 255.f, 0.5f / 255.f } } }; } //------------------------------------------------------------------------------------- @@ -707,9 +707,10 @@ bool DirectX::_ExpandScanline( return true; } return false; - } - return false; + default: + return false; + } } @@ -1209,7 +1210,7 @@ _Use_decl_annotations_ bool DirectX::_LoadScanline( case DXGI_FORMAT_B5G6R5_UNORM: if (size >= sizeof(XMU565)) { - static const XMVECTORF32 s_Scale = { 1.f / 31.f, 1.f / 63.f, 1.f / 31.f, 1.f }; + static const XMVECTORF32 s_Scale = { { { 1.f / 31.f, 1.f / 63.f, 1.f / 31.f, 1.f } } }; const XMU565 * __restrict sPtr = reinterpret_cast(pSource); for (size_t icount = 0; icount < (size - sizeof(XMU565) + 1); icount += sizeof(XMU565)) { @@ -1226,7 +1227,7 @@ _Use_decl_annotations_ bool DirectX::_LoadScanline( case DXGI_FORMAT_B5G5R5A1_UNORM: if (size >= sizeof(XMU555)) { - static const XMVECTORF32 s_Scale = { 1.f / 31.f, 1.f / 31.f, 1.f / 31.f, 1.f }; + static const XMVECTORF32 s_Scale = { { { 1.f / 31.f, 1.f / 31.f, 1.f / 31.f, 1.f } } }; const XMU555 * __restrict sPtr = reinterpret_cast(pSource); for (size_t icount = 0; icount < (size - sizeof(XMU555) + 1); icount += sizeof(XMU555)) { @@ -1493,7 +1494,7 @@ _Use_decl_annotations_ bool DirectX::_LoadScanline( case DXGI_FORMAT_B4G4R4A4_UNORM: if (size >= sizeof(XMUNIBBLE4)) { - static const XMVECTORF32 s_Scale = { 1.f / 15.f, 1.f / 15.f, 1.f / 15.f, 1.f / 15.f }; + static const XMVECTORF32 s_Scale = { { { 1.f / 15.f, 1.f / 15.f, 1.f / 15.f, 1.f / 15.f } } }; const XMUNIBBLE4 * __restrict sPtr = reinterpret_cast(pSource); for (size_t icount = 0; icount < (size - sizeof(XMUNIBBLE4) + 1); icount += sizeof(XMUNIBBLE4)) { @@ -1515,12 +1516,12 @@ _Use_decl_annotations_ bool DirectX::_LoadScanline( { if (dPtr >= ePtr) break; - XMVECTORF32 vResult = { + XMVECTORF32 vResult = { { { FloatFrom7e3(sPtr->x), FloatFrom7e3(sPtr->y), FloatFrom7e3(sPtr->z), (float)(sPtr->v >> 30) / 3.0f - }; + } } }; ++sPtr; @@ -1539,12 +1540,12 @@ _Use_decl_annotations_ bool DirectX::_LoadScanline( { if (dPtr >= ePtr) break; - XMVECTORF32 vResult = { + XMVECTORF32 vResult = { { { FloatFrom6e4(sPtr->x), FloatFrom6e4(sPtr->y), FloatFrom6e4(sPtr->z), (float)(sPtr->v >> 30) / 3.0f - }; + } } }; ++sPtr; @@ -1562,7 +1563,7 @@ _Use_decl_annotations_ bool DirectX::_LoadScanline( // Xbox One specific format if (size >= sizeof(uint8_t)) { - static const XMVECTORF32 s_Scale = { 1.f / 15.f, 1.f / 15.f, 0.f, 0.f }; + static const XMVECTORF32 s_Scale = { { { 1.f / 15.f, 1.f / 15.f, 0.f, 0.f } } }; const uint8_t * __restrict sPtr = reinterpret_cast(pSource); for (size_t icount = 0; icount < (size - sizeof(uint8_t) + 1); icount += sizeof(uint8_t)) { @@ -1810,7 +1811,7 @@ bool DirectX::_StoreScanline( case DXGI_FORMAT_D24_UNORM_S8_UINT: if (size >= sizeof(uint32_t)) { - static const XMVECTORF32 clamp = { 1.f, 255.f, 0.f, 0.f }; + static const XMVECTORF32 clamp = { { { 1.f, 255.f, 0.f, 0.f } } }; XMVECTOR zero = XMVectorZero(); uint32_t *dPtr = reinterpret_cast(pDestination); for (size_t icount = 0; icount < (size - sizeof(uint32_t) + 1); icount += sizeof(uint32_t)) @@ -2035,7 +2036,7 @@ bool DirectX::_StoreScanline( case DXGI_FORMAT_G8R8_G8B8_UNORM: if (size >= sizeof(XMUBYTEN4)) { - static XMVECTORU32 select1101 = { XM_SELECT_1, XM_SELECT_1, XM_SELECT_0, XM_SELECT_1 }; + static XMVECTORU32 select1101 = { { { XM_SELECT_1, XM_SELECT_1, XM_SELECT_0, XM_SELECT_1 } } }; XMUBYTEN4 * __restrict dPtr = reinterpret_cast(pDestination); for (size_t icount = 0; icount < (size - sizeof(XMUBYTEN4) + 1); icount += sizeof(XMUBYTEN4)) @@ -2054,7 +2055,7 @@ bool DirectX::_StoreScanline( case DXGI_FORMAT_B5G6R5_UNORM: if (size >= sizeof(XMU565)) { - static const XMVECTORF32 s_Scale = { 31.f, 63.f, 31.f, 1.f }; + static const XMVECTORF32 s_Scale = { { { 31.f, 63.f, 31.f, 1.f } } }; XMU565 * __restrict dPtr = reinterpret_cast(pDestination); for (size_t icount = 0; icount < (size - sizeof(XMU565) + 1); icount += sizeof(XMU565)) { @@ -2070,7 +2071,7 @@ bool DirectX::_StoreScanline( case DXGI_FORMAT_B5G5R5A1_UNORM: if (size >= sizeof(XMU555)) { - static const XMVECTORF32 s_Scale = { 31.f, 31.f, 31.f, 1.f }; + static const XMVECTORF32 s_Scale = { { { 31.f, 31.f, 31.f, 1.f } } }; XMU555 * __restrict dPtr = reinterpret_cast(pDestination); for (size_t icount = 0; icount < (size - sizeof(XMU555) + 1); icount += sizeof(XMU555)) { @@ -2358,7 +2359,7 @@ bool DirectX::_StoreScanline( case DXGI_FORMAT_B4G4R4A4_UNORM: if (size >= sizeof(XMUNIBBLE4)) { - static const XMVECTORF32 s_Scale = { 15.f, 15.f, 15.f, 15.f }; + static const XMVECTORF32 s_Scale = { { { 15.f, 15.f, 15.f, 15.f } } }; XMUNIBBLE4 * __restrict dPtr = reinterpret_cast(pDestination); for (size_t icount = 0; icount < (size - sizeof(XMUNIBBLE4) + 1); icount += sizeof(XMUNIBBLE4)) { @@ -2375,8 +2376,8 @@ bool DirectX::_StoreScanline( // Xbox One specific 7e3 format with alpha if (size >= sizeof(XMUDECN4)) { - static const XMVECTORF32 Scale = { 1.0f, 1.0f, 1.0f, 3.0f }; - static const XMVECTORF32 C = { 31.875f, 31.875f, 31.875f, 3.f }; + static const XMVECTORF32 Scale = { { { 1.0f, 1.0f, 1.0f, 3.0f } } }; + static const XMVECTORF32 C = { { { 31.875f, 31.875f, 31.875f, 3.f } } }; XMUDECN4 * __restrict dPtr = reinterpret_cast(pDestination); for (size_t icount = 0; icount < (size - sizeof(XMUDECN4) + 1); icount += sizeof(XMUDECN4)) @@ -2403,8 +2404,8 @@ bool DirectX::_StoreScanline( // Xbox One specific 6e4 format with alpha if (size >= sizeof(XMUDECN4)) { - static const XMVECTORF32 Scale = { 1.0f, 1.0f, 1.0f, 3.0f }; - static const XMVECTORF32 C = { 508.f, 508.f, 508.f, 3.f }; + static const XMVECTORF32 Scale = { { { 1.0f, 1.0f, 1.0f, 3.0f } } }; + static const XMVECTORF32 C = { { { 508.f, 508.f, 508.f, 3.f } } }; XMUDECN4 * __restrict dPtr = reinterpret_cast(pDestination); for (size_t icount = 0; icount < (size - sizeof(XMUDECN4) + 1); icount += sizeof(XMUDECN4)) @@ -2435,7 +2436,7 @@ bool DirectX::_StoreScanline( // Xbox One specific format if (size >= sizeof(uint8_t)) { - static const XMVECTORF32 s_Scale = { 15.f, 15.f, 0.f, 0.f }; + static const XMVECTORF32 s_Scale = { { { 15.f, 15.f, 0.f, 0.f } } }; uint8_t * __restrict dPtr = reinterpret_cast(pDestination); for (size_t icount = 0; icount < (size - sizeof(uint8_t) + 1); icount += sizeof(uint8_t)) { @@ -2974,6 +2975,9 @@ void DirectX::_ConvertScanline( case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: flags &= ~TEX_FILTER_SRGB_IN; break; + + default: + break; } switch (outFormat) @@ -2992,6 +2996,9 @@ void DirectX::_ConvertScanline( case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: flags &= ~TEX_FILTER_SRGB_OUT; break; + + default: + break; } if ((flags & (TEX_FILTER_SRGB_IN | TEX_FILTER_SRGB_OUT)) == (TEX_FILTER_SRGB_IN | TEX_FILTER_SRGB_OUT)) @@ -3025,7 +3032,7 @@ void DirectX::_ConvertScanline( if (in->flags & CONVF_STENCIL) { // Stencil -> Alpha - static const XMVECTORF32 S = { 1.f, 1.f, 1.f, 255.f }; + static const XMVECTORF32 S = { { { 1.f, 1.f, 1.f, 255.f } } }; if (out->flags & CONVF_UNORM) { @@ -3206,8 +3213,8 @@ void DirectX::_ConvertScanline( if (out->flags & CONVF_STENCIL) { // Alpha -> Stencil (green channel) - static const XMVECTORU32 select0100 = { XM_SELECT_0, XM_SELECT_1, XM_SELECT_0, XM_SELECT_0 }; - static const XMVECTORF32 S = { 255.f, 255.f, 255.f, 255.f }; + static const XMVECTORU32 select0100 = { { { XM_SELECT_0, XM_SELECT_1, XM_SELECT_0, XM_SELECT_0 } } }; + static const XMVECTORF32 S = { { { 255.f, 255.f, 255.f, 255.f } } }; if (in->flags & CONVF_UNORM) { @@ -3613,20 +3620,20 @@ namespace -0.468750f, 0.031250f, -0.343750f, 0.156250f, -0.468750f, 0.031250f, -0.343750f, 0.156250f, }; - const XMVECTORF32 g_Scale16pc = { 65535.f, 65535.f, 65535.f, 65535.f }; - const XMVECTORF32 g_Scale15pc = { 32767.f, 32767.f, 32767.f, 32767.f }; - const XMVECTORF32 g_Scale10pc = { 1023.f, 1023.f, 1023.f, 3.f }; - const XMVECTORF32 g_Scale9pc = { 511.f, 511.f, 511.f, 3.f }; - const XMVECTORF32 g_Scale8pc = { 255.f, 255.f, 255.f, 255.f }; - const XMVECTORF32 g_Scale7pc = { 127.f, 127.f, 127.f, 127.f }; - const XMVECTORF32 g_Scale565pc = { 31.f, 63.f, 31.f, 1.f }; - const XMVECTORF32 g_Scale5551pc = { 31.f, 31.f, 31.f, 1.f }; - const XMVECTORF32 g_Scale4pc = { 15.f, 15.f, 15.f, 15.f }; + const XMVECTORF32 g_Scale16pc = { { { 65535.f, 65535.f, 65535.f, 65535.f } } }; + const XMVECTORF32 g_Scale15pc = { { { 32767.f, 32767.f, 32767.f, 32767.f } } }; + const XMVECTORF32 g_Scale10pc = { { { 1023.f, 1023.f, 1023.f, 3.f } } }; + const XMVECTORF32 g_Scale9pc = { { { 511.f, 511.f, 511.f, 3.f } } }; + const XMVECTORF32 g_Scale8pc = { { { 255.f, 255.f, 255.f, 255.f } } }; + const XMVECTORF32 g_Scale7pc = { { { 127.f, 127.f, 127.f, 127.f } } }; + const XMVECTORF32 g_Scale565pc = { { { 31.f, 63.f, 31.f, 1.f } } }; + const XMVECTORF32 g_Scale5551pc = { { { 31.f, 31.f, 31.f, 1.f } } }; + const XMVECTORF32 g_Scale4pc = { { { 15.f, 15.f, 15.f, 15.f } } }; - const XMVECTORF32 g_ErrorWeight3 = { 3.f / 16.f, 3.f / 16.f, 3.f / 16.f, 3.f / 16.f }; - const XMVECTORF32 g_ErrorWeight5 = { 5.f / 16.f, 5.f / 16.f, 5.f / 16.f, 5.f / 16.f }; - const XMVECTORF32 g_ErrorWeight1 = { 1.f / 16.f, 1.f / 16.f, 1.f / 16.f, 1.f / 16.f }; - const XMVECTORF32 g_ErrorWeight7 = { 7.f / 16.f, 7.f / 16.f, 7.f / 16.f, 7.f / 16.f }; + const XMVECTORF32 g_ErrorWeight3 = { { { 3.f / 16.f, 3.f / 16.f, 3.f / 16.f, 3.f / 16.f } } }; + const XMVECTORF32 g_ErrorWeight5 = { { { 5.f / 16.f, 5.f / 16.f, 5.f / 16.f, 5.f / 16.f } } }; + const XMVECTORF32 g_ErrorWeight1 = { { { 1.f / 16.f, 1.f / 16.f, 1.f / 16.f, 1.f / 16.f } } }; + const XMVECTORF32 g_ErrorWeight7 = { { { 7.f / 16.f, 7.f / 16.f, 7.f / 16.f, 7.f / 16.f } } }; #define STORE_SCANLINE( type, scalev, clampzero, norm, itype, mask, row, bgr ) \ if ( size >= sizeof(type) ) \ @@ -3868,10 +3875,10 @@ bool DirectX::_StoreScanlineDither( case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: if (size >= sizeof(XMUDEC4)) { - static const XMVECTORF32 Scale = { 510.0f, 510.0f, 510.0f, 3.0f }; - static const XMVECTORF32 Bias = { 384.0f, 384.0f, 384.0f, 0.0f }; - static const XMVECTORF32 MinXR = { -0.7529f, -0.7529f, -0.7529f, 0.f }; - static const XMVECTORF32 MaxXR = { 1.2529f, 1.2529f, 1.2529f, 1.0f }; + static const XMVECTORF32 Scale = { { { 510.0f, 510.0f, 510.0f, 3.0f } } }; + static const XMVECTORF32 Bias = { { { 384.0f, 384.0f, 384.0f, 0.0f } } }; + static const XMVECTORF32 MinXR = { { { -0.7529f, -0.7529f, -0.7529f, 0.f } } }; + static const XMVECTORF32 MaxXR = { { { 1.2529f, 1.2529f, 1.2529f, 1.0f } } }; XMUDEC4 * __restrict dest = reinterpret_cast(pDestination); for (size_t i = 0; i < count; ++i) @@ -3947,9 +3954,9 @@ bool DirectX::_StoreScanlineDither( case DXGI_FORMAT_D24_UNORM_S8_UINT: if (size >= sizeof(uint32_t)) { - static const XMVECTORF32 Clamp = { 1.f, 255.f, 0.f, 0.f }; - static const XMVECTORF32 Scale = { 16777215.f, 1.f, 0.f, 0.f }; - static const XMVECTORF32 Scale2 = { 16777215.f, 255.f, 0.f, 0.f }; + static const XMVECTORF32 Clamp = { { { 1.f, 255.f, 0.f, 0.f } } }; + static const XMVECTORF32 Scale = { { { 16777215.f, 1.f, 0.f, 0.f } } }; + static const XMVECTORF32 Scale2 = { { { 16777215.f, 255.f, 0.f, 0.f } } }; uint32_t * __restrict dest = reinterpret_cast(pDestination); for (size_t i = 0; i < count; ++i) diff --git a/DirectXTex/DirectXTexD3D11.cpp b/DirectXTex/DirectXTexD3D11.cpp index 7b56403..29f2dae 100644 --- a/DirectXTex/DirectXTexD3D11.cpp +++ b/DirectXTex/DirectXTexD3D11.cpp @@ -26,9 +26,9 @@ using namespace DirectX; using Microsoft::WRL::ComPtr; -static_assert(TEX_DIMENSION_TEXTURE1D == D3D11_RESOURCE_DIMENSION_TEXTURE1D, "header enum mismatch"); -static_assert(TEX_DIMENSION_TEXTURE2D == D3D11_RESOURCE_DIMENSION_TEXTURE2D, "header enum mismatch"); -static_assert(TEX_DIMENSION_TEXTURE3D == D3D11_RESOURCE_DIMENSION_TEXTURE3D, "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE1D) == static_cast(D3D11_RESOURCE_DIMENSION_TEXTURE1D), "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE2D) == static_cast(D3D11_RESOURCE_DIMENSION_TEXTURE2D), "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE3D) == static_cast(D3D11_RESOURCE_DIMENSION_TEXTURE3D), "header enum mismatch"); namespace { @@ -240,6 +240,9 @@ bool DirectX::IsSupportedTexture( if (fl < D3D_FEATURE_LEVEL_11_0) return false; break; + + default: + break; } // Validate miplevel count diff --git a/DirectXTex/DirectXTexD3D12.cpp b/DirectXTex/DirectXTexD3D12.cpp index 6584bc9..768da0d 100644 --- a/DirectXTex/DirectXTexD3D12.cpp +++ b/DirectXTex/DirectXTexD3D12.cpp @@ -28,9 +28,9 @@ using namespace DirectX; using Microsoft::WRL::ComPtr; -static_assert(TEX_DIMENSION_TEXTURE1D == D3D12_RESOURCE_DIMENSION_TEXTURE1D, "header enum mismatch"); -static_assert(TEX_DIMENSION_TEXTURE2D == D3D12_RESOURCE_DIMENSION_TEXTURE2D, "header enum mismatch"); -static_assert(TEX_DIMENSION_TEXTURE3D == D3D12_RESOURCE_DIMENSION_TEXTURE3D, "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE1D) == static_cast(D3D12_RESOURCE_DIMENSION_TEXTURE1D), "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE2D) == static_cast(D3D12_RESOURCE_DIMENSION_TEXTURE2D), "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE3D) == static_cast(D3D12_RESOURCE_DIMENSION_TEXTURE3D), "header enum mismatch"); namespace { diff --git a/DirectXTex/DirectXTexDDS.cpp b/DirectXTex/DirectXTexDDS.cpp index 199dfcb..7373985 100644 --- a/DirectXTex/DirectXTexDDS.cpp +++ b/DirectXTex/DirectXTexDDS.cpp @@ -19,9 +19,9 @@ using namespace DirectX; -static_assert(TEX_DIMENSION_TEXTURE1D == DDS_DIMENSION_TEXTURE1D, "header enum mismatch"); -static_assert(TEX_DIMENSION_TEXTURE2D == DDS_DIMENSION_TEXTURE2D, "header enum mismatch"); -static_assert(TEX_DIMENSION_TEXTURE3D == DDS_DIMENSION_TEXTURE3D, "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE1D) == static_cast(DDS_DIMENSION_TEXTURE1D), "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE2D) == static_cast(DDS_DIMENSION_TEXTURE2D), "header enum mismatch"); +static_assert(static_cast(TEX_DIMENSION_TEXTURE3D) == static_cast(DDS_DIMENSION_TEXTURE3D), "header enum mismatch"); namespace { @@ -316,7 +316,7 @@ namespace return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); } - static_assert(TEX_MISC_TEXTURECUBE == DDS_RESOURCE_MISC_TEXTURECUBE, "DDS header mismatch"); + static_assert(static_cast(TEX_MISC_TEXTURECUBE) == static_cast(DDS_RESOURCE_MISC_TEXTURECUBE), "DDS header mismatch"); metadata.miscFlags = d3d10ext->miscFlag & ~TEX_MISC_TEXTURECUBE; @@ -368,13 +368,13 @@ namespace return HRESULT_FROM_WIN32(ERROR_INVALID_DATA); } - static_assert(TEX_MISC2_ALPHA_MODE_MASK == DDS_MISC_FLAGS2_ALPHA_MODE_MASK, "DDS header mismatch"); + static_assert(static_cast(TEX_MISC2_ALPHA_MODE_MASK) == static_cast(DDS_MISC_FLAGS2_ALPHA_MODE_MASK), "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_UNKNOWN == DDS_ALPHA_MODE_UNKNOWN, "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_STRAIGHT == DDS_ALPHA_MODE_STRAIGHT, "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_PREMULTIPLIED == DDS_ALPHA_MODE_PREMULTIPLIED, "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_OPAQUE == DDS_ALPHA_MODE_OPAQUE, "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_CUSTOM == DDS_ALPHA_MODE_CUSTOM, "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_UNKNOWN) == static_cast(DDS_ALPHA_MODE_UNKNOWN), "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_STRAIGHT) == static_cast(DDS_ALPHA_MODE_STRAIGHT), "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_PREMULTIPLIED) == static_cast(DDS_ALPHA_MODE_PREMULTIPLIED), "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_OPAQUE) == static_cast(DDS_ALPHA_MODE_OPAQUE), "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_CUSTOM) == static_cast(DDS_ALPHA_MODE_CUSTOM), "DDS header mismatch"); metadata.miscFlags2 = d3d10ext->miscFlags2; } @@ -436,6 +436,9 @@ namespace metadata.format = DXGI_FORMAT_R16G16B16A16_UNORM; convFlags |= CONV_FLAGS_L16 | CONV_FLAGS_EXPAND; break; + + default: + break; } } } @@ -474,6 +477,9 @@ namespace metadata.format = DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; convFlags |= CONV_FLAGS_SWIZZLE | CONV_FLAGS_NOALPHA; break; + + default: + break; } } @@ -489,6 +495,9 @@ namespace convFlags |= CONV_FLAGS_EXPAND; if (metadata.format == DXGI_FORMAT_B5G6R5_UNORM) convFlags |= CONV_FLAGS_NOALPHA; + + default: + break; } } @@ -583,6 +592,9 @@ HRESULT DirectX::_EncodeDDSHeader( case DXGI_FORMAT_R16_FLOAT: ddpf.dwSize = sizeof(DDS_PIXELFORMAT); ddpf.dwFlags = DDS_FOURCC; ddpf.dwFourCC = 111; // D3DFMT_R16F break; + + default: + break; } } @@ -695,7 +707,7 @@ HRESULT DirectX::_EncodeDDSHeader( if (metadata.arraySize > UINT16_MAX) return E_INVALIDARG; - static_assert(TEX_MISC_TEXTURECUBE == DDS_RESOURCE_MISC_TEXTURECUBE, "DDS header mismatch"); + static_assert(static_cast(TEX_MISC_TEXTURECUBE) == static_cast(DDS_RESOURCE_MISC_TEXTURECUBE), "DDS header mismatch"); ext->miscFlag = metadata.miscFlags & ~TEX_MISC_TEXTURECUBE; @@ -710,13 +722,13 @@ HRESULT DirectX::_EncodeDDSHeader( ext->arraySize = static_cast(metadata.arraySize); } - static_assert(TEX_MISC2_ALPHA_MODE_MASK == DDS_MISC_FLAGS2_ALPHA_MODE_MASK, "DDS header mismatch"); + static_assert(static_cast(TEX_MISC2_ALPHA_MODE_MASK) == static_cast(DDS_MISC_FLAGS2_ALPHA_MODE_MASK), "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_UNKNOWN == DDS_ALPHA_MODE_UNKNOWN, "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_STRAIGHT == DDS_ALPHA_MODE_STRAIGHT, "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_PREMULTIPLIED == DDS_ALPHA_MODE_PREMULTIPLIED, "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_OPAQUE == DDS_ALPHA_MODE_OPAQUE, "DDS header mismatch"); - static_assert(TEX_ALPHA_MODE_CUSTOM == DDS_ALPHA_MODE_CUSTOM, "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_UNKNOWN) == static_cast(DDS_ALPHA_MODE_UNKNOWN), "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_STRAIGHT) == static_cast(DDS_ALPHA_MODE_STRAIGHT), "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_PREMULTIPLIED) == static_cast(DDS_ALPHA_MODE_PREMULTIPLIED), "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_OPAQUE) == static_cast(DDS_ALPHA_MODE_OPAQUE), "DDS header mismatch"); + static_assert(static_cast(TEX_ALPHA_MODE_CUSTOM) == static_cast(DDS_ALPHA_MODE_CUSTOM), "DDS header mismatch"); if (flags & DDS_FLAGS_FORCE_DX10_EXT_MISC2) { @@ -867,6 +879,9 @@ namespace return true; } return false; + + default: + return false; } break; @@ -980,6 +995,9 @@ namespace return true; } return false; + + default: + return false; } break; @@ -1078,9 +1096,10 @@ namespace return true; } return false; - } - return false; + default: + return false; + } } @@ -1617,7 +1636,7 @@ HRESULT DirectX::LoadFromDDSFile( if (!(convFlags & CONV_FLAGS_DX10)) { // Must reset file position since we read more than the standard header above - LARGE_INTEGER filePos = { sizeof(uint32_t) + sizeof(DDS_HEADER), 0 }; + LARGE_INTEGER filePos = { { sizeof(uint32_t) + sizeof(DDS_HEADER), 0 } }; if (!SetFilePointerEx(hFile.get(), filePos, 0, FILE_BEGIN)) { return HRESULT_FROM_WIN32(GetLastError()); diff --git a/DirectXTex/DirectXTexFlipRotate.cpp b/DirectXTex/DirectXTexFlipRotate.cpp index 94a8d8d..8a6ad21 100644 --- a/DirectXTex/DirectXTexFlipRotate.cpp +++ b/DirectXTex/DirectXTexFlipRotate.cpp @@ -157,12 +157,12 @@ HRESULT DirectX::FlipRotate( return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); } - static_assert(TEX_FR_ROTATE0 == WICBitmapTransformRotate0, "TEX_FR_ROTATE0 no longer matches WIC"); - static_assert(TEX_FR_ROTATE90 == WICBitmapTransformRotate90, "TEX_FR_ROTATE90 no longer matches WIC"); - static_assert(TEX_FR_ROTATE180 == WICBitmapTransformRotate180, "TEX_FR_ROTATE180 no longer matches WIC"); - static_assert(TEX_FR_ROTATE270 == WICBitmapTransformRotate270, "TEX_FR_ROTATE270 no longer matches WIC"); - static_assert(TEX_FR_FLIP_HORIZONTAL == WICBitmapTransformFlipHorizontal, "TEX_FR_FLIP_HORIZONTAL no longer matches WIC"); - static_assert(TEX_FR_FLIP_VERTICAL == WICBitmapTransformFlipVertical, "TEX_FR_FLIP_VERTICAL no longer matches WIC"); + static_assert(static_cast(TEX_FR_ROTATE0) == static_cast(WICBitmapTransformRotate0), "TEX_FR_ROTATE0 no longer matches WIC"); + static_assert(static_cast(TEX_FR_ROTATE90) == static_cast(WICBitmapTransformRotate90), "TEX_FR_ROTATE90 no longer matches WIC"); + static_assert(static_cast(TEX_FR_ROTATE180) == static_cast(WICBitmapTransformRotate180), "TEX_FR_ROTATE180 no longer matches WIC"); + static_assert(static_cast(TEX_FR_ROTATE270) == static_cast(WICBitmapTransformRotate270), "TEX_FR_ROTATE270 no longer matches WIC"); + static_assert(static_cast(TEX_FR_FLIP_HORIZONTAL) == static_cast(WICBitmapTransformFlipHorizontal), "TEX_FR_FLIP_HORIZONTAL no longer matches WIC"); + static_assert(static_cast(TEX_FR_FLIP_VERTICAL) == static_cast(WICBitmapTransformFlipVertical), "TEX_FR_FLIP_VERTICAL no longer matches WIC"); // Only supports 90, 180, 270, or no rotation flags... not a combination of rotation flags switch (flags & (TEX_FR_ROTATE90 | TEX_FR_ROTATE180 | TEX_FR_ROTATE270)) @@ -239,12 +239,12 @@ HRESULT DirectX::FlipRotate( return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); } - static_assert(TEX_FR_ROTATE0 == WICBitmapTransformRotate0, "TEX_FR_ROTATE0 no longer matches WIC"); - static_assert(TEX_FR_ROTATE90 == WICBitmapTransformRotate90, "TEX_FR_ROTATE90 no longer matches WIC"); - static_assert(TEX_FR_ROTATE180 == WICBitmapTransformRotate180, "TEX_FR_ROTATE180 no longer matches WIC"); - static_assert(TEX_FR_ROTATE270 == WICBitmapTransformRotate270, "TEX_FR_ROTATE270 no longer matches WIC"); - static_assert(TEX_FR_FLIP_HORIZONTAL == WICBitmapTransformFlipHorizontal, "TEX_FR_FLIP_HORIZONTAL no longer matches WIC"); - static_assert(TEX_FR_FLIP_VERTICAL == WICBitmapTransformFlipVertical, "TEX_FR_FLIP_VERTICAL no longer matches WIC"); + static_assert(static_cast(TEX_FR_ROTATE0) == static_cast(WICBitmapTransformRotate0), "TEX_FR_ROTATE0 no longer matches WIC"); + static_assert(static_cast(TEX_FR_ROTATE90) == static_cast(WICBitmapTransformRotate90), "TEX_FR_ROTATE90 no longer matches WIC"); + static_assert(static_cast(TEX_FR_ROTATE180) == static_cast(WICBitmapTransformRotate180), "TEX_FR_ROTATE180 no longer matches WIC"); + static_assert(static_cast(TEX_FR_ROTATE270) == static_cast(WICBitmapTransformRotate270), "TEX_FR_ROTATE270 no longer matches WIC"); + static_assert(static_cast(TEX_FR_FLIP_HORIZONTAL) == static_cast(WICBitmapTransformFlipHorizontal), "TEX_FR_FLIP_HORIZONTAL no longer matches WIC"); + static_assert(static_cast(TEX_FR_FLIP_VERTICAL) == static_cast(WICBitmapTransformFlipVertical), "TEX_FR_FLIP_VERTICAL no longer matches WIC"); // Only supports 90, 180, 270, or no rotation flags... not a combination of rotation flags switch (flags & (TEX_FR_ROTATE90 | TEX_FR_ROTATE180 | TEX_FR_ROTATE270)) diff --git a/DirectXTex/DirectXTexHDR.cpp b/DirectXTex/DirectXTexHDR.cpp index efad091..5d1925c 100644 --- a/DirectXTex/DirectXTexHDR.cpp +++ b/DirectXTex/DirectXTexHDR.cpp @@ -486,7 +486,8 @@ namespace { if (spanPtr[(runLen - 1) * 4] != spanPtr[runLen * 4]) { - scan[runLen++] = spanPtr[runLen * 4]; + scan[runLen] = spanPtr[runLen * 4]; + runLen++; } else break; diff --git a/DirectXTex/DirectXTexImage.cpp b/DirectXTex/DirectXTexImage.cpp index 0b52a7b..5a6077f 100644 --- a/DirectXTex/DirectXTexImage.cpp +++ b/DirectXTex/DirectXTexImage.cpp @@ -768,7 +768,7 @@ bool ScratchImage::IsAlphaAllOpaque() const if (!scanline) return false; - static const XMVECTORF32 threshold = { 0.99f, 0.99f, 0.99f, 0.99f }; + static const XMVECTORF32 threshold = { { { 0.99f, 0.99f, 0.99f, 0.99f } } }; for (size_t index = 0; index < m_nimages; ++index) { diff --git a/DirectXTex/DirectXTexMipmaps.cpp b/DirectXTex/DirectXTexMipmaps.cpp index 8ce0bfb..3fe9cca 100644 --- a/DirectXTex/DirectXTexMipmaps.cpp +++ b/DirectXTex/DirectXTexMipmaps.cpp @@ -1294,7 +1294,7 @@ namespace { // Need to slightly bias results for floating-point error accumulation which can // be visible with harshly quantized values - static const XMVECTORF32 Bias = { 0.f, 0.f, 0.f, 0.1f }; + static const XMVECTORF32 Bias = { { { 0.f, 0.f, 0.f, 0.1f } } }; XMVECTOR* ptr = pAccSrc; for (size_t i = 0; i < dest->width; ++i, ++ptr) @@ -2474,7 +2474,7 @@ namespace { // Need to slightly bias results for floating-point error accumulation which can // be visible with harshly quantized values - static const XMVECTORF32 Bias = { 0.f, 0.f, 0.f, 0.1f }; + static const XMVECTORF32 Bias = { { { 0.f, 0.f, 0.f, 0.1f } } }; XMVECTOR* ptr = pAccSrc; for (size_t i = 0; i < dest->width; ++i, ++ptr) diff --git a/DirectXTex/DirectXTexMisc.cpp b/DirectXTex/DirectXTexMisc.cpp index b94143d..ee9c1cc 100644 --- a/DirectXTex/DirectXTexMisc.cpp +++ b/DirectXTex/DirectXTexMisc.cpp @@ -19,7 +19,7 @@ using namespace DirectX; namespace { - const XMVECTORF32 g_Gamma22 = { 2.2f, 2.2f, 2.2f, 1.f }; + const XMVECTORF32 g_Gamma22 = { { { 2.2f, 2.2f, 2.2f, 1.f } } }; //------------------------------------------------------------------------------------- HRESULT ComputeMSE_( @@ -60,6 +60,9 @@ namespace case DXGI_FORMAT_BC7_UNORM_SRGB: flags |= CMSE_IMAGE1_SRGB; break; + + default: + break; } switch (image2.format) @@ -80,6 +83,9 @@ namespace case DXGI_FORMAT_BC7_UNORM_SRGB: flags |= CMSE_IMAGE2_SRGB; break; + + default: + break; } const uint8_t *pSrc1 = image1.pixels; @@ -89,7 +95,7 @@ namespace const size_t rowPitch2 = image2.rowPitch; XMVECTOR acc = g_XMZero; - static XMVECTORF32 two = { 2.0f, 2.0f, 2.0f, 2.0f }; + static XMVECTORF32 two = { { { 2.0f, 2.0f, 2.0f, 2.0f } } }; for (size_t h = 0; h < image1.height; ++h) { diff --git a/DirectXTex/DirectXTexNormalMaps.cpp b/DirectXTex/DirectXTexNormalMaps.cpp index 051676f..be00499 100644 --- a/DirectXTex/DirectXTexNormalMaps.cpp +++ b/DirectXTex/DirectXTexNormalMaps.cpp @@ -25,7 +25,7 @@ namespace { XMFLOAT4A f; - static XMVECTORF32 lScale = { 0.2125f, 0.7154f, 0.0721f, 1.f }; + static XMVECTORF32 lScale = { { { 0.2125f, 0.7154f, 0.0721f, 1.f } } }; static_assert(CNMAP_CHANNEL_RED == 0x1, "CNMAP_CHANNEL_ flag values don't match mask"); switch (flags & 0xf) diff --git a/DirectXTex/DirectXTexP.h b/DirectXTex/DirectXTexP.h index 26be3db..c065c7a 100644 --- a/DirectXTex/DirectXTexP.h +++ b/DirectXTex/DirectXTexP.h @@ -97,8 +97,8 @@ namespace DirectX { static_assert( TEX_FILTER_DITHER == 0x10000, "TEX_FILTER_DITHER* flag values don't match mask" ); - static_assert( TEX_FILTER_DITHER == WIC_FLAGS_DITHER, "TEX_FILTER_DITHER* should match WIC_FLAGS_DITHER*" ); - static_assert( TEX_FILTER_DITHER_DIFFUSION == WIC_FLAGS_DITHER_DIFFUSION, "TEX_FILTER_DITHER* should match WIC_FLAGS_DITHER*" ); + static_assert(static_cast(TEX_FILTER_DITHER) == static_cast(WIC_FLAGS_DITHER), "TEX_FILTER_DITHER* should match WIC_FLAGS_DITHER*"); + static_assert(static_cast(TEX_FILTER_DITHER_DIFFUSION) == static_cast(WIC_FLAGS_DITHER_DIFFUSION), "TEX_FILTER_DITHER* should match WIC_FLAGS_DITHER*"); switch( flags & 0xF0000 ) { @@ -117,10 +117,10 @@ namespace DirectX { static_assert( TEX_FILTER_POINT == 0x100000, "TEX_FILTER_ flag values don't match TEX_FILTER_MASK" ); - static_assert( TEX_FILTER_POINT == WIC_FLAGS_FILTER_POINT, "TEX_FILTER_* flags should match WIC_FLAGS_FILTER_*" ); - static_assert( TEX_FILTER_LINEAR == WIC_FLAGS_FILTER_LINEAR, "TEX_FILTER_* flags should match WIC_FLAGS_FILTER_*" ); - static_assert( TEX_FILTER_CUBIC == WIC_FLAGS_FILTER_CUBIC, "TEX_FILTER_* flags should match WIC_FLAGS_FILTER_*" ); - static_assert( TEX_FILTER_FANT == WIC_FLAGS_FILTER_FANT, "TEX_FILTER_* flags should match WIC_FLAGS_FILTER_*" ); + static_assert(static_cast(TEX_FILTER_POINT) == static_cast(WIC_FLAGS_FILTER_POINT), "TEX_FILTER_* flags should match WIC_FLAGS_FILTER_*"); + static_assert(static_cast(TEX_FILTER_LINEAR) == static_cast(WIC_FLAGS_FILTER_LINEAR), "TEX_FILTER_* flags should match WIC_FLAGS_FILTER_*"); + static_assert(static_cast(TEX_FILTER_CUBIC) == static_cast(WIC_FLAGS_FILTER_CUBIC), "TEX_FILTER_* flags should match WIC_FLAGS_FILTER_*"); + static_assert(static_cast(TEX_FILTER_FANT) == static_cast(WIC_FLAGS_FILTER_FANT), "TEX_FILTER_* flags should match WIC_FLAGS_FILTER_*"); switch( flags & TEX_FILTER_MASK ) { diff --git a/DirectXTex/DirectXTexPMAlpha.cpp b/DirectXTex/DirectXTexPMAlpha.cpp index b82492d..233e667 100644 --- a/DirectXTex/DirectXTexPMAlpha.cpp +++ b/DirectXTex/DirectXTexPMAlpha.cpp @@ -64,9 +64,9 @@ namespace assert(srcImage.width == destImage.width); assert(srcImage.height == destImage.height); - static_assert(TEX_PMALPHA_SRGB_IN == TEX_FILTER_SRGB_IN, "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); - static_assert(TEX_PMALPHA_SRGB_OUT == TEX_FILTER_SRGB_OUT, "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); - static_assert(TEX_PMALPHA_SRGB == TEX_FILTER_SRGB, "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_PMALPHA_SRGB_IN) == static_cast(TEX_FILTER_SRGB_IN), "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_PMALPHA_SRGB_OUT) == static_cast(TEX_FILTER_SRGB_OUT), "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_PMALPHA_SRGB) == static_cast(TEX_FILTER_SRGB), "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); flags &= TEX_PMALPHA_SRGB; ScopedAlignedArrayXMVECTOR scanline(reinterpret_cast(_aligned_malloc((sizeof(XMVECTOR)*srcImage.width), 16))); @@ -147,9 +147,9 @@ namespace assert(srcImage.width == destImage.width); assert(srcImage.height == destImage.height); - static_assert(TEX_PMALPHA_SRGB_IN == TEX_FILTER_SRGB_IN, "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); - static_assert(TEX_PMALPHA_SRGB_OUT == TEX_FILTER_SRGB_OUT, "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); - static_assert(TEX_PMALPHA_SRGB == TEX_FILTER_SRGB, "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_PMALPHA_SRGB_IN) == static_cast(TEX_FILTER_SRGB_IN), "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_PMALPHA_SRGB_OUT) == static_cast(TEX_FILTER_SRGB_OUT), "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); + static_assert(static_cast(TEX_PMALPHA_SRGB) == static_cast(TEX_FILTER_SRGB), "TEX_PMALHPA_SRGB* should match TEX_FILTER_SRGB*"); flags &= TEX_PMALPHA_SRGB; ScopedAlignedArrayXMVECTOR scanline(reinterpret_cast(_aligned_malloc((sizeof(XMVECTOR)*srcImage.width), 16))); diff --git a/DirectXTex/DirectXTexResize.cpp b/DirectXTex/DirectXTexResize.cpp index 807cc9d..124e1cd 100644 --- a/DirectXTex/DirectXTexResize.cpp +++ b/DirectXTex/DirectXTexResize.cpp @@ -758,7 +758,7 @@ namespace { // Need to slightly bias results for floating-point error accumulation which can // be visible with harshly quantized values - static const XMVECTORF32 Bias = { 0.f, 0.f, 0.f, 0.1f }; + static const XMVECTORF32 Bias = { { { 0.f, 0.f, 0.f, 0.1f } } }; XMVECTOR* ptr = pAccSrc; for (size_t i = 0; i < destImage.width; ++i, ++ptr) diff --git a/DirectXTex/DirectXTexTGA.cpp b/DirectXTex/DirectXTexTGA.cpp index 1c7bf0d..13a6444 100644 --- a/DirectXTex/DirectXTexTGA.cpp +++ b/DirectXTex/DirectXTexTGA.cpp @@ -1040,7 +1040,7 @@ HRESULT DirectX::LoadFromTGAFile( if (offset > sizeof(TGA_HEADER)) { // Skip past the id string - LARGE_INTEGER filePos = { static_cast(offset), 0 }; + LARGE_INTEGER filePos = { { static_cast(offset), 0 } }; if (!SetFilePointerEx(hFile.get(), filePos, 0, FILE_BEGIN)) { return HRESULT_FROM_WIN32(GetLastError()); @@ -1184,6 +1184,9 @@ HRESULT DirectX::LoadFromTGAFile( } } break; + + default: + break; } } else // RLE || EXPAND || INVERTX || !INVERTY diff --git a/DirectXTex/DirectXTexWIC.cpp b/DirectXTex/DirectXTexWIC.cpp index c491f89..b2be015 100644 --- a/DirectXTex/DirectXTexWIC.cpp +++ b/DirectXTex/DirectXTexWIC.cpp @@ -234,6 +234,10 @@ namespace if (pConvert) memcpy(pConvert, &GUID_WICPixelFormat8bppGray, sizeof(WICPixelFormatGUID)); } + break; + + default: + break; } return format; @@ -1153,7 +1157,7 @@ HRESULT DirectX::SaveToWICMemory( if (FAILED(hr)) return hr; - LARGE_INTEGER li = { 0 }; + LARGE_INTEGER li = { { 0 } }; hr = stream->Seek(li, STREAM_SEEK_SET, 0); if (FAILED(hr)) return hr; @@ -1210,7 +1214,7 @@ HRESULT DirectX::SaveToWICMemory( if (FAILED(hr)) return hr; - LARGE_INTEGER li = { 0 }; + LARGE_INTEGER li = { { 0 } }; hr = stream->Seek(li, STREAM_SEEK_SET, 0); if (FAILED(hr)) return hr; diff --git a/DirectXTex/Filters.h b/DirectXTex/Filters.h index e264664..582c48c 100644 --- a/DirectXTex/Filters.h +++ b/DirectXTex/Filters.h @@ -27,8 +27,8 @@ namespace DirectX // Box filtering helpers //------------------------------------------------------------------------------------- -XMGLOBALCONST XMVECTORF32 g_boxScale = { 0.25f, 0.25f, 0.25f, 0.25f }; -XMGLOBALCONST XMVECTORF32 g_boxScale3D = { 0.125f, 0.125f, 0.125f, 0.125f }; +XMGLOBALCONST XMVECTORF32 g_boxScale = { { { 0.25f, 0.25f, 0.25f, 0.25f } } }; +XMGLOBALCONST XMVECTORF32 g_boxScale3D = { { { 0.125f, 0.125f, 0.125f, 0.125f } } }; #define AVERAGE4( res, p0, p1, p2, p3 ) \ { \ @@ -116,9 +116,9 @@ inline void _CreateLinearFilter(_In_ size_t source, _In_ size_t dest, _In_ bool // Cubic filtering helpers //------------------------------------------------------------------------------------- -XMGLOBALCONST XMVECTORF32 g_cubicThird = { 1.f/3.f, 1.f/3.f, 1.f/3.f, 1.f/3.f }; -XMGLOBALCONST XMVECTORF32 g_cubicSixth = { 1.f/6.f, 1.f/6.f, 1.f/6.f, 1.f/6.f }; -XMGLOBALCONST XMVECTORF32 g_cubicHalf = { 1.f/2.f, 1.f/2.f, 1.f/2.f, 1.f/2.f }; +XMGLOBALCONST XMVECTORF32 g_cubicThird = { { { 1.f / 3.f, 1.f / 3.f, 1.f / 3.f, 1.f / 3.f } } }; +XMGLOBALCONST XMVECTORF32 g_cubicSixth = { { { 1.f / 6.f, 1.f / 6.f, 1.f / 6.f, 1.f / 6.f } } }; +XMGLOBALCONST XMVECTORF32 g_cubicHalf = { { { 1.f / 2.f, 1.f / 2.f, 1.f / 2.f, 1.f / 2.f } } }; inline ptrdiff_t bounduvw(ptrdiff_t u, ptrdiff_t maxu, bool wrap, bool mirror) {