| /** |
| * \file simple.cpp |
| * Bare minimum example of using the single-file \c basisu_transcoder.cpp. |
| * Opens an embedded \c .basis file to test that amalgamating the transcoder |
| * worked. |
| * \n |
| * Compile using: |
| * \code |
| * cc -std=c++11 -lstdc++ simple.cpp |
| * \endcode |
| * |
| * Example code released under a CC0 license. |
| */ |
| #include "../basisu_transcoder.cpp" |
| |
| using namespace basist; |
| |
| //********************************* Test Data ********************************/ |
| |
| /** |
| * Basis Universal compressed 256x256 RGB texture source (with mipmaps). |
| * \n |
| * See \c testcard.png for the original. Generate using: |
| * \code |
| * basisu -comp_level 5 -linear -global_sel_pal -y_flip -mipmap |
| * \endcode |
| */ |
| static uint8_t const srcRgb[] = { |
| #include "testcard.basis.inc" |
| }; |
| |
| //****************************************************************************/ |
| |
| /** |
| * Shared codebook instance. |
| */ |
| static etc1_global_selector_codebook* globalCodebook = NULL; |
| |
| /** |
| * Simple single-file test to test the transcoder can build and run. |
| */ |
| int main() { |
| basisu_transcoder_init(); |
| if (!globalCodebook) { |
| globalCodebook = new etc1_global_selector_codebook(g_global_selector_cb_size, g_global_selector_cb); |
| } |
| basisu_transcoder transcoder(globalCodebook); |
| if (transcoder.validate_header(srcRgb, sizeof srcRgb)) { |
| basisu_file_info fileInfo; |
| if (transcoder.get_file_info(srcRgb, sizeof srcRgb, fileInfo)) { |
| basisu_image_info info; |
| if (transcoder.get_image_info(srcRgb, sizeof srcRgb, info, 0)) { |
| printf("Success (file w: %d, h: %d, mips: %d)\n", |
| info.m_width, info.m_height, info.m_total_levels); |
| return EXIT_SUCCESS; |
| } |
| } |
| } |
| return EXIT_FAILURE; |
| } |