Ion
|
The FontManager provides the main interface for fonts used to create text strings to render. More...
#include "fontmanager.h"
Public Member Functions | |
FontManager () | |
FontManager functions. More... | |
void | AddFont (const FontPtr &font) |
Adds a Font to the manager. More... | |
const FontPtr | AddFont (const std::string &name, size_t size_in_pixels, size_t sdf_padding, const void *data, size_t data_size) |
Constructs and adds a font to the manager. More... | |
const FontPtr | AddFontFromZipasset (const std::string &font_name, const std::string &zipasset_name, size_t size_in_pixels, size_t sdf_padding) |
Constructs and adds a font with name font_name from the zipasset with name zipasset_name . More... | |
const FontPtr | FindFont (const std::string &name, size_t size_in_pixels, size_t sdf_padding) const |
Returns the Font associated with the given name and size. More... | |
void | CacheFontImage (const std::string &key, const FontImagePtr &font_image) |
This can be used to cache FontImage instances in the manager. More... | |
void | CacheFontImage (const FontPtr &font, const FontImagePtr &font_image) |
This can be used to cache FontImage instances in the manager. More... | |
const FontImagePtr | GetCachedFontImage (const std::string &key) const |
Returns the FontImage associated with the given key. It may be NULL. More... | |
const FontImagePtr | GetCachedFontImage (const FontPtr &font) const |
Returns the FontImage associated with the given Font. It may be NULL. More... | |
const AllocatorPtr & | GetAllocator () const |
Returns the Allocator that was used for the instance. More... | |
const AllocatorPtr & | GetNonNullAllocator () const |
Return our allocator, or the default allocator if the instance was declared on the stack. More... | |
const AllocatorPtr & | GetAllocatorForLifetime (AllocationLifetime lifetime) const |
Convenience function that returns the Allocator to use to allocate an object with a specific lifetime. More... | |
void * | operator new (size_t size) |
The standard no-parameter new operator uses the default Allocator. More... | |
void * | operator new (size_t size, AllocationLifetime lifetime) |
This overloaded version of the new operator uses the AllocationManager's default Allocator for the specified lifetime. More... | |
void * | operator new (size_t size, const AllocatorPtr &allocator) |
This overloaded version of the new operator takes the Allocator to use directly as a parameter. More... | |
void * | operator new (size_t size, const AllocatorPtr &allocator, void *ptr) |
Special operator new for using placement new with Allocatables. More... | |
void * | operator new (size_t size, void *ptr) |
The placement new operator is defined conventionally. More... | |
void | operator delete (void *ptr) |
Define the delete operator to use specialized functions dealing with an Allocator. More... | |
void | operator delete (void *ptr, AllocationLifetime lifetime) |
Windows requires these (or it issues C4291 warnings). More... | |
void | operator delete (void *ptr, const AllocatorPtr &allocator) |
void | operator delete (void *ptr, void *ptr2) |
The placement delete operator does nothing, as usual. More... | |
int | GetRefCount () const |
GetRefCount() is part of the interface necessary for SharedPtr. More... | |
Protected Member Functions | |
~FontManager () override | |
The destructor is protected because all base::Referent classes must have protected or private destructors. More... | |
The FontManager provides the main interface for fonts used to create text strings to render.
It also provides a way to cache FontImage instances for reuse.
Definition at line 36 of file fontmanager.h.
ion::text::FontManager::FontManager | ( | ) |
FontManager functions.
Definition at line 40 of file fontmanager.cc.
|
overrideprotected |
The destructor is protected because all base::Referent classes must have protected or private destructors.
Definition at line 44 of file fontmanager.cc.
void ion::text::FontManager::AddFont | ( | const FontPtr & | font | ) |
Adds a Font to the manager.
It will then be accessible via FindFont(). This does nothing if the Font is NULL.
Definition at line 46 of file fontmanager.cc.
References ion::base::SharedPtr< T >::Get().
Referenced by AddFont(), and AddFontFromZipasset().
const FontPtr ion::text::FontManager::AddFont | ( | const std::string & | name, |
size_t | size_in_pixels, | ||
size_t | sdf_padding, | ||
const void * | data, | ||
size_t | data_size | ||
) |
Constructs and adds a font to the manager.
If a font with the given specs already exists, just returns the already existing font. This will choose the correct Font subclass for the current platform. If data
is non-NULL and data_size
non-zero, data
will be read as TrueType data of length data_size
to build the font. Otherwise, behavior depends on specific font implementations, see CoreTextFont and FreeTypeFont.
Definition at line 51 of file fontmanager.cc.
References AddFont(), FindFont(), ion::base::SharedPtr< T >::Get(), and ion::base::SharedPtr< T >::Reset().
const FontPtr ion::text::FontManager::AddFontFromZipasset | ( | const std::string & | font_name, |
const std::string & | zipasset_name, | ||
size_t | size_in_pixels, | ||
size_t | sdf_padding | ||
) |
Constructs and adds a font with name font_name
from the zipasset with name zipasset_name
.
If a font with the given specs already exists, just returns the already existing font.
Definition at line 69 of file fontmanager.cc.
References AddFont(), ion::port::ERROR, FindFont(), ion::base::SharedPtr< T >::Get(), ion::base::ZipAssetManager::GetFileData(), ion::base::IsInvalidReference(), and LOG.
|
inline |
This can be used to cache FontImage instances in the manager.
It associates a FontImage with a client-defined string key. Passing a NULL FontImage pointer removes the entry for that key.
Definition at line 69 of file fontmanager.h.
References ion::base::SharedPtr< T >::Get().
|
inline |
This can be used to cache FontImage instances in the manager.
It associates a FontImage with a string key that Ion derives based on the provided font. Passing a NULL FontImage pointer removes the entry for that key.
Definition at line 80 of file fontmanager.h.
const FontPtr ion::text::FontManager::FindFont | ( | const std::string & | name, |
size_t | size_in_pixels, | ||
size_t | sdf_padding | ||
) | const |
Returns the Font associated with the given name and size.
This will return a NULL pointer unless the font was previously added with AddFont().
Definition at line 88 of file fontmanager.cc.
Referenced by AddFont(), and AddFontFromZipasset().
|
inlineinherited |
Returns the Allocator that was used for the instance.
This will be NULL if the instance was declared on the stack or created with normal placement new.
Definition at line 68 of file allocatable.h.
References allocator_.
Referenced by ion::base::DataContainer::CreateAndCopy(), ion::text::DynamicFontImage::FindContainingImageDataIndex(), and ion::text::DynamicFontImage::FindImageDataIndex().
|
inlineinherited |
Convenience function that returns the Allocator to use to allocate an object with a specific lifetime.
Definition at line 78 of file allocatable.h.
References ion::base::Allocator::GetAllocatorForLifetime().
Referenced by ion::text::BasicBuilder::BuildVertexData(), ion::text::OutlineBuilder::BuildVertexData(), ion::gfxutils::ShaderManager::CreateShaderProgram(), ion::text::DynamicFontImage::FindContainingImageDataIndex(), ion::text::DynamicFontImage::FindImageDataIndex(), ion::gfx::Renderer::Renderer(), and ion::gfx::UpdateStateTable().
|
inline |
Returns the FontImage associated with the given key. It may be NULL.
Definition at line 85 of file fontmanager.h.
|
inline |
Returns the FontImage associated with the given Font. It may be NULL.
Definition at line 91 of file fontmanager.h.
|
inlineinherited |
Return our allocator, or the default allocator if the instance was declared on the stack.
Definition at line 72 of file allocatable.h.
References allocator_, and ion::base::AllocationManager::GetNonNullAllocator().
|
inlineinherited |
GetRefCount() is part of the interface necessary for SharedPtr.
Definition at line 34 of file shareable.h.
Referenced by ion::base::Notifier::RemoveReceiver().
|
inlineinherited |
Define the delete operator to use specialized functions dealing with an Allocator.
Definition at line 109 of file allocatable.h.
|
inlineinherited |
Windows requires these (or it issues C4291 warnings).
Definition at line 112 of file allocatable.h.
|
inlineinherited |
Definition at line 113 of file allocatable.h.
|
inlineinherited |
The placement delete operator does nothing, as usual.
Definition at line 118 of file allocatable.h.
|
inlineinherited |
The standard no-parameter new operator uses the default Allocator.
Definition at line 84 of file allocatable.h.
|
inlineinherited |
This overloaded version of the new operator uses the AllocationManager's default Allocator for the specified lifetime.
Definition at line 88 of file allocatable.h.
|
inlineinherited |
This overloaded version of the new operator takes the Allocator to use directly as a parameter.
If the Allocator pointer is NULL, this uses the default Allocator.
Definition at line 95 of file allocatable.h.
|
inlineinherited |
Special operator new for using placement new with Allocatables.
Definition at line 100 of file allocatable.h.
|
inlineinherited |
The placement new operator is defined conventionally.
Definition at line 105 of file allocatable.h.