home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 2
/
FFMCD02.bin
/
useful
/
os-include
/
diskfont
/
diskfonttag.i
< prev
next >
Wrap
Text File
|
1992-09-24
|
12KB
|
303 lines
IFND DISKFONT_DISKFONTTAG_I
DISKFONT_DISKFONTTAG_I SET 1
** $VER: diskfonttag.i 38.4 (14.07.92)
** Includes Release 39.108
**
** diskfonttag.i -- tag definitions for .otag files
**
** Copyright 1992 Commodore-Amiga Inc.
** All Rights Reserved
IFND EXEC_TYPES_I
INCLUDE "exec/types.i"
ENDC
IFND UTILITY_TAGITEM_I
INCLUDE "utility/tagitem.i"
ENDC
* Level 0 entries never appear in the .otag list, but appear in font
* specifications
OT_Level0 EQU TAG_USER
* Level 1 entries are required to exist in the .otag tag list
OT_Level1 EQU (TAG_USER!$1000)
* Level 2 entries are optional typeface metric tags
OT_Level2 EQU (TAG_USER!$2000)
* Level 3 entries are required for some OT_Engines
OT_Level3 EQU (TAG_USER!$3000)
* Indirect entries are at (tag address + data offset)
OT_Indirect EQU $8000
********************************************************************
* font specification and inquiry tags
*
*! tags flagged with an exclaimation mark are valid for
* specification.
* ? tags flagged with a question mark are valid for inquiry
*
* fixed binary numbers are encoded as 16 bits of integer and
* 16 bits of fraction. Negative values are indicated by twos
* complement of all 32 bits.
*! OT_DeviceDPI specifies the target device dots per inch -- X DPI is
* in the high word, Y DPI in the low word. OT_DeviceDPI == TA_DeviceDPI.
OT_DeviceDPI EQU (OT_Level0!$01)
*! OT_DotSize specifies the target device dot size as a percent of
* it's resolution-implied size -- X percent in high word, Y percent
* in low word.
OT_DotSize EQU (OT_Level0!$02)
*! OT_PointHeight specifies the requested point height of a typeface,
* specifically, the height and nominal width of the em-square.
* The point referred to here is 1/72". It is encoded as a fixed
* binary number.
OT_PointHeight EQU (OT_Level0!$08)
*! OT_SetFactor specifies the requested set width of a typeface.
* It distorts the width of the em-square from that specified by
* OT_PointHeight. To compensate for a device with different
* horizontal and vertical resolutions, OT_DeviceDPI should be used
* instead. For a normal aspect ratio, set to 1.0 (encoded as
* 0x00010000). This is the default value.
OT_SetFactor EQU (OT_Level0!$09)
*! OT_Shear... specifies the Sine and Cosine of the vertical stroke
* angle, as two fixed point binary fractions. Both must be specified:
* first the Sine and then the Cosine. Setting the sine component
* changes the Shear to an undefined value, setting the cosine
* component completes the Shear change to the new composite value.
* For no shear, set to 0.0, 1.0 (encoded as 0x00000000, 0x00010000).
* This is the default value.
OT_ShearSin EQU (OT_Level0!$0a)
OT_ShearCos EQU (OT_Level0!$0b)
*! OT_Rotate... specifies the Sine and Cosine of the baselin rotation
* angle, as two fixed point binary fractions. Both must be specified:
* first the Sine and then the Cosine. Setting the sine component
* changes the Shear to an undefined value, setting the cosine
* component completes the Shear change to the new composite value.
* For no shear, set to 0.0, 1.0 (encoded as 0x00000000, 0x00010000).
* This is the default value.
OT_RotateSin EQU (OT_Level0!$0c)
OT_RotateCos EQU (OT_Level0!$0d)
*! OT_Embolden... specifies values to algorithimically embolden -- or,
* when negative, lighten -- the glyph. It is encoded as a fixed point
* binary fraction of the em-square. The X and Y components can be
* changed indendently. For normal characters, set to 0.0, 0.0
* (encoded as 0x00000000, 0x00000000). This is the default value.
OT_EmboldenX EQU (OT_Level0!$0e)
OT_EmboldenY EQU (OT_Level0!$0f)
*! OT_PointSize is an old method of specifying the point size,
* encoded as (points * 16).
OT_PointSize EQU (OT_Level0!$10)
*! OT_GlyphCode specifies the glyph (character) code to use with
* subsequent operations. For example, this is the code for an
* OT_Glyph inquiry
OT_GlyphCode EQU (OT_Level0!$11)
*! OT_GlyphCode2 specifies the second glyph code. For example,
* this is the right glyph of the two glyphs of an OT_KernPair
* inquiry
OT_GlyphCode2 EQU (OT_Level0!$12)
*! OT_GlyphWidth specifies a specific width for a glyph.
* It sets a specific escapement (advance) width for subsequent
* glyphs. It is encoded as a fixed binary fraction of the em-square.
* To revert to using the font-defined escapement for each glyph, set
* to 0.0 (encoded as 0x00000000). This is the default value.
OT_GlyphWidth EQU (OT_Level0!$13)
*! OT_OTagPath and
*! OT_OTagList specify the selected typeface. Both must be specified:
* first the Path and then the List. Setting the path name changes
* changes the typeface to an undefined value, providing the List
* completes the typeface selection to the new typeface. OTagPath
* is the null terminated full file path of the .otag file associated
* with the typeface. OTagList is a memory copy of the processed
* contents of that .otag file (i.e. with indirections resolved).
* There are no default values for the typeface.
OT_OTagPath EQU (OT_Level0!OT_Indirect!$14)
OT_OTagList EQU (OT_Level0!OT_Indirect!$15)
* ? OT_GlyphMap supplies a read-only struct GlyphMap pointer that
* describes a bitmap for a glyph with the current attributes.
OT_GlyphMap EQU (OT_Level0!OT_Indirect!$20)
* ? OT_WidthList supplies a read-only struct MinList of struct
* GlyphWidthEntry nodes for glyphs that are defined from GlyphCode
* to GlyphCode2, inclusive. The widths are represented as fixed
* binary fractions of the em-square, ignoring any effect of
* SetFactor or GlyphWidth. A width would need to be converted to
* a distance along the baseline in device units by the
* application.
OT_WidthList EQU (OT_Level0!OT_Indirect!$21)
* ? OT_...KernPair supplies the kern adjustment to be added to the
* current position after placement of the GlyphCode glyph and
* before placement of the GlyphCode2 glyph. Text kern pairs are
* for rendering body text. Display kern pairs are generally
* tighter values for display (e.g. headline) purposes. The
* adjustment is represented as a fixed binary fraction of the
* em-square, ignoring any effect of SetFactor. This number would
* need to be converted to a distance along the baseline in device
* units by the application.
OT_TextKernPair EQU (OT_Level0!OT_Indirect!$22)
OT_DesignKernPair EQU (OT_Level0!OT_Indirect!$23)
* ? OT_Underlined is an unsigned word which is used to request
* algorithimic underlining for the engine when rendering the glyph.
* Bullet.library currently does not support this tag, though it
* may be used by other engines in the future. The default for
* any engine which supports this tag must be OTUL_None. Engines which
* do not support this tag should return an appropriate OTERR value.
*
* As of V39, diskfont.library will request underlining if specified
* in the TextAttr, or TTextAttr passed to OpenDiskFont(). Diskfont
* will first request Broken underlining (like the Text() function
* does when SetSoftStyle() is used), and then Solid underlining if
* the engine returns an error. If the engine returns an error for
* both, then diskfont.library attempts to find, or create the best
* non-underlined font that it can.
OT_UnderLined EQU (OT_Level0!$24)
OTUL_None EQU 0
OTUL_Solid EQU 1
OTUL_Broken EQU 2
OTUL_DoubleSolid EQU 3
OUTL_DoubleBroken EQU 4
* ? OT_StrikeThrough is a boolean which is used to request
* algorithimic strike through when rendering the glyph.
* Bullet.library currently does not support this tag, though it
* may be used by other engines in the future. The default for
* any engined which supports this tag must be FALSE. Engines which
* do not support this tag should return an appropriate OTERR value.
OT_StrikeThrough EQU (OT_Level0!$25)
********************************************************************
* .otag tags
* suffix for files in FONTS: that contain these tags
OTSUFFIX MACRO ; ".otag" text
dc.b '.otag',0
ds.w 0
ENDM
* OT_FileIdent both identifies this file and ver