home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 517a.lha / VFont_v2.0 / docs / autodocs.pp / autodocs
Text File  |  1991-06-09  |  36KB  |  1,321 lines

  1. TABLE OF CONTENTS
  2.  
  3. vFont.library/Transform
  4. vFont.library/Rotate
  5. vFont.library/Scale
  6. vFont.library/Transpose
  7. vFont.library/Bend
  8. vFont.library/Cross
  9. vFont.library/Widen
  10. vFont.library/PolyCDraw
  11. vFont.library/PolyACDraw
  12. vFont.library/DrawCurve
  13. vFont.library/VText
  14. vFont.library/VTextLength
  15. vFont.library/VTextRoof
  16. vFont.library/OpenBFont
  17. vFont.library/OpenVFont
  18. vFont.library/GetVFont
  19. vFont.library/SetVFont
  20. vFont.library/MakeChar
  21. vFont.library/ChangeVFont
  22. vFont.library/ReThinkVFont
  23. vFont.library/UnmapVFont
  24. vFont.library/LockVFont
  25. vFont.library/UnLockVFont
  26. vFont.library/PrintVText
  27. vFont.library/CloseVFont
  28. vFont.library/LoadVFont
  29. vFont.library/SaveVFont
  30. vFont.library/SetVRendering
  31. vFont.library/ReportStatus
  32. vFont.library/FlushWhat
  33. vFont.library/AlertUser
  34. vFont.library/NewVFontContents
  35. vFont.library/SaveFontAttr
  36. vFont.library/FlushFonts
  37.  
  38. vFont.library/Transform
  39.  
  40.     NAME
  41.         Transform -- Scale, rotate, move and clip some vertices.
  42.     
  43.     SYNOPSIS
  44.         Transform(vertices, cnt, sx, sy, a, r, t, min, max)
  45.                   A0         D1   D2 D3  D4 D5 A1 A2   A3
  46.  
  47.         Point *vertices;
  48.         ULONG cnt;
  49.         FIX sx;
  50.         FIX sy;
  51.         FIX a;
  52.         Point *r;
  53.         Point *t;
  54.         Point *min;
  55.         Point *max;
  56.  
  57.     FUNCTION 
  58.         This is the grand function for transforming some
  59.         vertices.  It will scale, rotate, move and finally
  60.         clip the points.
  61.  
  62.     INPUTS
  63.         vertices = the points that you wish to transform.
  64.         cnt = The number of vertices.
  65.         sx = The horizontal scaling factor.
  66.         sy = The vertical scaling factor.
  67.         a = The angle that the vertices should be rotated.
  68.         t = Where the vertices should be moved to.
  69.         min = The lower boundary to clip against.
  70.         max = The upper boundary to clip against.
  71.     
  72.     RESULT
  73.         None
  74.  
  75.     BUGS
  76.         Untested code with missing pieces (no clipping is performed yet.
  77.  
  78.     SEE ALSO
  79.         /vfont/fixpoint.h, /vfont/fixsin.h, Rotate, Scale, Transpose.
  80.     
  81.  
  82. vFont.library/Rotate
  83.  
  84.     NAME
  85.         Rotate -- Rotate some vertices.
  86.     
  87.     SYNOPSIS
  88.         Rotate(vertices, cnt, sinarg, cosarg, rx, ry)
  89.                A0        D1   D2      D3      D4  D5
  90.  
  91.         Point *vertices;
  92.         ULONG cnt;
  93.         FIX sinarg;
  94.         FIX cosarg;
  95.         WORD rx;
  96.         WORD ry;
  97.  
  98.     FUNCTION
  99.         This is a subset of the Transform function. It simple rotates some
  100.         vertices.
  101.  
  102.     INPUTS
  103.         vertices = The vertices that you want to rotate.
  104.         cnt = The number of vertices that you want to rotate.
  105.         sinarg = The sinus value of the angle in fixpoint format.
  106.         cosarg = The cosines value of the angle in fixpoint format.
  107.         rx = The horizontal rotation center.
  108.         ry = The vertical rotation center.
  109.     
  110.     RESULT
  111.         None
  112.  
  113.     BUGS
  114.         None known.
  115.  
  116.     SEE ALSO
  117.         /vfont/fixpoint.h, /vfont/fixsin.h, Transform, Scale, Transpose.
  118.  
  119.  
  120.  
  121. vFont.library/Scale
  122.  
  123.     NAME
  124.         Scale -- Scale a number of vertices.
  125.     
  126.     SYNOPSIS
  127.         Scale(vertices, from, to, sym_x, sym_y)
  128.               a0        a1    a2  d3     d4
  129.  
  130.         Points *vertices;
  131.         Point  *from;
  132.         Point  *to;
  133.         WORD  sym_x;
  134.         WORD  sym_y;
  135.  
  136.     FUNCTION
  137.         This is a subset of the Transform function. It simple scales some
  138.         vertices. It is done with 16-bit integer arithmetic with the 
  139.         accuracy that it permits. The scaling factor is computed as:
  140.         sx = from->x/to, and sy=from->y/to->y.
  141.         Use sym_x and sym_y to improve the symmetry of the points, e.g. a
  142.         square that is centered over some coordinate are guaranteed to stay
  143.         centered after the scaling if the sym_x and sym_y are set to be that
  144.         coordinate.
  145.  
  146.     INPUTS
  147.         vertices = The vertices that you want to scale.
  148.         from = A {dx, dy} pair that represents the original size.
  149.         to = A {dx, dy} pair the represents the desired size.
  150.         sym_x = Vertical symmetry line. Points that are at equal distance 
  151.                 horizontally will be that also after the scaling.
  152.         sym_y = Horizontal symmetry line. Points that are at equal distance 
  153.                 vertically will be that also after the scaling.
  154.     
  155.     RESULT
  156.         None
  157.  
  158.     BUGS
  159.         None known.
  160.  
  161.     SEE ALSO
  162.         /vfont/fixpoint.h, /vfont/fixsin.h, Transform, Rotate, Transpose.
  163.  
  164.  
  165.  
  166. vFont.library/Transpose
  167.  
  168.     NAME
  169.         Transpose -- Move a number of vertices.
  170.     
  171.     SYNOPSIS
  172.         Transpose(vertices, cnt, tx, ty)
  173.                   A0         D1   D2  D3
  174.  
  175.         Point *vertices;
  176.         ULONG cnt;
  177.         FIX a;
  178.         WORD tx;
  179.         WORD ty;
  180.  
  181.     FUNCTION
  182.         This is a subset of the Transform function. It simple moves some
  183.         vertices.
  184.  
  185.     INPUTS
  186.         vertices = The vertices that you want to move.
  187.         cnt = The number of vertices that you want to move.
  188.         tx = The horizontal distance to that the vertices should be moved.
  189.         ty = The vertical distance to that the vertices should be moved.
  190.     
  191.     RESULT
  192.         None
  193.  
  194.     BUGS
  195.         None known.
  196.  
  197.     SEE ALSO
  198.         /vfont/fixpoint.h, /vfont/fixsin.h, Transform, Scale, Rotate.
  199.  
  200.  
  201.  
  202. vFont.library/Bend
  203.  
  204.  
  205.     NAME
  206.         Bend -- Create a spline out of some vertices.
  207.     
  208.     SYNOPSIS
  209.         success = Bend(pts, r, e, curve)
  210.         D0             A0   D1 D2 D3
  211.  
  212.         ULONG success;
  213.         Points *pts;
  214.         UBYTE r;
  215.         UBYTE e;
  216.         ULONG curve;
  217.  
  218.     FUNCTION
  219.         This function attempts to create a spline. The
  220.         original definition curve will be lost after this
  221.         function call, and the spline curve will be found
  222.         in its place if there was enough space for it.
  223.  
  224.     INPUTS
  225.         pts = This is where you put the lines that you wishes to bend. 
  226.             Make sure that you initiate this structure properly with 
  227.             enough extra space. It must contain at least two points!
  228.         r = This value indicate how well you wish the resulting spline
  229.             should conforms the original lines. A low value will 
  230.             generate a spline that is close to original lines. It should 
  231.             be in the interval 0-255. A 60-70 will generate a perfect 
  232.             circle out of a square.
  233.         e = This value indicate how smooth or rough the spline should 
  234.             be. A high value will leave the lines as they were,  and a
  235.             low value will generate a spline that is as smooth as
  236.             possible. This value is highly related to the time that it
  237.             takes to conform lines to a spline. It should always be
  238.             between 0-255.
  239.         curve = This is a flag that indicates whether this spline should
  240.             be a curve, i.e. no end points, or not.
  241.     
  242.     RESULT
  243.         success = TRUE if the operation succeeded, and FALSE otherwise.
  244.             The result in pts should never be used if this function
  245.             returns FALSE.
  246.         pts = The created spline.
  247.  
  248.     BUGS
  249.         None known.
  250.  
  251.     SEE ALSO
  252.         Widen
  253.  
  254.  
  255. vFont.library/Cross
  256.  
  257.     NAME
  258.         Cross -- Determine if and where two lines intersect.
  259.     
  260.     SYNOPSIS
  261.         hit = Cross(l1, l2, p)
  262.         D0          A0, A1, A2
  263.  
  264.         ULONG hit;
  265.         line *l1;
  266.         line *l2;
  267.         Point *p;
  268.  
  269.     FUNCTION
  270.         This function will first determine if the specified lines
  271.         intersect and then calculate where if they do intersect. The
  272.         result will be stored in a, by the user allocated, Point
  273.         structure.
  274.  
  275.     INPUTS
  276.         l1 = One of the intersecting lines.
  277.         l2 = The other intersecting line.
  278.  
  279.     RESULT
  280.         hit = TRUE if the lines intersect.
  281.         p = The position where the lines intersect. NOTE! P MUST BE
  282.             ALLOCATED BY THE USER! The value in p is only valid if the
  283.             function returns TRUE.
  284.  
  285.     BUGS
  286.         None known.
  287.  
  288.     SEE ALSO
  289.         Nothing.
  290.  
  291.  
  292. vFont.library/Widen
  293.  
  294.  
  295.     NAME
  296.         Widen -- Create a thick line.
  297.     
  298.     SYNOPSIS
  299.         Widen(vertices, cnt, l1, l2, t)
  300.               A0         D1   A1  A2  D2
  301.         
  302.  
  303.         Point *vertices;
  304.         ULONG cnt;
  305.         Points *l1;
  306.         Points *l2;
  307.         WORD t;
  308.  
  309.     FUNCTION
  310.         This function takes some vertices and fills in l1 and l2 with 
  311.         the lines that are at an orthogonal distance of t/2 from the 
  312.         original line. NOTE! Make sure that you initiates l1 and l2 with
  313.         sufficient memory to hold at least a copy of the original 
  314.         vertices.
  315.  
  316.     INPUTS
  317.         cnt = The number of vertices.
  318.         vertices = The original points.
  319.         t = The width of the resulting line.
  320.     
  321.     RESULT
  322.         l1 = One side of the line.
  323.         l2 = The other side of it.
  324.  
  325.     BUGS
  326.         Yes.
  327.  
  328.     SEE ALSO
  329.         Bend
  330.  
  331.  
  332. vFont.library/PolyCDraw
  333.  
  334.     NAME
  335.         PolyCDraw -- Draw the contour of a thick line into a RastPort.
  336.     
  337.     SYNOPSIS
  338.         PolyCDraw(rp, vertices, cnt, t)
  339.                   A0  A1         D1   D2
  340.  
  341.         struct RastPort *rp;
  342.         Point *vertices;
  343.         ULONG cnt;
  344.         WORD t;
  345.  
  346.     FUNCTION
  347.         This function draws a line just like PolyDraw, with the
  348.         difference that the line be the contour of a line with a
  349.         width. PolyCDraw uses the same stuff in the rastport as
  350.         PolyDraw, e.g. FgPen, BgPen, cp_x, cp_y,  DrawMode,
  351.         LinePtrn etc.
  352.  
  353.     INPUTS
  354.         rp = The rastport to draw in.
  355.         cnt = The number of vertices to draw.
  356.         vertices = The vertices to draw.
  357.         t = The width of the line.
  358.     
  359.     RESULT
  360.         None
  361.  
  362.     BUGS
  363.         None known.
  364.  
  365.     SEE ALSO
  366.         graphics.library/PolyDraw, PolyACDraw
  367.  
  368. vFont.library/PolyACDraw
  369.  
  370.     NAME
  371.         PolyACDraw -- Draw a thick solid line into a RastPort.
  372.     
  373.     SYNOPSIS
  374.         PolyACDraw(rp, vertices, cnt, t)
  375.                    A0  A1         D1   D2
  376.  
  377.         struct RastPort *rp;
  378.         Point *vertices;
  379.         ULONG cnt;
  380.         WORD t;
  381.  
  382.     FUNCTION
  383.         This function draws a line just like PolyDraw, with the
  384.         difference that the line be a solid line with a width.
  385.         PolyACDraw uses the same stuff in the rastport as PolyDraw,
  386.         e.g. FgPen, BgPen, cp_x, cp_y,  DrawMode, AreaPtrn etc. 
  387.         NOTE! Make sure that you set up the AreaInfo and the TmpRas
  388.         in the rastport before you use this function.
  389.  
  390.     INPUTS
  391.         rp = The rastport to draw in.
  392.         vertices = The vertices to draw.
  393.         cnt = The number of vertices to draw.
  394.         t = The width of the line.
  395.     
  396.     RESULT
  397.         None
  398.  
  399.     BUGS
  400.     None known.
  401.  
  402.     SEE ALSO
  403.         graphics.library/PolyDraw, PolyACDraw
  404.  
  405. vFont.library/DrawCurve
  406.  
  407.     NAME
  408.         DrawCurve -- Draws a specified curve into the RastPort
  409.     
  410.     SYNOPSIS
  411.         DrawCurve(rp, curve, x, y)
  412.                   A0  A1     D1 D2
  413.  
  414.         struct RastPort *rp;
  415.         Curve *curve;
  416.         WORD x;
  417.         WORD y;
  418.  
  419.     FUNCTION
  420.         First,  sets up the DrawMode and Pens in the RastPort
  421.         according to the arguments of the Curve structure.  Then,
  422.         draws the vectors of the Curve argument into the RastPort,
  423.         offset by the x and y Offsets.  As with all graphics
  424.         rendering routines,  the border will be clipped to to the
  425.         boundaries of the RastPort's layer,  if it exists.  This is         
  426.         the case with Windows' RastPort. Different types of curves 
  427.         can be drawn depending on the bits set in the Flags part of
  428.         the Curve structure.  The following types of curves exists:
  429.         CF_CONTOUR:
  430.         CF_BORDER:
  431.         CF_LINE:
  432.         CF_CURVE:
  433.         CF_DOTTED:
  434.         CF_STRAIGHT:
  435.  
  436.     INPUTS
  437.         rp = The RastPort.
  438.         curve = The curve to draw.
  439.         x = The left offset.
  440.         y = The top offset.
  441.     
  442.     RESULT
  443.         None
  444.  
  445.     BUGS
  446.         None known.
  447.  
  448.     SEE ALSO
  449.         vfont/curve.h, intuition.library/DrawBorder
  450.  
  451. vFont.library/VText
  452.  
  453.     NAME
  454.         VText -- Write a text string into the RastPort.
  455.     
  456.     SYNOPSIS
  457.         VText(rp, text, length)
  458.               A0  A1    D1
  459.  
  460.         struct RastPort *rp;
  461.         UBYTE *text;
  462.         ULONG length;
  463.  
  464.     FUNCTION
  465.  
  466.         Write some text into a RastPort.  It uses all the relevant parts
  467.         of RastPort, such as DrawMode FgPen etc.  You should set a font
  468.         for this RastPort with a SetVFont call before you call this
  469.         function.  The function will use the font set for this RastPort
  470.         with the graphics.library function SetFont if no font has been
  471.         set with SetVFont.
  472.  
  473.         VText is 100% compatible with the graphics.library function
  474.         Text.  The big difference between VText and Text is that VText
  475.         can render text in any direction, while Text can only render
  476.         text in a left to right (or right to left) fashion.  They can
  477.         both render text using a standard bitmap font (struct TextFont)
  478.         or a vfont.library font (VFont).  Make sure that all characters,
  479.         when using a vfont with Text, in the font is cached (See other
  480.         technical documentation about mapping and caching vfont's). An 
  481.         easy way is to open the font with the OpenBFont function.
  482.  
  483.     INPUTS
  484.         rp = The RastPort.
  485.         text = The text.
  486.         length = Number of characters to write.
  487.     
  488.     RESULT
  489.         None
  490.  
  491.     BUGS
  492.         VText is implemented by using the graphics.library function
  493.         BltTemplate, which will always clip against a layer. Using a
  494.         rastport without a layer has two effects; it will make the
  495.         rendering 30% faster, but will result in garbage under Kickstart
  496.         1.3. This has been fixed under Kickstart 2.0+. This means that
  497.         printing characters directly on a screen's rastport will result
  498.         in garbage, although quite fast.
  499.  
  500.     SEE ALSO
  501.         graphics.library/Text
  502.  
  503. vFont.library/VTextLength
  504.  
  505.     NAME
  506.         VTextLength -- Estimate the length of a text string.
  507.     
  508.     SYNOPSIS
  509.         length = VTextLength(vfont, text, count)
  510.         D0                   A0     A1    D0
  511.  
  512.         ULONG length;
  513.         VFont *vfont;
  514.         UBYTE *text;
  515.         UWORD count;
  516.  
  517.     FUNCTION
  518.         Estimate the length of the baseline for the text string.  NOTE!
  519.         IT RETURNS THE WIDTH NEEDED IF THE FONT IS USED HORIZONTALLY!
  520.         This function does not concern itself with the path direction
  521.         for the vector font, so you have to convert the length of the 
  522.         baseline to the width that the string will occupy when rendered
  523.         in the chosen direction:
  524.             x_distance=VTextLength(vfont, "testing..")*Cos(vfont->AlfaPath);
  525.  
  526.         Characters in the string that are not defined in the font are
  527.         assumed to be rendered as the special undef-character of the
  528.         font, and are therefor assumed to have that width. Make sure
  529.         that you replace non-printable characters in the string, e.g. 
  530.         tabs etc., if you know that they should NOT be rendered as the
  531.         undef-character.
  532.  
  533.     INPUTS
  534.         vfont = The vector font.
  535.         text = A null terminated text string.
  536.         count = The number of characters in the string. A -1 will cause
  537.                 the function to first count the characters in the string
  538.                 up to the first '\0' character in the string.
  539.     
  540.     RESULT
  541.         length = The length.
  542.  
  543.     BUGS
  544.         None known.
  545.  
  546.     SEE ALSO
  547.         VTextRoof
  548.  
  549. vFont.library/VTextRoof
  550.  
  551.     NAME
  552.         VTextRoof -- Estimate the height of a text string.
  553.     
  554.     SYNOPSIS
  555.         height = VTextRoof(vfont, text)
  556.         D0                 A0     A1
  557.  
  558.         ULONG height;
  559.         VFont *vfont;
  560.         UBYTE *text;
  561.  
  562.     FUNCTION
  563.         Estimate the height of the text string, i.e. the minimum
  564.         height that is required to fit in the text string using this
  565.         font when set to horizontal rendering. This might be lower than
  566.         the height of the font is the string contains characters that
  567.         are low, e.g. "xxxx" or ".....". 
  568.  
  569.     INPUTS
  570.         vfont = The vector font.
  571.         text = A null terminated text string.
  572.     
  573.     RESULT
  574.         height = The height.
  575.  
  576.     BUGS
  577.         None known.
  578.  
  579.     SEE ALSO
  580.         VTextLength
  581.  
  582. vFont.library/OpenBFont
  583.  
  584.     NAME
  585.         OpenBFont -- Open a graphics.library bitmap font.
  586.     
  587.     SYNOPSIS
  588.         font = OpenBFont(attr)
  589.         D0               A0
  590.  
  591.         struct TextFont *font;
  592.         (struct )Text(V)Attr *attr;
  593.  
  594.     FUNCTION
  595.         This function will open a standard graphics.library bitmap
  596.         compatible font, i.e.  a VFont font that is fully mapped and
  597.         cached or a plain bitmap font.  
  598.  
  599.         The attr contains information about how this should be done.
  600.         attr can be either a graphics.library/TextAttr structure or a
  601.         vfont.library/TextVAttr structure.  The TextVAttr structure is a
  602.         superset of the TextAttr structure.  They are distinguished by
  603.         the sign bit of the YSize in the TextAttr which is a one bit
  604.         flag in the TextVAttr (speaking in C-lingo).  Setting this
  605.         flag means that the structure should be interpreted as a
  606.         vfont.library/TextVAttr structure.
  607.  
  608.         NOTE:  Specifying a graphics.library/TextAttr with a negative YSize
  609.         will fool the function to believe that the structure is a TextVAttr
  610.         and will result in unpredictable results.  Since a negative size is
  611.         illegal anyway that should not surprise you!
  612.  
  613.         This function is 100% compatible with diskfont.library/OpenDiskFont and
  614.         graphics.library/OpenFont.
  615.  
  616.     INPUTS
  617.         attr = The requirements, such as size, path etc.
  618.         
  619.         TextAttr: See documentation for graphics.library!
  620.         TextVAttr {
  621.             UBYTE   *Name;              /* The name of the class or bitmap font. */
  622.             unsigned VectorFont : 1;    /* Always TRUE. */
  623.             unsigned YSize : 15;        /* The height. (0-32768) */
  624.             UBYTE   Style;              /* The desired style. */
  625.             UBYTE   Flags;              /* Flags. */
  626.             UBYTE   *FontName;          /* The vector font name. */
  627.             UBYTE   *Author;            /* The name of the author. */
  628.             UWORD  XSize;              /* Horizontal size. */
  629.             UWORD  VFlags;             /* Flags for vector fonts. */
  630.         }
  631.  
  632.         Name:
  633.         The Name can have the '.font' or the '.vfont' or neither
  634.         extensions.  It can also include a path to the font.  The 'fonts:'
  635.         path will be appended to the name if the font can not be found under
  636.         the name and if the font is to be loaded from disk.
  637.  
  638.         VectorFont:
  639.         This bit must always be set, or else will function ignore the four
  640.         last fields in the structure.
  641.  
  642.         YSize, XSize:
  643.         This is the desired size.  One or both can be set to zero if the
  644.         font is created from a vfont class.  Setting one of them to zero
  645.         will let the function set that size so that the vfont will have the
  646.         same proportions as when it was created.  Setting both to zero will
  647.         open the vfont in the size that is was designed in (typically
  648.         256x256).
  649.  
  650.         Style:        
  651.         This describes what kind of style you want. It can be:
  652.             FS_NORMAL
  653.             FSF_EXTENDED
  654.             FSF_ITALIC
  655.             FSF_BOLD
  656.             FSF_UNDERLINED
  657.             
  658.         Flags:
  659.         This describes some of the properties of the font. It can be:
  660.             FPF_ROMFONT     
  661.             FPF_DISKFONT    
  662.             FPF_REVPATH
  663.             FPF_TALLDOT
  664.             FPF_WIDEDOT
  665.             FPF_PROPORTINAL
  666.             FPF_DESIGNED
  667.             FPF_REMOVED
  668.  
  669.         FontName:
  670.         The name that the vector font instance should have. Not used by
  671.         this function.
  672.  
  673.         Author:
  674.         The name of the author.  The function will allocate a string with
  675.         the name of the author of the font if the font was loaded from
  676.         disk.  The memory will automatically be deallocated when the
  677.         library is flushed.  You can be nice to the system and deallocated
  678.         the memory with the VFreeMem function when you are done with the
  679.         name of the author.
  680.  
  681.         VFlags:
  682.         This specifies properties that are specific to vector fonts. It can be:
  683.             VFB_MUTE        /* Don't report errors. */
  684.             VFB_DEBUG       /* Report debug information via SER: */
  685.             VFB_VERBOSE     /* Report errors to the user via intuition. */
  686.             VFB_FLUSHCLASS  /* Free the font class when it is no longer in use. */
  687.             VFB_FLUSHFONTS  /* Free the font when it is no longer in use. */
  688.             VFB_MAPPED      /* Build the instance immediately. */
  689.             VFB_EXCLUSIVE   /* Don't let other use this font. */
  690.             VFB_FORCED      /* Use locked font classes by force. */
  691.             VFB_NOCONVERT   /* Do not try and convert another type of font. */
  692.             VFB_ANYSIZE     /* Use a best fit font if there is no exact match. */
  693.         
  694.     RESULT
  695.     
  696.         font = A graphics.library bitmap font that is ready to be used with 
  697.                 graphics.library function such as SetFont.
  698.  
  699.     BUGS
  700.         None known.
  701.  
  702.     SEE ALSO
  703.         OpenVFont, graphics.library/OpenFont, diskfont.library/OpenDiskFont.
  704.  
  705. vFont.library/OpenVFont
  706.  
  707.     NAME
  708.         OpenVFont -- Open a vfont.library vector font.
  709.     
  710.     SYNOPSIS
  711.         font = OpenVFont(attr)
  712.         D0               A0
  713.  
  714.         VFont *font;
  715.         (struct )Text(V)Attr *attr;
  716.  
  717.     FUNCTION
  718.         This function will open a vfont.library vector font.  The attr
  719.         contains information about how this should be done.  attr can be
  720.         either a graphics.library/TextAttr structure or a
  721.         vfont.library/TextVAttr structure.  The TextVAttr structure is a
  722.         superset of the TextAttr structure.  They are distinguished by
  723.         the sign bit of the YSize in the TextAttr which is a one bit
  724.         flag in the TextVAttr.  Setting this will means that the
  725.         structure should be interpreted as a vfont.library/TextVAttr
  726.         structure.
  727.  
  728.         NOTE:  Specifying a graphics.library/TextAttr with a negative YSize
  729.         will fool the function to believe that the structure is a TextVAttr
  730.         and will result in unpredictable results.  Since a negative size is
  731.         illegal anyway that should not surprise you!
  732.  
  733.         The function will try to do in the following order:
  734.         1) Reuse an old font if the is a sharable font that
  735.            maps the description of attr.
  736.         2) instanciate a vfont class or...
  737.         3) Call LoadVFont first and then try step 2 again.
  738.         4) Fail.
  739.  
  740.         The function will use default values for the four last fields of
  741.         'attr' if it is a graphics.library/TextAttr structure:
  742.         FontName:   Default=The name of the class.
  743.         VFlags:     Default=VFB_VERBOSE|VFB_EXCLUSIVE
  744.         XSize:      Default=0 (See OpenBFont for description on zero sizes.)
  745.  
  746.  
  747.     INPUTS
  748.         attr = The requirements, such as size, path etc.
  749.         
  750.         TextAttr: See documentation for graphics.library!
  751.         TextVAttr: See OpenBFont
  752.         
  753.     RESULT
  754.     
  755.         font = A vfont.library vector font that is ready to be used.
  756.  
  757.     BUGS
  758.         None known.
  759.  
  760.     SEE ALSO
  761.         OpenBFont, graphics.library/OpenFont, diskfont.library/OpenDiskFont.
  762.  
  763. vFont.library/GetVFont
  764.  
  765.     NAME
  766.         GetVFont -- Retrieve the current vector font in a RastPort.
  767.     
  768.     SYNOPSIS
  769.         vfont = GetVFont(rp)
  770.         D0               A0
  771.  
  772.         VFont *vfont;
  773.         struct RastPort *rp;
  774.  
  775.     FUNCTION
  776.         This is the only way for you to know which vector font is
  777.         being used in a RastPort because that information is private to
  778.         vfont.library.
  779.  
  780.     INPUTS
  781.         rp = The RastPort.
  782.     
  783.     RESULT
  784.         vfont = The vector font.
  785.  
  786.     BUGS
  787.         None known.
  788.  
  789.     SEE ALSO
  790.         *
  791.  
  792. vFont.library/SetVFont
  793.  
  794.     NAME
  795.         SetVFont -- Set the current vector font for a RastPort.
  796.     
  797.     SYNOPSIS
  798.         SetVFont(rp, vfont)
  799.                  A0  A1
  800.  
  801.         VFont *vfont;
  802.         struct RastPort *rp;
  803.  
  804.     FUNCTION
  805.         Set current vector font for a RastPort.
  806.  
  807.     INPUTS
  808.         rp = The RastPort.
  809.         vfont = The vector font.
  810.     
  811.     RESULT
  812.         None
  813.  
  814.     BUGS
  815.         None known.
  816.  
  817.     SEE ALSO
  818.         *
  819.  
  820. vFont.library/MakeChar
  821.  
  822.     NAME
  823.         MakeChar -- Rebuild a character in a font.
  824.     
  825.     SYNOPSIS
  826.         MakeChar(vfont, class, character)
  827.                  A0     A1     D1
  828.  
  829.         VFont *vfont;
  830.         VFontClass  *class;
  831.         WORD character;
  832.  
  833.     FUNCTION
  834.         This function will rebuild a character by using the
  835.         description of that character that is found in a font
  836.         class. There is no requirement that this font class must be
  837.         the same class that was used when the font was created,
  838.         e.g. you could create a font that has the general
  839.         appearance of Times-Roman except for the digits which looks
  840.         like Helvetica. Another use of this function is to
  841.         manipulate the bitmap cache, i.e. you first call
  842.         UnmapVFont and then explicitly make the most commonly used
  843.         character first so that they will use the cache. (See other
  844.         documentation about caching and mapping fonts and classes.)
  845.  
  846.         NOTE! No action is taken if the character is already
  847.         mapped.
  848.  
  849.     INPUTS
  850.         vfont = The vector font that you want to modify.
  851.         class = The class that should be used.
  852.         character = The character to build.
  853.     
  854.     RESULT
  855.         None
  856.  
  857.     BUGS
  858.         None known.
  859.  
  860.     SEE ALSO
  861.         *
  862.  
  863. vFont.library/ChangeVFont
  864.  
  865.     NAME
  866.         ChangeVFont -- Change the characteristics of a vector font.
  867.     
  868.     SYNOPSIS
  869.         ChangeVFont(vfont, mask, req, mapped)
  870.                     A0     D1    A1   D2
  871.  
  872.         VFont *vfont;
  873.         UBYTE mask;
  874.         VFont *req;
  875.         ULONG mapped;
  876.  
  877.     FUNCTION
  878.         This is the major manipulation function for vector fonts.
  879.         Fill in the your preferences for the font in req and set the
  880.         according bits in mask before you call this function.
  881.  
  882.     INPUTS
  883.         vfont = The vector font that you want to modify.
  884.         mask = What values you want to change.
  885.         req = A font with the desired values.
  886.         mapped = TRUE if the font should be mapped.
  887.     
  888.     RESULT
  889.         None
  890.  
  891.     BUGS
  892.         None known.
  893.  
  894.     SEE ALSO
  895.         *
  896.  
  897. vFont.library/ReThinkVFont
  898.  
  899.     NAME
  900.         ReThinkVFont -- Rebuild a vector font.
  901.     
  902.     SYNOPSIS
  903.         ReThinkVFont(vfont)
  904.                      A0
  905.  
  906.         VFont *vfont;
  907.  
  908.     FUNCTION
  909.         Rebuild a vector font from its class. Might be time consuming.
  910.  
  911.     INPUTS
  912.         vfont = The vector font to rebuild.
  913.     
  914.     RESULT
  915.         None
  916.  
  917.     BUGS
  918.         None known.
  919.  
  920.     SEE ALSO
  921.         *
  922.  
  923. vFont.library/UnmapVFont
  924.  
  925.     NAME
  926.         UnmapVFont -- Invalidate a vector font.
  927.     
  928.     SYNOPSIS
  929.         UnmapVFont(vfont)
  930.                    A0
  931.  
  932.         VFont *vfont;
  933.  
  934.     FUNCTION
  935.         Set the dirty bit in each and every character in the vector
  936.         font so that they have to be rebuild the next time they are used.
  937.  
  938.     INPUTS
  939.         vfont = The vector font.
  940.     
  941.     RESULT
  942.         None
  943.  
  944.     BUGS
  945.         None known.
  946.  
  947.     SEE ALSO
  948.         *
  949.  
  950. vFont.library/LockVFont
  951.  
  952.     NAME
  953.         LockVFont -- Make a vector font private.
  954.     
  955.     SYNOPSIS
  956.         lock = LockVFont(vfont, busywait)
  957.         D0               A0     D1
  958.  
  959.         ULONG lock;
  960.         VFont *vfont;
  961.         ULONG busywait;
  962.  
  963.     FUNCTION
  964.         Attempt lock a font for private use only. The function will 
  965.         return a non zero value immediately if it succeeded or if
  966.         busywait is FALSE.
  967.  
  968.     INPUTS
  969.         vfont = The vector font to lock.
  970.         busywait = FALSE if the call should return immediately, regardless
  971.                 if it succeeded or not.
  972.     
  973.     RESULT
  974.         lock = A lock value that should be used when the font is unlocked.
  975.  
  976.     BUGS
  977.         Not implemented yet.
  978.  
  979.     SEE ALSO
  980.         *
  981.  
  982. vFont.library/UnLockVFont
  983.  
  984.     NAME
  985.         UnLockVFont -- Make a font public.
  986.     
  987.     SYNOPSIS
  988.         UnLockVFont(vfont, lock)
  989.                    A0      D1
  990.  
  991.         VFont *vfont;
  992.     ULONG lock;
  993.  
  994.     FUNCTION
  995.         Attempt lock a font for public use again.
  996.  
  997.     INPUTS
  998.         vfont = The vector font to lock.
  999.     lock = A lock from a previous LockVFont call.
  1000.     
  1001.     RESULT
  1002.         None
  1003.  
  1004.     BUGS
  1005.         Not implemented yet.
  1006.  
  1007.     SEE ALSO
  1008.         *
  1009.  
  1010. vFont.library/PrintVText
  1011.  
  1012.     NAME
  1013.         PrintVText -- Write a vector text into a RastPort.
  1014.     
  1015.     SYNOPSIS
  1016.         PrintVText(rp, vtext)
  1017.                    A0  A1
  1018.  
  1019.         struct RastPort *rp;
  1020.         VectorText *vtext;
  1021.  
  1022.     FUNCTION
  1023.         Write a text, using the information that is specified in the
  1024.         VectorText structure, into a RastPort.
  1025.  
  1026.     INPUTS
  1027.         rp = The RastPort.
  1028.         vtext = The VectorText to print in the RastPort.
  1029.     
  1030.     RESULT
  1031.         None
  1032.  
  1033.     BUGS
  1034.         Not implemented yet.
  1035.  
  1036.     SEE ALSO
  1037.         *
  1038.  
  1039. vFont.library/CloseVFont
  1040.  
  1041.     NAME
  1042.         CloseVFont -- Close a vector font.
  1043.     
  1044.     SYNOPSIS
  1045.         CloseVFont(vfont)
  1046.                    A0
  1047.  
  1048.         VFont *vfont;
  1049.  
  1050.     FUNCTION
  1051.         Use this function just like CloseFont. The font will be disposed
  1052.         if there is nobody else using it.    
  1053.  
  1054.     INPUTS
  1055.         vfont = The vector font to close.
  1056.     
  1057.     RESULT
  1058.         None
  1059.  
  1060.     BUGS
  1061.         None known.
  1062.  
  1063.     SEE ALSO
  1064.         *
  1065.  
  1066. vFont.library/LoadVFont
  1067.  
  1068.     NAME
  1069.         LoadVFont -- Load a disk based vector font class.
  1070.     
  1071.     SYNOPSIS
  1072.         author = LoadVFont(tva)
  1073.         D0                 A0 
  1074.  
  1075.         (struct )Text(V)Attr *tva;
  1076.         UBYTE *author;
  1077.  
  1078.     FUNCTION
  1079.         Attempt to load a font class from disk.  It will attempt to
  1080.         locate a FontContents file (files in the fonts:  directory
  1081.         that has the .font extension) that matches the name used in
  1082.         the tva parameter.  It will then scan through the file and
  1083.         look for an entry that matches the description as good as
  1084.         possible.  If the entry in the file contains information
  1085.         about the font format then it will open the appropriate
  1086.         xdf-library and let that library load the font.  The
  1087.         default library that is used if there is no information
  1088.         about the font format is the xdf_diskfont.library.
  1089.  
  1090.     INPUTS
  1091.         tva = A description of the font class to load.
  1092.         author = The name of the author of the font class.
  1093.     
  1094.     RESULT
  1095.         None
  1096.  
  1097.     BUGS
  1098.         None known.
  1099.  
  1100.     SEE ALSO
  1101.         ReportStatus, SaveVFont.
  1102.  
  1103. vFont.library/SaveVFont
  1104.  
  1105.     NAME
  1106.         SaveVFont -- Save a disk based font class.
  1107.     
  1108.     SYNOPSIS
  1109.         done = SaveVFont(tva)
  1110.         D0               A0 
  1111.  
  1112.         (struct )Text(V)Attr *tva;
  1113.         ULONG done;
  1114.  
  1115.     FUNCTION
  1116.         Attempt to save a font class on disk. First it will try and
  1117.         locate the resident font class or fail if it can´t. It will
  1118.         then attempt to locate a FontContents file (files in the
  1119.         fonts:  directory that has the .font extension) that
  1120.         matches the name used in the tva parameter.  A new
  1121.         directory and/or FontContents file will be created if they
  1122.         are missing. The appropriate xdf-library will then be used
  1123.         to save the actual class, which will then be added to the
  1124.         FontContents file, using the SaveFontAttr function.
  1125.  
  1126.     INPUTS
  1127.         tva = A description of the font class to be saved.
  1128.     
  1129.     RESULT
  1130.         done = TRUE if the operation was successful.
  1131.  
  1132.     BUGS
  1133.         None known.
  1134.  
  1135.     SEE ALSO
  1136.         ReportStatus, LoadVFont.
  1137.  
  1138. vFont.library/SetVRendering
  1139.  
  1140.     NAME
  1141.         SetVRendering -- Set the color attributes for color vector fonts.
  1142.     
  1143.     SYNOPSIS
  1144.         SetVRendering(vfont, ???)
  1145.  
  1146.     FUNCTION
  1147.  
  1148.     INPUTS
  1149.     
  1150.     RESULT
  1151.         None
  1152.  
  1153.     BUGS
  1154.         Not implemented yet.
  1155.  
  1156.     SEE ALSO
  1157.         *
  1158.  
  1159. vFont.library/ReportStatus
  1160.  
  1161.     NAME
  1162.         ReportStatus -- Choose how verbose error messages you want.
  1163.     
  1164.     SYNOPSIS
  1165.         ReportStatus(kind)
  1166.                      D1
  1167.  
  1168.         WORD kind;
  1169.  
  1170.     FUNCTION
  1171.         The vFont.library will brief the user about system problems if it
  1172.         can find the req.library and if this function has been used to
  1173.         enable that. Set kind to VFB_DEBUG if you would like to get debug
  1174.         information, via SER: 9600 baud, about the usage of the library. Set
  1175.         kind to VFB_VERBOSE if you would like to get error messages via
  1176.         requesters, or set kind to VFB_MUTE if you don't want any reports 
  1177.         at all.
  1178.  
  1179.     INPUTS
  1180.         kind = VFB_MUTE, VFB_DEBUG, VFB_VERBOSE or VFB_DEBUG|VFB_VERBOSE.
  1181.     
  1182.     RESULT
  1183.         None
  1184.  
  1185.     BUGS
  1186.         None known.
  1187.  
  1188.     SEE ALSO
  1189.         *
  1190.  
  1191. vFont.library/FlushWhat
  1192.  
  1193.     NAME
  1194.         FlushWhat -- Specify if fonts or classes should be flushed.
  1195.     
  1196.     SYNOPSIS
  1197.         FlushWhat(kind)
  1198.                      D1
  1199.  
  1200.         WORD kind;
  1201.  
  1202.     FUNCTION
  1203.         When a font is no longer in use there is an option to
  1204.         either release the memory used for the font or to keep it
  1205.         so that the font does not have to be loaded the next time
  1206.         it is going to be used.  Use this function to set that
  1207.         option.
  1208.  
  1209.     INPUTS
  1210.         kind = 0L, VFB_FLUSHFONT, VFB_FLUSHCLASS or both.
  1211.     
  1212.     RESULT
  1213.         None
  1214.  
  1215.     BUGS
  1216.         None known.
  1217.  
  1218.     SEE ALSO
  1219.         *
  1220.  
  1221. vFont.library/NewVFontContents
  1222.  
  1223.     NAME
  1224.         NewVFontContents -- Build a new FontContents structure.
  1225.     
  1226.     SYNOPSIS
  1227.         NewVFontContents(dir, header)
  1228.                          A0   A1
  1229.  
  1230.         BPTR dir;
  1231.         UBYTE *header;
  1232.  
  1233.     FUNCTION
  1234.         This function will attempt to build a FontContents
  1235.         structure for the a font that is located in a sub-directory
  1236.         of dir named as header, minus the ".font" extension.  It
  1237.         will try all the xdf-libraries to do this.  (See
  1238.         diskfont.library/NewFontContents for a detailed
  1239.         description.)
  1240.  
  1241.     INPUTS
  1242.         dir = A file lock to the font directory (Normally FONTS:).
  1243.         header = The name of the font, plus the ".font" extension.
  1244.     
  1245.     RESULT
  1246.         None
  1247.  
  1248.     BUGS
  1249.         None known.
  1250.  
  1251.     SEE ALSO
  1252.         *
  1253.  
  1254. vFont.library/SaveFontAttr
  1255.  
  1256.     NAME
  1257.         SaveFontAttr -- Add a font entry to a FontContents file.
  1258.     
  1259.     SYNOPSIS
  1260.         SaveFontAttr(info,name,size,flags,style,type,forced)
  1261.                      D1   A0   D2   D3    D4    A1   D5
  1262.  
  1263.         BPTR info;
  1264.         UBYTE *name;
  1265.         UWORD size;
  1266.         UBYTE flags;
  1267.         UBYTE style;
  1268.         UBYTE *type;
  1269.         BOOL forced;
  1270.  
  1271.     FUNCTION
  1272.         Use this function to a a new font class entry to a 
  1273.         FontContents file. 
  1274.  
  1275.     INPUTS
  1276.         info = A BPTR to the FontContents file.
  1277.         name = The name of the font file to add, such as "Times/11".
  1278.         size = Size of the font.
  1279.         flags = Font flags (See graphics.library documentation).
  1280.         style = Font style (--""--)
  1281.         type = The name of the XDF library, minus the prefix and suffix.
  1282.         forced = TRUE if you are sure that it is okay to overwrite an old
  1283.                  entry in the FontContents file.
  1284.         
  1285.     
  1286.     RESULT
  1287.         None
  1288.  
  1289.     BUGS
  1290.         None known.
  1291.  
  1292.     SEE ALSO
  1293.         *
  1294.  
  1295. vFont.library/FlushFonts
  1296.  
  1297.     NAME
  1298.         FlushFonts -- Flush unused fonts and classes.
  1299.     
  1300.     SYNOPSIS
  1301.         FlushFonts(what)
  1302.                    D1
  1303.  
  1304.         UWORD what;
  1305.  
  1306.     FUNCTION
  1307.         Use this function to remove unused fonts and/or classes
  1308.         from the library and release the memory that it occupies.
  1309.  
  1310.     INPUTS
  1311.         what = VFB_FLUSHFONT|VFB_FLUSHCLASS
  1312.     
  1313.     RESULT
  1314.         None
  1315.  
  1316.     BUGS
  1317.         None known.
  1318.  
  1319.     SEE ALSO
  1320.         *
  1321.