summaryrefslogtreecommitdiff
path: root/pango/pangoft2.h
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2000-08-20 08:36:41 +0000
committerTor Lillqvist <tml@src.gnome.org>2000-08-20 08:36:41 +0000
commit79546feb86a232b0d3e01b1f436e258aef32b840 (patch)
treed35f417b2a3112bb3e0fb18d4fc057a37ab79f40 /pango/pangoft2.h
parente95590dd006740ab6bdcf71cae31efbf8404033e (diff)
downloadpango-79546feb86a232b0d3e01b1f436e258aef32b840.tar.gz
Add parameter telling whether to print warning or not if string isn't
2000-08-20 Tor Lillqvist <tml@iki.fi> * pango/pango-utils.c (pango_parse_*): Add parameter telling whether to print warning or not if string isn't recognised. Use g_strncasecmp(). * pango/pango-utils.h: Change prototype accordingly. * pango/pangox-fontmap.c * pango/pangowin32-fontmap.c: Change calls correspondingly. * pango/pangowin32.h: * pango/pangowin32.c: Cosmetic changes, dead code removal. * pango/pangoft2.h * pango/pangoft2-private.h * pango/pangoft2.c * pango/pangoft2-fontmap.c * pango/pangoft2-fontcache.c: New files implementing a FreeType2 backend. Used only on Win32 so far, but doesn't contain Win32-specific code per se, so if somebody wants to try it out on X11, too, be my guest. It works, more or less, but there are some details still to sort out. Performance needs to be improved. Debugging printouts still present. Font path currently hardcoded to C:\windows\fonts, heh. Owen says he doesn't think it's a good idea to use ths on Win32, but I'll try anyway. If it turns out using the native Win32 GDI backend is better after all, oh well. * pango/makefile.mingw: Delete. Move contents to makefile.mingw.in. * pango/makefile.mingw.in: New file. Add rules for FreeType2 backend. Add FreeType2 CFLAGS and LIBS. * pango/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add FreeType2 backend sources, and makefile.mingw{,.in} * modules/basic/basic-win32.c: Couple of cosmetic changes. * modules/basic/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add basic-ft2.c, and makefile.mingw{,.in} * modules/basic/makefile.mingw: Delete. Move contents to makefile.mingw.in. * modules/basic/makefile.mingw.in: New file. Add rule for basic-ft2. Add FreeType2 CFLAGS and LIBS. * examples/viewer-win32.c (read_file): Fix error messages. (draw): Get HDC from GDK once for all paragraphs. * examples/viewer-ft2.c: New file. The FT_Bitmap (256-level bitmap) produced by the FreeType2 backend is copied to the GtkLayout window using gdk_draw_gray_image from GdkRGB (!). Yes, this is kinda circular dependency between Pango and GTK+. * examples/makefile.mingw: Delete. Move contents to makefile.mingw.in. * examples/makefile.mingw.in: New file. Add rules for viewer-ft2. Add FreeType2 CFLAGS and LIBS. * examples/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add viewer-win32.c and viewer-ft2.c, and makefile.mingw{,.in}
Diffstat (limited to 'pango/pangoft2.h')
-rw-r--r--pango/pangoft2.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/pango/pangoft2.h b/pango/pangoft2.h
new file mode 100644
index 00000000..ededcbc9
--- /dev/null
+++ b/pango/pangoft2.h
@@ -0,0 +1,107 @@
+/* Pango
+ * pangoft2.h:
+ *
+ * Copyright (C) 1999 Red Hat Software
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PANGOFT2_H__
+#define __PANGOFT2_H__
+
+#include <glib.h>
+#include <pango/pango.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <freetype/freetype.h>
+
+#define PANGO_RENDER_TYPE_FT2 "PangoRenderFT2"
+
+/* Calls for applications
+ */
+PangoContext *pango_ft2_get_context (void);
+
+PangoFont *pango_ft2_load_font (PangoFontMap *fontmap,
+ FT_Open_Args **args,
+ FT_Long *face_indices,
+ int n_fonts,
+ int size);
+void pango_ft2_render (FT_Bitmap *bitmap,
+ PangoFont *font,
+ PangoGlyphString *glyphs,
+ gint x,
+ gint y);
+void pango_ft2_render_layout_line (FT_Bitmap *bitmap,
+ PangoLayoutLine *line,
+ int x,
+ int y);
+void pango_ft2_render_layout (FT_Bitmap *bitmap,
+ PangoLayout *layout,
+ int x,
+ int y);
+
+
+/* API for rendering modules
+ */
+typedef guint16 PangoFT2Subfont;
+
+#define PANGO_FT2_MAKE_GLYPH(subfont,index) ((subfont)<<16 | (index))
+#define PANGO_FT2_GLYPH_SUBFONT(glyph) ((glyph)>>16)
+#define PANGO_FT2_GLYPH_INDEX(glyph) ((glyph) & 0xFFFF)
+
+int pango_ft2_n_subfonts (PangoFont *font);
+gboolean pango_ft2_has_glyph (PangoFont *font,
+ PangoGlyph glyph);
+PangoGlyph pango_ft2_get_unknown_glyph (PangoFont *font);
+int pango_ft2_font_get_kerning (PangoFont *font,
+ PangoGlyph left,
+ PangoGlyph right);
+
+/* API for libraries that want to use PangoFT2 mixed with classic
+ * FT2 fonts.
+ */
+typedef struct _PangoFT2FontCache PangoFT2FontCache;
+
+PangoFT2FontCache *pango_ft2_font_cache_new (FT_Library library);
+void pango_ft2_font_cache_free (PangoFT2FontCache *cache);
+FT_Face pango_ft2_font_cache_load (PangoFT2FontCache *cache,
+ FT_Open_Args *args,
+ FT_Long face_index);
+void pango_ft2_font_cache_unload (PangoFT2FontCache *cache,
+ FT_Face face);
+PangoFontMap *pango_ft2_font_map_for_display (void);
+void pango_ft2_shutdown_display (void);
+PangoFT2FontCache *pango_ft2_font_map_get_font_cache (PangoFontMap *font_map);
+void pango_ft2_font_subfont_open_args (PangoFont *font,
+ PangoFT2Subfont subfont_id,
+ FT_Open_Args **open_args,
+ FT_Long *face_index);
+
+
+/* Debugging.
+ */
+void pango_ft2_fontmap_dump (int indent,
+ PangoFontMap *fontmap);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /* __PANGOFT2_H__ */