void BFont::GetGlyphShapes(const char charArray[], int32 numChars, BShape* glyphShapeArray[]) const { // TODO: implement code specifically for passing BShapes to and // from the server if (!charArray || numChars < 1 || !glyphShapeArray) return; int32 code; BPrivate::AppServerLink link; link.StartMessage(AS_GET_GLYPH_SHAPES); link.Attach<uint16>(fFamilyID); link.Attach<uint16>(fStyleID); link.Attach<float>(fSize); link.Attach<float>(fShear); link.Attach<float>(fRotation); link.Attach<float>(fFalseBoldWidth); link.Attach<uint32>(fFlags); link.Attach<int32>(numChars); uint32 bytesInBuffer = UTF8CountBytes(charArray, numChars); link.Attach<int32>(bytesInBuffer); link.Attach(charArray, bytesInBuffer); if (link.FlushWithReply(code) != B_OK || code != B_OK) return; for (int32 i = 0; i < numChars; i++) link.ReadShape(glyphShapeArray[i]); }