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 + -
显示快捷键?