/// <summary> /// ShaperBuffers.InitializeFeatureList - initializer for GetGlyphs. /// </summary> /// <param name="size">Requested new array size</param> /// <param name="keep">number of features to copy into new array</param> /// <remarks> /// Called by pertinent shaper's GetGlyph method; ie, those shapers /// that need to create a text dependent list of features /// (e.g. Arabic, Mongolian). /// The "keep" count takes priority over "size" if there's already an /// array, so if size size is less than keep, the resized array has at /// least keep elements. It is possible to create a 0 sized array. /// </remarks> public bool InitializeFeatureList(ushort size, ushort keep) { if (_textFeatures == null) { _textFeatures = new ShaperFeaturesList(); if (_textFeatures == null) { return(false); } _textFeatures.Initialize(size); } else { _textFeatures.Resize(size, keep); } return(true); }
/// <summary> /// ShaperBuffers.InitializeFeatureList - initializer for GetGlyphs. /// </summary> /// <param name="size">Requested new array size</param> /// <param name="keep">number of features to copy into new array</param> /// <remarks> /// Called by pertinent shaper's GetGlyph method; ie, those shapers /// that need to create a text dependent list of features /// (e.g. Arabic, Mongolian). /// The "keep" count takes priority over "size" if there's already an /// array, so if size size is less than keep, the resized array has at /// least keep elements. It is possible to create a 0 sized array. /// </remarks> public bool InitializeFeatureList(ushort size, ushort keep) { if (_textFeatures == null) { _textFeatures = new ShaperFeaturesList(); if (_textFeatures == null) { return false; } _textFeatures.Initialize(size); } else { _textFeatures.Resize(size, keep); } return true; }