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);
    }
    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);
    }