By default, Hollywood's linker will automatically link all fonts declared using the
@FONT preprocessor command to the output executable or applet. If your
script looks like below, for example, the font Arial
will automatically be linked to your
executable or applet:
@FONT 1, "Arial", 36 WaitLeftMouse End |
If you don't want that, you can set the Link
tag, which is accepted by the
@FONT preprocessor command, to False
. In that case, the font
specified in the preprocessor command will not be linked. The code looks like
this then:
@FONT 1, "Arial", 36, {Link = False} WaitLeftMouse End |
Sometimes, you might also want to link fonts that are loaded by your script at runtime into your executable or applet. Consider the following code for example:
SetFont("Arial", 36) WaitLeftMouse End |
By default, font Arial
won't be linked to your executable or applet because
it wasn't declared in a preprocessor command but it is loaded at runtime using
SetFont() instead. Still, it is possible to link Arial
font
to your executable or applet. This can be achieved by using either the ‘-linkfonts’
compiler option or the @LINKER preprocessor command.
If you choose to use the ‘-linkfonts’ compiler option, you need to pass a database file to it. The database file is a simple UTF-8 text file which contains a list of fonts to link into the applet or executable that will be compiled by Hollywood. You must only specify one font per line in the database file. The font can be either the name of a font or a path to a *.ttf or *.otf file. Note that when passing paths to *.ttf or *.otf files directly, you must use the inbuilt font engine because only that is able to load fonts from files. A font database could look like the following:
Arial "Times New Roman" FuturaL helvetica data/arial.ttf |
Do not forget to use quotes when passing font names that have spaces in them!
The same can be achieved by using the @LINKER preprocessor command. The only difference is that the fonts to be linked don't have to be passed in an external database file to Hollywood, but they must be stored directly in your script as part of the @LINKER preprocessor command instead. All other rules are the same as with ‘-linkfonts’. So if you don't want to use ‘-linkfonts’ like above, you could also just add the following line to your script and achieve the same:
@LINKER {Fonts = {"Arial", "Times New Roman", "FuturaL", "helvetica", "data/arial.ttf"}} |
You can add as many fonts as you want to have linked to your applet or executable to the Fonts
tag that is part of the @LINKER preprocessor command.
Important note: Please note that most fonts are copyrighted and it is not
allowed to link them into your programs without acquiring a licence. So make
sure you check the licence of the font you are going to link into your
program! If you do not want to pay for font licences, it is advised to use
a free font such as DejaVu or Bitstream Vera or use one of the TrueType fonts
that are inbuilt into Hollywood (#SANS
, #SERIF
, #MONOSPACE
, cf. SetFont())