summaryrefslogtreecommitdiff
path: root/examples/viewer-pangoft2.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/viewer-pangoft2.c')
-rw-r--r--examples/viewer-pangoft2.c162
1 files changed, 0 insertions, 162 deletions
diff --git a/examples/viewer-pangoft2.c b/examples/viewer-pangoft2.c
deleted file mode 100644
index bf73fb50..00000000
--- a/examples/viewer-pangoft2.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* viewer-pangoft2.c: PangoFT2 viewer backend.
- *
- * Copyright (C) 1999,2004,2005 Red Hat, Inc.
- * Copyright (C) 2001 Sun Microsystems
- *
- * 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.
- */
-
-#include <config.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "renderdemo.h"
-#include "viewer.h"
-
-#include <pango/pangoft2.h>
-
-static void
-substitute_func (FcPattern *pattern,
- gpointer data)
-{
- if (opt_hinting != HINT_DEFAULT)
- {
- FcPatternDel (pattern, FC_HINTING);
- FcPatternAddBool (pattern, FC_HINTING, opt_hinting != HINT_NONE);
-
- FcPatternDel (pattern, FC_AUTOHINT);
- FcPatternAddBool (pattern, FC_AUTOHINT, opt_hinting == HINT_AUTO);
- }
-}
-
-static gpointer
-pangoft2_view_create (const PangoViewer *klass)
-{
- PangoFontMap *fontmap;
- fontmap = pango_ft2_font_map_new ();
-
- pango_ft2_font_map_set_resolution (PANGO_FT2_FONT_MAP (fontmap), opt_dpi, opt_dpi);
- pango_ft2_font_map_set_default_substitute (PANGO_FT2_FONT_MAP (fontmap), substitute_func, NULL, NULL);
-
- return fontmap;
-}
-
-static void
-pangoft2_view_destroy (gpointer instance)
-{
- g_object_unref (instance);
-}
-
-static PangoContext *
-pangoft2_view_get_context (gpointer instance)
-{
- return pango_ft2_font_map_create_context (PANGO_FT2_FONT_MAP (instance));
-}
-
-static gpointer
-pangoft2_view_create_surface (gpointer instance,
- int width,
- int height)
-{
- FT_Bitmap *bitmap;
-
- bitmap = g_slice_new (FT_Bitmap);
- bitmap->width = width;
- bitmap->pitch = (bitmap->width + 3) & ~3;
- bitmap->rows = height;
- bitmap->buffer = g_malloc (bitmap->pitch * bitmap->rows);
- bitmap->num_grays = 256;
- bitmap->pixel_mode = ft_pixel_mode_grays;
- memset (bitmap->buffer, 0x00, bitmap->pitch * bitmap->rows);
-
- return bitmap;
-}
-
-static void
-pangoft2_view_destroy_surface (gpointer instance,
- gpointer surface)
-{
- FT_Bitmap *bitmap = (FT_Bitmap *) surface;
-
- g_free (bitmap->buffer);
- g_slice_free (FT_Bitmap, bitmap);
-}
-
-static void
-render_callback (PangoLayout *layout,
- int x,
- int y,
- gpointer context,
- gpointer state)
-{
- pango_ft2_render_layout ((FT_Bitmap *)context,
- layout,
- x, y);
-}
-
-static void
-pangoft2_view_render (gpointer instance,
- gpointer surface,
- PangoContext *context,
- int width,
- int height,
- gpointer state)
-{
- int pix_idx;
- FT_Bitmap *bitmap = (FT_Bitmap *) surface;
-
- do_output (context, render_callback, NULL, surface, state, NULL, NULL);
-
- for (pix_idx=0; pix_idx<bitmap->pitch * bitmap->rows; pix_idx++)
- bitmap->buffer[pix_idx] = 255 - bitmap->buffer[pix_idx];
-}
-
-static void
-pangoft2_view_write (gpointer instance,
- gpointer surface,
- FILE *stream,
- int width,
- int height)
-{
- int row;
- FT_Bitmap *bitmap = (FT_Bitmap *) surface;
-
- /* Write it as pgm to output */
- fprintf(stream,
- "P5\n"
- "%d %d\n"
- "255\n", width, height);
- for (row = 0; row < height; row++)
- fwrite(bitmap->buffer + row * bitmap->pitch, 1, width, stream);
-}
-
-const PangoViewer pangoft2_viewer = {
- "PangoFT2",
- "ft2",
- ".pgm",
- pangoft2_view_create,
- pangoft2_view_destroy,
- pangoft2_view_get_context,
- pangoft2_view_create_surface,
- pangoft2_view_destroy_surface,
- pangoft2_view_render,
- pangoft2_view_write,
- NULL,
- NULL,
- NULL
-};