TuttleOFX  1
freegil.tests.cpp
Go to the documentation of this file.
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 }