summaryrefslogtreecommitdiff
path: root/src/cairo-ft.h
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2005-01-21 14:33:47 +0000
committerOwen Taylor <otaylor@redhat.com>2005-01-21 14:33:47 +0000
commit97424a3c2a4172dd3a686d0d41f7c7781b670814 (patch)
tree9be9ca7efea23ae5d11238623370bc514735d9e8 /src/cairo-ft.h
parent90689370267f3c02d6be62e3e8c85cccdad6f577 (diff)
downloadcairo-97424a3c2a4172dd3a686d0d41f7c7781b670814.tar.gz
Change cairo_font_t to refer to a font scaled to a particular output device resolution.
src/cairoint.h src/cairo_font.c src/cairo_ft_font.c src/cairo_xlib_surface.c src/cairo_pdf_surface.c src/cairo_gstate.c src/cairo.c: Switch many internal methods from handling cairo_unscaled_font_t and cairo_font_scale_t pairs to handling cairo_font_t. src/cairo-ft-private.h src/cairo_ft_fontc: Add some internal interfaces for use by the FreeType backend. Clear the gstate's current font when the transform or target surface changes. src/cairo.h src/cairo_ft_font.c: Rename cairo_ft_font_pattern to cairo_ft_font_get_pattern(). src/cairo.h src/cairo_ft_font.c: Make cairo_ft_font_create() and cairo_ft_font_create_for_ft_face() take a font scale; make the latter take load_flags for FT_Load_Glyph() as well. Change cairo_ft_font_face() to Xft-style cairo_ft_font_lock_face, cairo_ft_font_unlock_face. Remove the name/slant/weight=>unscaled font cache, it didn't work with the new cairo_font_t setup. If it turns out to be needed, it can be added back in some other form. src/cairoint.h src/cairo_font.c: Add a 'flags' field to cairo_glyph_cache_key_t, we use it for load flags with freetype backend. Switch the caching to be from resolved fontconfig pattern => file; keep only a fixed number of FT_Face objects open at once, similar to FreeType. src/cairo_gstate.c src/cairoint.h: Add public cairo_font_glyph_extents, use it to implement _cairo_gstate_glyph_extents(). Add refcounting for glyph cache elements; there was an bug where elements got ejected from the cache and freed before they could be used. src/cairoint.h src/cairo_cache.c (_cairo_cache_random_entry()) New function to return a random entry in the cache matching a predicate; reuse the internals for the previous _random_live_entry(). src/cairoint.h src/cairo_cache.c (_cairo_cache_lookup()): Add an optional created_entry return value. src/cairo_ft_font.c src/cairo_xlib_surface.c: Adapt to _cairo_cache_lookup() change. Support max_memory == 0 to indicate an unbounded cache. src/cairoint.h src/cairo_cache.c (_cairo_cache_remove()): Add a function to manually remove entries from the cache. Update for changes, document cairo_matrix_t, cairo_glyph_t, etc. src/cairo.h src/cairo-atsui.h src/cairo-ft.h src/cairo-glitz.h src/cairo-pdf.h src/cairo-png.h src/cairo-ps.h src/cairo-quartz.h src/cairo-xcb.h src/cairo-xlib.h: Add CAIRO_BEGIN/END_DECLS for extern "C", use it on all public headers. Move header guards outermost. Fix encoding.
Diffstat (limited to 'src/cairo-ft.h')
-rw-r--r--src/cairo-ft.h31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/cairo-ft.h b/src/cairo-ft.h
index 57d439ab2..f10c67d80 100644
--- a/src/cairo-ft.h
+++ b/src/cairo-ft.h
@@ -1,6 +1,6 @@
/* cairo - a vector graphics library with display and print output
*
- * Copyright © 2002 University of Southern California
+ * Copyright © 2005 Red Hat, Inc
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
@@ -27,17 +27,18 @@
*
* The Original Code is the cairo graphics library.
*
- * The Initial Developer of the Original Code is University of Southern
- * California.
+ * The Initial Developer of the Original Code is Red Hat, Inc.
*
* Contributor(s):
- * Carl D. Worth <cworth@isi.edu>
+ * Graydon Hoare <graydon@redhat.com>
+ * Owen Taylor <otaylor@redhat.com>
*/
-#include <cairo.h>
-
#ifndef CAIRO_FT_H
#define CAIRO_FT_H
+
+#include <cairo.h>
+
#ifdef CAIRO_HAS_FT_FONT
/* Fontconfig/Freetype platform-specific font interface */
@@ -46,17 +47,27 @@
#include <ft2build.h>
#include FT_FREETYPE_H
+CAIRO_BEGIN_DECLS
+
cairo_font_t *
-cairo_ft_font_create (FT_Library ft_library, FcPattern *pattern);
+cairo_ft_font_create (FcPattern *pattern,
+ cairo_matrix_t *scale);
cairo_font_t *
-cairo_ft_font_create_for_ft_face (FT_Face face);
+cairo_ft_font_create_for_ft_face (FT_Face face,
+ int load_flags,
+ cairo_matrix_t *scale);
FT_Face
-cairo_ft_font_face (cairo_font_t *ft_font);
+cairo_ft_font_lock_face (cairo_font_t *ft_font);
+
+void
+cairo_ft_font_unlock_face (cairo_font_t *ft_font);
FcPattern *
-cairo_ft_font_pattern (cairo_font_t *ft_font);
+cairo_ft_font_get_pattern (cairo_font_t *ft_font);
+
+CAIRO_END_DECLS
#endif /* CAIRO_HAS_FT_FONT */
#endif /* CAIRO_FT_H */