48 lines
1.9 KiB
C++
48 lines
1.9 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#include "font/font_extended.h"
|
|
|
|
using namespace GS;
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
bool FontEx::SetPixelSize(int size)
|
|
{
|
|
pixel_size = size;
|
|
return current_glyph_font.IsValid() ? current_glyph_font->SetPixelSize(size) : font->SetPixelSize(size);
|
|
}
|
|
bool FontEx::HasKerning() const
|
|
{ return current_glyph_font.IsValid() ? current_glyph_font->HasKerning() : font->HasKerning(); }
|
|
int FontEx::GetKerning(uint previous_codepoint, uint codepoint) const
|
|
{ return current_glyph_font.IsValid() ? current_glyph_font->GetKerning(previous_codepoint, codepoint) : font->GetKerning(previous_codepoint, codepoint); }
|
|
|
|
int FontEx::GetHeight() const
|
|
{ return current_glyph_font.IsValid() ? current_glyph_font->GetHeight() : font->GetHeight(); }
|
|
int FontEx::GetAdvance() const
|
|
{ return current_glyph_font.IsValid() ? current_glyph_font->GetAdvance() : font->GetAdvance(); }
|
|
|
|
bool FontEx::LoadGlyph(uint codepoint, bool for_render)
|
|
{
|
|
current_glyph_font = font;
|
|
if (font->LoadGlyph(codepoint, for_render))
|
|
return true;
|
|
|
|
// Synchronize and try fallback.
|
|
if (fallback.IsNull())
|
|
return false;
|
|
|
|
fallback->SetPixelSize(pixel_size);
|
|
bool r = fallback->LoadGlyph(codepoint, for_render);
|
|
|
|
if (r)
|
|
current_glyph_font = fallback;
|
|
return r;
|
|
}
|
|
bool FontEx::RenderCurrentGlyph(Picture &picture, const iPoint &position, const iRect &clip, const Color &color)
|
|
{ return current_glyph_font.IsValid() ? current_glyph_font->RenderCurrentGlyph(picture, position, clip, color) : font->RenderCurrentGlyph(picture, position, clip, color); }
|
|
//------------------------------------------------------------------------------
|