diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2012-08-16 21:58:44 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2012-08-16 22:02:45 -0400 |
commit | 7c6c11cd8392d483f0de7bba434faccdb9c068fa (patch) | |
tree | f48f5013a5da1a3c106110ac6ec5e2de715c3769 /modules | |
parent | 194b6ee552318ec6c494f34ed9f0979d0460fe4f (diff) | |
download | pango-7c6c11cd8392d483f0de7bba434faccdb9c068fa.tar.gz |
Remove Atsui Module
CoreText for the win.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/basic/Makefile.am | 17 | ||||
-rw-r--r-- | modules/basic/basic-atsui.c | 211 |
2 files changed, 0 insertions, 228 deletions
diff --git a/modules/basic/Makefile.am b/modules/basic/Makefile.am index 306b9ec4..15908558 100644 --- a/modules/basic/Makefile.am +++ b/modules/basic/Makefile.am @@ -35,7 +35,6 @@ pango_basic_win32_la_SOURCES = basic-win32.c libpango_basic_win32_la_SOURCES = basic-win32.c libpango_basic_win32_la_CFLAGS = -DPANGO_MODULE_PREFIX=_pango_basic_win32 -if HAVE_CAIRO_ATSUI if HAVE_CORE_TEXT INCLUDES += $(CAIRO_CFLAGS) if INCLUDE_BASIC_CORE_TEXT @@ -45,16 +44,6 @@ if DYNAMIC_BASIC_CORE_TEXT module_LTLIBRARIES += pango-basic-coretext.la endif endif -else -INCLUDES += $(ATSUI_CFLAGS) $(CAIRO_CFLAGS) -if INCLUDE_BASIC_ATSUI -noinst_LTLIBRARIES += libpango-basic-atsui.la -else -if DYNAMIC_BASIC_ATSUI -module_LTLIBRARIES += pango-basic-atsui.la -endif -endif -endif endif pango_basic_coretext_la_LDFLAGS = -module $(MODULE_LIBTOOL_OPTIONS) -framework Carbon @@ -63,12 +52,6 @@ pango_basic_coretext_la_SOURCES = basic-coretext.c libpango_basic_coretext_la_SOURCES = basic-coretext.c libpango_basic_coretext_la_CFLAGS = -DPANGO_MODULE_PREFIX=_pango_basic_coretext -pango_basic_atsui_la_LDFLAGS = -module $(MODULE_LIBTOOL_OPTIONS) -framework Carbon -pango_basic_atsui_la_LIBADD = $(pangoatsuilibs) -pango_basic_atsui_la_SOURCES = basic-atsui.c -libpango_basic_atsui_la_SOURCES = basic-atsui.c -libpango_basic_atsui_la_CFLAGS = -DPANGO_MODULE_PREFIX=_pango_basic_atsui - EXTRA_DIST = \ tables-big.i \ tables-small.i diff --git a/modules/basic/basic-atsui.c b/modules/basic/basic-atsui.c deleted file mode 100644 index 369a596a..00000000 --- a/modules/basic/basic-atsui.c +++ /dev/null @@ -1,211 +0,0 @@ -/* Pango - * basic-atsui.c - * - * Copyright (C) 2005 Imendio AB - * - * 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 <glib.h> -#include <string.h> -#include <Carbon/Carbon.h> -#include "pango-engine.h" -#include "pango-utils.h" -#include "pango-fontmap.h" -#include "pangoatsui.h" - -/* No extra fields needed */ -typedef PangoEngineShape BasicEngineATSUI; -typedef PangoEngineShapeClass BasicEngineATSUIClass ; - -#define SCRIPT_ENGINE_NAME "BasicScriptEngineATSUI" -#define RENDER_TYPE PANGO_RENDER_TYPE_ATSUI - -static PangoEngineScriptInfo basic_scripts[] = { - { PANGO_SCRIPT_COMMON, "" } -}; - -static PangoEngineInfo script_engines[] = { - { - SCRIPT_ENGINE_NAME, - PANGO_ENGINE_TYPE_SHAPE, - RENDER_TYPE, - basic_scripts, G_N_ELEMENTS(basic_scripts) - } -}; - -static void -set_glyph (PangoFont *font, - PangoGlyphString *glyphs, - int i, - int offset, - PangoGlyph glyph) -{ - PangoRectangle logical_rect; - - glyphs->glyphs[i].glyph = G_UNLIKELY (glyph == kATSDeletedGlyphcode) ? - PANGO_GLYPH_EMPTY : glyph; - - glyphs->glyphs[i].geometry.x_offset = 0; - glyphs->glyphs[i].geometry.y_offset = 0; - - glyphs->log_clusters[i] = offset; - pango_font_get_glyph_extents (font, glyphs->glyphs[i].glyph, NULL, &logical_rect); - glyphs->glyphs[i].geometry.width = logical_rect.width; -} - -static void -basic_engine_shape (PangoEngineShape *engine, - PangoFont *font, - const char *text, - gint length, - const PangoAnalysis *analysis, - PangoGlyphString *glyphs) -{ - gunichar2 *utf16; - long n16; - ATSUTextLayout text_layout; - ATSLayoutRecord *layout_records; - OSStatus err; - ItemCount glyph_count; - int i; - const char *p; - PangoATSUIFont *afont = PANGO_ATSUI_FONT (font); - ATSUStyle style; - ATSUFontID fontID; - ATSUAttributeTag styleTags[] = { kATSUFontTag }; - ATSUAttributeValuePtr styleValues[] = { &fontID }; - ByteCount styleSizes[] = { sizeof (ATSUFontID) }; - - utf16 = g_utf8_to_utf16 (text, length, NULL, &n16, NULL); - - err = ATSUCreateTextLayoutWithTextPtr (utf16, 0, n16, n16, - 0, - NULL, - NULL, - &text_layout); - - err = ATSUCreateStyle(&style); - fontID = pango_atsui_font_get_atsfont (afont); - - err = ATSUSetAttributes(style, - (ItemCount)(sizeof(styleTags) / sizeof(styleTags[0])), - styleTags, styleSizes, styleValues); - - err = ATSUSetRunStyle(text_layout, - style, kATSUFromTextBeginning, kATSUToTextEnd); - - err = ATSUDirectGetLayoutDataArrayPtrFromTextLayout (text_layout, 0, - kATSUDirectDataLayoutRecordATSLayoutRecordCurrent, - (void *)&layout_records, - &glyph_count); - - p = text; - pango_glyph_string_set_size (glyphs, glyph_count - 1); - - for (i = 0; i < glyph_count - 1; i++) - { - gunichar wc; - gunichar mirrored_ch; - - wc = g_utf8_get_char (p); - - if (analysis->level % 2) - if (pango_get_mirror_char (wc, &mirrored_ch)) - wc = mirrored_ch; - - if (wc == 0xa0) /* non-break-space */ - wc = 0x20; - - if (pango_is_zero_width (wc)) - { - set_glyph (font, glyphs, i, p - text, PANGO_GLYPH_EMPTY); - } - else - { - set_glyph (font, glyphs, i, p - text, layout_records[i].glyphID); - - if (g_unichar_type (wc) == G_UNICODE_NON_SPACING_MARK) - { - if (i > 0) - { - PangoRectangle logical_rect, ink_rect; - - glyphs->glyphs[i].geometry.width = MAX (glyphs->glyphs[i-1].geometry.width, - glyphs->glyphs[i].geometry.width); - glyphs->glyphs[i-1].geometry.width = 0; - glyphs->log_clusters[i] = glyphs->log_clusters[i-1]; - - /* Some heuristics to try to guess how overstrike glyphs are - * done and compensate - */ - pango_font_get_glyph_extents (font, glyphs->glyphs[i].glyph, &ink_rect, &logical_rect); - if (logical_rect.width == 0 && ink_rect.x == 0) - glyphs->glyphs[i].geometry.x_offset = (glyphs->glyphs[i].geometry.width - ink_rect.width) / 2; - } - } - } - - p = g_utf8_next_char (p); - } - - ATSUDirectReleaseLayoutDataArrayPtr (NULL, kATSUDirectDataLayoutRecordATSLayoutRecordCurrent, - (void *)&layout_records); - - ATSUDisposeStyle (style); - ATSUDisposeTextLayout (text_layout); - - g_free (utf16); -} - -static void -basic_engine_atsui_class_init (PangoEngineShapeClass *class) -{ - class->script_shape = basic_engine_shape; -} - -PANGO_ENGINE_SHAPE_DEFINE_TYPE (BasicEngineATSUI, basic_engine_atsui, - basic_engine_atsui_class_init, NULL); - -void -PANGO_MODULE_ENTRY(init) (GTypeModule *module) -{ - basic_engine_atsui_register_type (module); -} - -void -PANGO_MODULE_ENTRY(exit) (void) -{ -} - -void -PANGO_MODULE_ENTRY(list) (PangoEngineInfo **engines, - int *n_engines) -{ - *engines = script_engines; - *n_engines = G_N_ELEMENTS (script_engines); -} - -PangoEngine * -PANGO_MODULE_ENTRY(create) (const char *id) -{ - if (!strcmp (id, SCRIPT_ENGINE_NAME)) - return g_object_new (basic_engine_atsui_type, NULL); - else - return NULL; -} - |