// Load FtglOutlineFont void FtglOutlineFont::loadFont() { if (isLoaded()) return; // Check for required parameters if( filename() == nullptr ) { if (isMessageEnabled(MSG_ERROR)) { std::cerr << "No ttf file" << std::endl; } return; } // Generate filename const size_t FONTPATHNAME_LENGTH = 256; char fontPathname[FONTPATHNAME_LENGTH]; if (fontDirectory() != nullptr) lcStrcpy(fontPathname, FONTPATHNAME_LENGTH, fontDirectory()); else lcStrcpy(fontPathname, FONTPATHNAME_LENGTH, "./"); lcStrcat(fontPathname, FONTPATHNAME_LENGTH, filename()); FTGLOutlineFont* ftglFont = new FTGLOutlineFont(fontPathname); if (ftglFont != nullptr && !ftglFont->Error()) { // set the face size and return the pointer, then tell our base class that we have a loaded font ftglFont->FaceSize(getFaceSize()); ftgl(ftglFont); setFontLoaded(); } else { if (isMessageEnabled(MSG_ERROR)) { std::cerr << "FtglOutlineFont::loadFont() - font did not load correctly: file: \""; std::cerr << fontPathname << "\""; std::cerr << std::endl; } std::exit(1); } }
void testConstructor() { buildGLContext(); FTGLOutlineFont* outlineFont = new FTGLOutlineFont( FONT_FILE); CPPUNIT_ASSERT( outlineFont->Error() == 0); CPPUNIT_ASSERT( glGetError() == GL_NO_ERROR); }
void testBadDisplayList() { buildGLContext(); FTGLOutlineFont* outlineFont = new FTGLOutlineFont( FONT_FILE); outlineFont->FaceSize(18); int glList = glGenLists(1); glNewList( glList, GL_COMPILE); outlineFont->Render(GOOD_ASCII_TEST_STRING); glEndList(); CPPUNIT_ASSERT( glGetError() == GL_INVALID_OPERATION); }
void testGoodDisplayList() { buildGLContext(); FTGLOutlineFont* outlineFont = new FTGLOutlineFont( FONT_FILE); outlineFont->FaceSize(18); outlineFont->UseDisplayList(false); int glList = glGenLists(1); glNewList( glList, GL_COMPILE); outlineFont->Render(GOOD_ASCII_TEST_STRING); glEndList(); CPPUNIT_ASSERT( glGetError() == GL_NO_ERROR); }
void testRender() { buildGLContext(); FTGLOutlineFont* outlineFont = new FTGLOutlineFont( FONT_FILE); outlineFont->Render(GOOD_ASCII_TEST_STRING); CPPUNIT_ASSERT( outlineFont->Error() == 0x97); // Invalid pixels per em CPPUNIT_ASSERT( glGetError() == GL_NO_ERROR); outlineFont->FaceSize(18); outlineFont->Render(GOOD_ASCII_TEST_STRING); CPPUNIT_ASSERT( outlineFont->Error() == 0); CPPUNIT_ASSERT( glGetError() == GL_NO_ERROR); }