| /* Copyright (C) 1989 Aladdin Enterprises. All rights reserved. |
| Distributed by Free Software Foundation, Inc. |
| |
| This file is part of Ghostscript. |
| |
| Ghostscript is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY. No author or distributor accepts responsibility |
| to anyone for the consequences of using it or for whether it serves any |
| particular purpose or works at all, unless he says so in writing. Refer |
| to the Ghostscript General Public License for full details. |
| |
| Everyone is granted permission to copy, modify and redistribute |
| Ghostscript, but only under the conditions described in the Ghostscript |
| General Public License. A copy of this license is supposed to have been |
| given to you along with Ghostscript so you can know your rights and |
| responsibilities. It should be in a file named COPYING. Among other |
| things, the copyright notice and this notice must be preserved on all |
| copies. */ |
| |
| /* gsfont.h */ |
| /* Font operations for GhostScript library */ |
| /* Requires gsmatrix.h */ |
| |
| /* A 'font directory' object (to avoid making fonts global). */ |
| /* 'directory' is something of a misnomer: this structure */ |
| /* actually just keeps track of the scaled font and */ |
| /* rendered character caches. */ |
| typedef struct gs_font_dir_s gs_font_dir; |
| |
| /* Font objects */ |
| typedef struct gs_font_s gs_font; |
| |
| /* Initialization */ |
| /* These procedures return 0 if they fail. */ |
| gs_font_dir *gs_font_dir_alloc(P2(proc_alloc_t, proc_free_t)); |
| gs_font_dir *gs_font_dir_alloc_limits(P7(proc_alloc_t, proc_free_t, |
| uint /*smax*/, uint /*bmax*/, uint /*mmax*/, |
| uint /*cmax*/, uint /*upper*/)); |
| |
| /* Font manipulations */ |
| /* gs_scalefont and gs_makefont return 0 if the scaled font */ |
| /* was already in the cache, 1 if a new font was created. */ |
| /* The second gs_font ** argument returns a font discarded */ |
| /* from the cache (or 0) in the latter case. This is for */ |
| /* the benefit of reference-counted clients. */ |
| int gs_scalefont(P5(gs_font_dir *, gs_font *, floatp, gs_font **, gs_font **)); |
| int gs_makefont(P5(gs_font_dir *, gs_font *, gs_matrix *, gs_font **, gs_font **)); |
| int gs_setfont(P2(gs_state *, gs_font *)); |
| gs_font * gs_currentfont(P1(gs_state *)); |
| |
| /* Font cache parameter operations */ |
| void gs_cachestatus(P2(gs_font_dir *, uint [7])); |
| int gs_setcachelimit(P2(gs_font_dir *, uint)); |
| uint gs_currentcachelower(P1(gs_font_dir *)); |
| int gs_setcachelower(P2(gs_font_dir *, uint)); |
| uint gs_currentcacheupper(P1(gs_font_dir *)); |
| int gs_setcacheupper(P2(gs_font_dir *, uint)); |