diff -r 19ce5231ffe4 -r 6356de74619b egl/sfopenvg/riFont.cpp --- a/egl/sfopenvg/riFont.cpp Fri Sep 24 16:48:05 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;im_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