ftglyph-test.cpp
来自「ftgl-2.1.2 夸平台的opengl显示字体」· C++ 代码 · 共 105 行
CPP
105 行
#include <cppunit/extensions/HelperMacros.h>#include <cppunit/TestCaller.h>#include <cppunit/TestCase.h>#include <cppunit/TestSuite.h>#include "Fontdefs.h"#include "FTGlyph.h"class TestGlyph : public FTGlyph{ public: TestGlyph( FT_GlyphSlot glyph) : FTGlyph(glyph) {} const FTPoint& Render( const FTPoint& pen) { return advance;};};class FTGlyphTest : public CppUnit::TestCase{ CPPUNIT_TEST_SUITE( FTGlyphTest); CPPUNIT_TEST( testBadConstructor); CPPUNIT_TEST( testGoodConstructor); CPPUNIT_TEST_SUITE_END(); public: FTGlyphTest() : CppUnit::TestCase( "FTGlyph Test") {} FTGlyphTest( const std::string& name) : CppUnit::TestCase(name) {} void testBadConstructor() { TestGlyph testGlyph(0); FTPoint testPoint; CPPUNIT_ASSERT( testPoint == testGlyph.Advance()); CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, testGlyph.BBox().upperY, 0.01); CPPUNIT_ASSERT( testGlyph.Error() == 0); } void testGoodConstructor() { setUpFreetype( CHARACTER_CODE_A); TestGlyph testGlyph(face->glyph); FTPoint testPoint(47.0f, 0.0f, 0.0f); CPPUNIT_ASSERT( testPoint == testGlyph.Advance()); CPPUNIT_ASSERT_DOUBLES_EQUAL( 51.39, testGlyph.BBox().upperY, 0.01); CPPUNIT_ASSERT( testGlyph.Error() == 0); tearDownFreetype(); } void setUp() {} void tearDown() {} private: FT_Library library; FT_Face face; void setUpFreetype( unsigned int characterIndex) { FT_Error error = FT_Init_FreeType( &library); assert(!error); error = FT_New_Face( library, ARIAL_FONT_FILE, 0, &face); assert(!error); loadGlyph( characterIndex); } void loadGlyph( unsigned int characterIndex) { long glyphIndex = FT_Get_Char_Index( face, characterIndex); FT_Set_Char_Size( face, 0L, FONT_POINT_SIZE * 64, RESOLUTION, RESOLUTION); FT_Error error = FT_Load_Glyph( face, glyphIndex, FT_LOAD_DEFAULT); assert(!error); } void tearDownFreetype() { FT_Done_Face( face); FT_Done_FreeType( library); } };CPPUNIT_TEST_SUITE_REGISTRATION( FTGlyphTest);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?