// Non-zero m_astc_endpoint_range enables ASTC mode. m_comp_bits and m_has_pbits are always false. We only support 2, 3, or 4 bit weight encodings.
uint32_tm_astc_endpoint_range;
uint32_tm_weights[4];
bc7enc_boolm_has_alpha;
bc7enc_boolm_has_pbits;
bc7enc_boolm_endpoints_share_pbit;
bc7enc_boolm_perceptual;
};
structcolor_cell_compressor_results
{
uint64_tm_best_overall_err;
basist::color_quad_u8m_low_endpoint;
basist::color_quad_u8m_high_endpoint;
uint32_tm_pbits[2];
uint8_t*m_pSelectors;
uint8_t*m_pSelectors_temp;
// Encoded ASTC indices, if ASTC mode is enabled
basist::color_quad_u8m_astc_low_endpoint;
basist::color_quad_u8m_astc_high_endpoint;
};
structbc7enc_compress_block_params
{
// m_max_partitions_mode1 may range from 0 (disables mode 1) to BC7ENC_MAX_PARTITIONS1. The higher this value, the slower the compressor, but the higher the quality.
uint32_tm_max_partitions_mode1;
// Relative RGBA or YCbCrA weights.
uint32_tm_weights[4];
// m_uber_level may range from 0 to BC7ENC_MAX_UBER_LEVEL. The higher this value, the slower the compressor, but the higher the quality.
uint32_tm_uber_level;
// If m_perceptual is true, colorspace error is computed in YCbCr space, otherwise RGB.