+ /* Cleanup */
+ hb_buffer_destroy( harfBuzzBuffer );
+ hb_font_destroy( harfBuzzFont );
+ break;
+ }
+ case FontDescription::BITMAP_FONT:
+ {
+ // Reserve some space to avoid reallocations.
+ // The advance and offset tables can be initialized with zeros as it's not needed to get metrics from the bitmaps here.
+ mIndices.Resize( numberOfCharacters );
+ mAdvance.Resize( numberOfCharacters, 0u );
+ mCharacterMap.Reserve( numberOfCharacters );
+ mOffset.Resize( 2u * numberOfCharacters, 0.f );
+
+ // The utf32 character can be used as the glyph's index.
+ std::copy( text, text + numberOfCharacters, mIndices.Begin() );
+
+ // The glyph to character map is 1 to 1.
+ for( unsigned int index = 0u; index < numberOfCharacters; ++index )
+ {
+ mCharacterMap.PushBack( index );