⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fttextureglyph-test.cpp

📁 ftgl-2.1.2 夸平台的opengl显示字体
💻 CPP
字号:
#include <cppunit/extensions/HelperMacros.h>#include <cppunit/TestCaller.h>#include <cppunit/TestCase.h>#include <cppunit/TestSuite.h>#include <assert.h>#include "Fontdefs.h"#include "FTTextureGlyph.h"extern void buildGLContext();class FTTextureGlyphTest : public CppUnit::TestCase{    CPPUNIT_TEST_SUITE( FTTextureGlyphTest);        CPPUNIT_TEST( testConstructor);        CPPUNIT_TEST( testRender);    CPPUNIT_TEST_SUITE_END();            public:        FTTextureGlyphTest() : CppUnit::TestCase( "FTTextureGlyph Test")        {        }                FTTextureGlyphTest( const std::string& name) : CppUnit::TestCase(name) {}                ~FTTextureGlyphTest()        {        }                void testConstructor()        {            setUpFreetype();                        buildGLContext();                        GLuint textureID;            glGenTextures(1, &textureID);                        char* texture[64*64];                    glBindTexture( GL_TEXTURE_2D, textureID);            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);            glTexImage2D( GL_TEXTURE_2D, 0, GL_ALPHA, 64, 64, 0, GL_ALPHA, GL_UNSIGNED_BYTE, texture);                FTTextureGlyph* textureGlyph = new FTTextureGlyph( face->glyph, textureID, 0, 0, 64, 64);                     CPPUNIT_ASSERT( textureGlyph->Error() == 0);            CPPUNIT_ASSERT( glGetError() == GL_NO_ERROR);                    tearDownFreetype();        }        void testRender()        {            setUpFreetype();                        buildGLContext();                        GLuint textureID;            glGenTextures(1, &textureID);                        char* texture[64*64];                    glBindTexture( GL_TEXTURE_2D, textureID);            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);            glTexImage2D( GL_TEXTURE_2D, 0, GL_ALPHA, 64, 64, 0, GL_ALPHA, GL_UNSIGNED_BYTE, texture);                FTTextureGlyph* textureGlyph = new FTTextureGlyph( face->glyph, textureID, 0, 0, 64, 64);            textureGlyph->Render(FTPoint( 0, 0, 0));            CPPUNIT_ASSERT( textureGlyph->Error() == 0);                    CPPUNIT_ASSERT( glGetError() == GL_NO_ERROR);                    tearDownFreetype();        }        void setUp()         {}                void tearDown()         {}                        private:        FT_Library   library;        FT_Face      face;                    void setUpFreetype()        {            FT_Error error = FT_Init_FreeType( &library);            assert(!error);            error = FT_New_Face( library, FONT_FILE, 0, &face);            assert(!error);                        FT_Set_Char_Size( face, 0L, FONT_POINT_SIZE * 64, RESOLUTION, RESOLUTION);                        error = FT_Load_Char( face, CHARACTER_CODE_A, FT_LOAD_DEFAULT);            assert( !error);                }                void tearDownFreetype()        {            FT_Done_Face( face);            FT_Done_FreeType( library);        }};CPPUNIT_TEST_SUITE_REGISTRATION( FTTextureGlyphTest);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -