+ if( familyOverriden )
+ {
+ const FontDescriptionRun& fontRun = *( fontDescriptionsBuffer + familyIndex );
+ fontDescription.family = std::string( fontRun.familyName, fontRun.familyLength ); // TODO Could use move constructor when switch to c++11.
+ }
+ else
+ {
+ fontDescription.family = defaultFontDescription.family;
+ }
+
+ if( weightOverriden )
+ {
+ const FontDescriptionRun& fontRun = *( fontDescriptionsBuffer + weightIndex );
+ fontDescription.weight = fontRun.weight;
+ }
+ else
+ {
+ fontDescription.weight = defaultFontDescription.weight;
+ }
+
+ if( widthOverriden )
+ {
+ const FontDescriptionRun& fontRun = *( fontDescriptionsBuffer + widthIndex );
+ fontDescription.width = fontRun.width;
+ }
+ else
+ {
+ fontDescription.width = defaultFontDescription.width;
+ }
+
+ if( slantOverriden )
+ {
+ const FontDescriptionRun& fontRun = *( fontDescriptionsBuffer + slantIndex );
+ fontDescription.slant = fontRun.slant;
+ }
+ else
+ {
+ fontDescription.slant = defaultFontDescription.slant;
+ }
+
+ if( sizeOverriden )
+ {
+ const FontDescriptionRun& fontRun = *( fontDescriptionsBuffer + sizeIndex );
+ fontSize = fontRun.size;
+ }
+ else
+ {
+ fontSize = defaultPointSize;
+ }
+