emcc warning fixes, fixing warnings in WASM cmakelists.txt files, changing ETC1S encoder to use std::map vs. std::unordered_map for hopefully more cross platform determinism

This commit is contained in:
Richard Geldreich
2025-06-24 17:22:05 -04:00
parent 75b19f6aff
commit 100ace82d2
15 changed files with 2201 additions and 2597 deletions

View File

@@ -114,7 +114,7 @@ namespace basisu
#endif
#endif
template <typename T> inline void clear_obj(T& obj) { memset(&obj, 0, sizeof(obj)); }
template <typename T> inline void clear_obj(T& obj) { memset((void *)&obj, 0, sizeof(obj)); }
#ifndef __EMSCRIPTEN__
#ifdef __GNUC__

View File

@@ -1656,7 +1656,7 @@ namespace basisu
#endif
#endif
if ((m_p) && (other.m_p))
memcpy(m_p, other.m_p, other.m_size * sizeof(T));
memcpy((void *)m_p, other.m_p, other.m_size * sizeof(T));
#ifndef __EMSCRIPTEN__
#ifdef __GNUC__
#pragma GCC diagnostic pop
@@ -2241,7 +2241,7 @@ namespace basisu
#endif
#endif
memmove(pDst, pSrc, num_to_move * sizeof(T));
memmove((void *)pDst, pSrc, num_to_move * sizeof(T));
#ifndef __EMSCRIPTEN__
#ifdef __GNUC__

View File

@@ -18847,11 +18847,11 @@ namespace basist
m_pData = nullptr;
m_data_size = 0;
memset(&m_header, 0, sizeof(m_header));
memset((void *)&m_header, 0, sizeof(m_header));
m_levels.clear();
m_dfd.clear();
m_key_values.clear();
memset(&m_etc1s_header, 0, sizeof(m_etc1s_header));
memset((void *)&m_etc1s_header, 0, sizeof(m_etc1s_header));
m_etc1s_image_descs.clear();
m_astc_6x6_intermediate_image_descs.clear();
@@ -18900,7 +18900,7 @@ namespace basist
m_pData = static_cast<const uint8_t *>(pData);
m_data_size = data_size;
memcpy(&m_header, pData, sizeof(m_header));
memcpy((void *)&m_header, pData, sizeof(m_header));
// Check for supported VK formats. We may also need to parse the DFD.
if ((m_header.m_vk_format != KTX2_VK_FORMAT_UNDEFINED) &&
@@ -19000,7 +19000,7 @@ namespace basist
return false;
}
memcpy(&m_levels[0], m_pData + sizeof(ktx2_header), level_index_size_in_bytes);
memcpy((void *)&m_levels[0], m_pData + sizeof(ktx2_header), level_index_size_in_bytes);
// Sanity check the level offsets and byte sizes
for (uint32_t i = 0; i < m_levels.size(); i++)
@@ -19697,7 +19697,7 @@ namespace basist
m_astc_6x6_intermediate_image_descs.resize(image_count);
memcpy(m_astc_6x6_intermediate_image_descs.data(), pSrc, sizeof(ktx2_astc_hdr_6x6_intermediate_image_desc) * image_count);
memcpy((void *)m_astc_6x6_intermediate_image_descs.data(), pSrc, sizeof(ktx2_astc_hdr_6x6_intermediate_image_desc) * image_count);
// Sanity check the image descs
for (uint32_t i = 0; i < image_count; i++)
@@ -19726,7 +19726,7 @@ namespace basist
const uint8_t* pSrc = m_pData + m_header.m_sgd_byte_offset;
memcpy(&m_etc1s_header, pSrc, sizeof(ktx2_etc1s_global_data_header));
memcpy((void *)&m_etc1s_header, pSrc, sizeof(ktx2_etc1s_global_data_header));
pSrc += sizeof(ktx2_etc1s_global_data_header);
if ((!m_etc1s_header.m_endpoints_byte_length) || (!m_etc1s_header.m_selectors_byte_length) || (!m_etc1s_header.m_tables_byte_length))
@@ -19759,7 +19759,7 @@ namespace basist
return false;
}
memcpy(m_etc1s_image_descs.data(), pSrc, sizeof(ktx2_etc1s_image_desc) * image_count);
memcpy((void *)m_etc1s_image_descs.data(), pSrc, sizeof(ktx2_etc1s_image_desc) * image_count);
pSrc += sizeof(ktx2_etc1s_image_desc) * image_count;
// Sanity check the ETC1S image descs