| 902 | }; |
| 903 | |
| 904 | static basis_data *load_basis_file(const char *pInput_filename, bool force_etc1s) |
| 905 | { |
| 906 | basis_data* p = new basis_data; |
| 907 | uint8_vec &basis_data = p->m_file_data; |
| 908 | if (!basisu::read_file_to_vec(pInput_filename, basis_data)) |
| 909 | { |
| 910 | error_printf("Failed reading file \"%s\"\n", pInput_filename); |
| 911 | delete p; |
| 912 | return nullptr; |
| 913 | } |
| 914 | printf("Input file \"%s\"\n", pInput_filename); |
| 915 | if (!basis_data.size()) |
| 916 | { |
| 917 | error_printf("File is empty!\n"); |
| 918 | delete p; |
| 919 | return nullptr; |
| 920 | } |
| 921 | if (basis_data.size() > UINT32_MAX) |
| 922 | { |
| 923 | error_printf("File is too large!\n"); |
| 924 | delete p; |
| 925 | return nullptr; |
| 926 | } |
| 927 | if (force_etc1s) |
| 928 | { |
| 929 | if (p->m_transcoder.get_tex_format((const void*)&p->m_file_data[0], (uint32_t)p->m_file_data.size()) != basist::basis_tex_format::cETC1S) |
| 930 | { |
| 931 | error_printf("Global codebook file must be in ETC1S format!\n"); |
| 932 | delete p; |
| 933 | return nullptr; |
| 934 | } |
| 935 | } |
| 936 | if (!p->m_transcoder.start_transcoding(&basis_data[0], (uint32_t)basis_data.size())) |
| 937 | { |
| 938 | error_printf("start_transcoding() failed!\n"); |
| 939 | delete p; |
| 940 | return nullptr; |
| 941 | } |
| 942 | return p; |
| 943 | } |
| 944 | |
| 945 | static bool compress_mode(command_line_params &opts) |
| 946 | { |
no test coverage detected