TuttleOFX
1
|
00001 #include <boost/test/included/unit_test.hpp> 00002 00003 #include <freegil.hpp> 00004 00005 using boost::unit_test::test_suite; 00006 using namespace boost::gil; 00007 00008 //g++ freegil.tests.cpp -I /home/scott/project/boost_1_36_0 -I . -I /usr/include/freetype2 -lfreetype 00009 00010 struct test1 00011 { 00012 void operator()() 00013 { 00014 int width = 200; 00015 int height = 200; 00016 unsigned char* buffer = new unsigned char[width * height * 3]; 00017 memset(buffer, 255, width * height * 3); 00018 rgb8_view_t view2 = interleaved_view(width,height,(rgb8_pixel_t*)buffer,width*3); 00019 rgb8_view_t view = subimage_view(view2,0,0,width-5,height-5); 00020 00021 const char* fontnames [] = {"/Mini/MINIHHB_.TTF","/Mini/MINXB___.TTF"}; 00022 int size = sizeof(fontnames)/sizeof(const char*); 00023 00024 char fontpath[255]; 00025 strcpy(fontpath,getenv("FONT_PATH") ? getenv("FONT_PATH") : "/home/scott/project/fonts/"); 00026 00027 char** fonts = (char**)malloc(size * sizeof(char*)); 00028 for (int n = 0; n < size; ++n) 00029 { 00030 char tmp[255]; 00031 sprintf(tmp,"%s%s",fontpath,fontnames[n]); 00032 fonts[n] = (char*)malloc((strlen(tmp)+1) * sizeof(char)); 00033 sprintf(fonts[n],"%s",tmp); 00034 } 00035 00036 FT_Library library; 00037 FTC_Manager manager; 00038 FT_Init_FreeType(&library); 00039 FTC_Manager_New(library,0,0,0,face_requester,fonts,&manager); 00040 00041 typedef layer::text<rgb8_view_t> text_t; 00042 rgb8_view_t::value_type black(0,0,0); 00043 text_t text(manager,"Hello",black,0,12); 00044 text(view); 00045 00046 for (int n = 0; n < size; ++n) 00047 free(fonts[n]); 00048 free(fonts); 00049 00050 FTC_Manager_Done(manager); 00051 FT_Done_FreeType(library); 00052 00053 FILE* fd = fopen("freegil.ppm", "wb"); 00054 fprintf(fd, "P6\n# CREATOR: reportbase\n%d %d\n255\n", width, height); 00055 fwrite(buffer, 1, width*height*3, fd); 00056 fclose(fd); 00057 delete [] buffer; 00058 } 00059 }; 00060 00061 test_suite* init_unit_test_suite( int argc, char** argv) 00062 { 00063 test_suite* test= BOOST_TEST_SUITE( "freegil tests" ); 00064 test->add( BOOST_TEST_CASE(test1()), 0); 00065 return test; 00066 }