blob: 9f61c26b7e92a779469c27e153c2438ccac03f03 [file] [log] [blame]
/**
* \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;
}