egl/sfopenvg/riFont.cpp
branchEGL_MERGE
changeset 180 f767bd5f4cfc
parent 119 5f371025658c
child 181 c1509651cd2b
--- a/egl/sfopenvg/riFont.cpp	Fri Jul 16 18:54:03 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-/*------------------------------------------------------------------------
- *
- * OpenVG 1.1 Reference Implementation
- * -----------------------------------
- *
- * Copyright (c) 2007 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and /or associated documentation files
- * (the "Materials "), to deal in the Materials without restriction,
- * including without limitation the rights to use, copy, modify, merge,
- * publish, distribute, sublicense, and/or sell copies of the Materials,
- * and to permit persons to whom the Materials are furnished to do so,
- * subject to the following conditions: 
- *
- * The above copyright notice and this permission notice shall be included 
- * in all copies or substantial portions of the Materials. 
- *
- * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
- * THE USE OR OTHER DEALINGS IN THE MATERIALS.
- *
- *//**
- * \file
- * \brief	Implementation of Font class.
- * \note	
- *//*-------------------------------------------------------------------*/
-
-#include "riFont.h"
-
-//==============================================================================================
-
-namespace OpenVGRI
-{
-
-/*-------------------------------------------------------------------*//*!
-* \brief	Font constructor.
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-Font::Font(int capacityHint) :
-	m_referenceCount(0),
-	m_glyphs()
-{
-	RI_ASSERT(capacityHint >= 0);
-	m_glyphs.reserve(capacityHint);
-}
-
-/*-------------------------------------------------------------------*//*!
-* \brief	Font destructor.
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-Font::~Font()
-{
-	//remove references to paths and images
-	for(int i=0;i<m_glyphs.size();i++)
-		clearGlyph(&m_glyphs[i]);
-	RI_ASSERT(m_referenceCount == 0);
-}
-
-/*-------------------------------------------------------------------*//*!
-* \brief	Find a glyph based on glyphIndex.
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-Font::Glyph* Font::findGlyph(unsigned int index)
-{
-    for(int i=0;i<m_glyphs.size();i++)
-    {
-        if(m_glyphs[i].m_state != Glyph::GLYPH_UNINITIALIZED && m_glyphs[i].m_index == index)
-            return &m_glyphs[i];
-    }
-    return NULL;
-}
-
-/*-------------------------------------------------------------------*//*!
-* \brief	Find a free glyph or allocate a new one.
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-Font::Glyph* Font::newGlyph()
-{
-    for(int i=0;i<m_glyphs.size();i++)
-    {
-        if(m_glyphs[i].m_state == Glyph::GLYPH_UNINITIALIZED)
-            return &m_glyphs[i];
-    }
-    m_glyphs.resize(m_glyphs.size()+1);
-    return &m_glyphs[m_glyphs.size()-1];
-}
-
-/*-------------------------------------------------------------------*//*!
-* \brief	Free glyph and its data.
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-void Font::clearGlyph(Glyph* g)
-{
-    RI_ASSERT(g);
-	if(g->m_path != VG_INVALID_HANDLE)
-	{
-		Path* p = (Path*)g->m_path;
-		if(!p->removeReference())
-			RI_DELETE(p);
-	}
-	if(g->m_image != VG_INVALID_HANDLE)
-	{
-		Image* p = (Image*)g->m_image;
-		p->removeInUse();
-		if(!p->removeReference())
-			RI_DELETE(p);
-	}
-	Glyph a;
-	*g = a;
-}
-
-/*-------------------------------------------------------------------*//*!
-* \brief	
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-void Font::setGlyphToPath(unsigned int index, VGPath path, bool isHinted, const Vector2& origin, const Vector2& escapement)
-{
-    Glyph* g = findGlyph(index);
-    if(g)
-    {   //glyph exists, replace
-        clearGlyph(g);
-    }
-    else
-    {   //glyph doesn't exist, allocate a new one
-        g = newGlyph();
-    }
-
-    g->m_index = index;
-    g->m_state = Glyph::GLYPH_PATH;
-	g->m_path = path;
-    g->m_image = VG_INVALID_HANDLE;
-	g->m_isHinted = isHinted;
-	g->m_origin = origin;
-	g->m_escapement = escapement;
-
-    if(path != VG_INVALID_HANDLE)
-    {
-        Path* p = (Path*)path;
-        p->addReference();
-    }
-}
-
-/*-------------------------------------------------------------------*//*!
-* \brief	
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-void Font::setGlyphToImage(unsigned int index, VGImage image, const Vector2& origin, const Vector2& escapement)
-{
-    Glyph* g = findGlyph(index);
-    if(g)
-    {   //glyph exists, replace
-        clearGlyph(g);
-    }
-    else
-    {   //glyph doesn't exist, allocate a new one
-        g = newGlyph();
-    }
-
-    g->m_index = index;
-    g->m_state = Glyph::GLYPH_IMAGE;
-	g->m_path = VG_INVALID_HANDLE;
-    g->m_image = image;
-	g->m_isHinted = false;
-	g->m_origin = origin;
-	g->m_escapement = escapement;
-
-    if(image != VG_INVALID_HANDLE)
-    {
-        Image* p = (Image*)image;
-        p->addReference();
-        p->addInUse();
-    }
-}
-
-//=======================================================================
-
-}	//namespace OpenVGRI