/** * \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; }