summaryrefslogtreecommitdiff
path: root/modules/basic/basic-win32.c
Commit message (Collapse)AuthorAgeFilesLines
* Add commentBehdad Esfahbod2011-09-081-0/+2
|
* Remove dead codeBehdad Esfahbod2011-09-081-17/+0
|
* Bug 653985 - Pango 1.29.x make GTK3-demo.exe crashed in WindowsBehdad Esfahbod2011-07-111-4/+0
| | | | | | | | | Similar to d9e254f which changed the rest of the modules, moved the PANGO_MODULE_PREFIX define from basic-win32.c to the VS9 project file to avoid breaking autotools build. Fixes basic-win32 module loading when pango is built with autotools + MinGW.
* Reduce DLL hijack risk and simplify code in basic-win32 moduleTor Lillqvist2010-09-111-105/+31
| | | | | | | Dont load usp10.dll dynamically with LoadLibrary(). Just link to the Uniscribe API directly. MinGW comes with an import library so no problem with that either. The Uniscribe DLL is present on all versions of Windows we care for.
* Improve performance on Windows especially for non-Latin scriptsTor Lillqvist2010-06-261-12/+38
| | | | | | | The use of Uniscribe script caches was decidedly suboptimal. Use one persistent SCRIPT_CACHE per Win32 font and script. Patch by by David E. Hollingsworth and Fredrik Corneliusson, from bug
* Add solution and project files for Visual Studio buildsTor Lillqvist2010-03-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The VS files are kept in build/win32/vs9, the same relative location as in GLib, mostly for historical reasons. Update README.win32 to reflect the VS possibility. Include the VS solution and project files in the tarball when doing a release. To avoid having to list source files in several locations, generate files listing source files at "make dist" time in the corresponding source directories. Use the C preprocessor to preprocess .vcprojin files that include said list files into the actual .vcproj project files. Provide a rc file for the pangocairo DLL, too. Construct and provide in the tarball a pregenerated config.h.win32 which can be used as config.h when building with Visual C without running any configure script. Provide pregenerarated module-defs.h.win32, module-defs-lang.c.win32 files too. Define PANGO_MODULE_PREFIX appropriately in the relevant module source files if not available from the compilation command line. Update module-defs-fc.c.win32 and module-defs-win32.c.win32 to match what the configure script provides.
* Revert "[basic-win32] Increase performance of Uniscribe code"Tor Lillqvist2009-09-101-6/+7
| | | | | | Unfortunately this change breaks complex script shaping. This reverts commit ea608c0bd7721d3019bed7ef2472289b1ea6fa53.
* [basic-win32] Increase performance of Uniscribe codeDavid E. Hollingsworth2009-08-131-7/+6
| | | | | | | | | | | | | | | | A few weeks ago I reported a performance issue regarding the use of Uniscribe in the win32 basic shaper. It turns out that the issue was with the use of Uniscribe's SCRIPT_CACHE. Despite the name, this value is for caching per-font-plus-size values, not per-script values. See: http://msdn.microsoft.com/en-us/library/dd317726(VS.85).aspx Since shaping occurs on runs containing a single font, we only need one SCRIPT_CACHE in uniscribe_shape. I'm including a patch below that does this. With the patch applied, the time for one of my tests went from 20s to .3s.
* Include "config.h" instead of <config.h> Command used: find -nameJohan Dahlin2008-06-221-1/+1
| | | | | | | | | | | | 2008-06-21 Johan Dahlin <jdahlin@async.com.br> * *.[ch]: Include "config.h" instead of <config.h> Command used: find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g' Rubberstamped by Behdad svn path=/trunk/; revision=2657
* Bug 515484 -- Uniscribe interface handles surrogate pairs incorrectlyTor Lillqvist2008-02-251-2/+2
| | | | | | | | | | | | | | | 2008-02-25 Tor Lillqvist <tml@novell.com> Bug 515484 -- Uniscribe interface handles surrogate pairs incorrectly * modules/basic/basic-win32.c (itemize_shape_and_place): Pass correctly offset wchar string to set_up_pango_log_clusters() so that when it passes the string on to unichar_index() it notices the surrogate pairs correctly. svn path=/trunk/; revision=2574
* Remove unused empty header file basic-common.hBehdad Esfahbod2007-07-051-2/+0
| | | | | | | | | | | | | | 2007-07-05 Behdad Esfahbod <behdad@gnome.org> * modules/basic/Makefile.am: * modules/basic/basic-fc.c: * modules/basic/basic-win32.c: * modules/basic/basic-x.c: * modules/basic/basic-common.h: Remove unused empty header file basic-common.h svn path=/trunk/; revision=2370
* An ISO639 code is always in ASCII, no need to call the wide-characterTor Lillqvist2007-03-071-10/+1
| | | | | | | | | | | 2007-03-07 Tor Lillqvist <tml@novell.com> * modules/basic/basic-win32.c: An ISO639 code is always in ASCII, no need to call the wide-character version of GetLocaleInfo(). svn path=/trunk/; revision=2210
* configure.in modules/basic/Makefile.am Make building with Uniscribe (usingTor Lillqvist2007-03-071-246/+33
| | | | | | | | | | | | | | | | | | | | | | | | 2007-03-07 Tor Lillqvist <tml@novell.com> * configure.in * modules/basic/Makefile.am * modules/basic/basic-win32.c: Make building with Uniscribe (using the <usp10.h> header) mandatory. Mingw's w32api headers do include usp10.h now so one doesn't need to copy it from the Platform SDK any longer. At runtime using Uniscribe is still optional, depending on whether usp10.dll is found or not. I think it isn't necessarily present on Windows 2000 machines, for instance. * modules/basic/basic-win32.c (lang_name): Instead of a hardcoded case statement, use GetLocaleInfo() to get the language ISO639 code. (charset_name): Remove, unused. (itemize_shape_and_place, uniscribe_shape, basic_engine_shape): Constify the PangoAnalysis parameter to match the prototype of PangoEngineShapeClass::script_shape(). svn path=/trunk/; revision=2209
* *.c, *.h: Drop trailing whitespace.Behdad Esfahbod2007-01-161-25/+25
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Drop trailing whitespace. svn path=/trunk/; revision=2163
* pango/pangowin32-private.h (PING) pango/pangowin32.c Use g_print() insteadTor Lillqvist2006-02-281-46/+46
| | | | | | | | | | 2006-02-28 Tor Lillqvist <tml@novell.com> * pango/pangowin32-private.h (PING) * pango/pangowin32.c * modules/basic/basic-win32.c: Use g_print() instead of printf() for debugging output, to enable easy redirection using GLib facilities. (#332855)
* Change PANGO_GLYPH_EMPTY to 0x0FFFFFFF, to not overlap withBehdad Esfahbod2006-02-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | 2006-02-04 Behdad Esfahbod <behdad@gnome.org> * pango/pango-types.h: Change PANGO_GLYPH_EMPTY to 0x0FFFFFFF, to not overlap with PANGO_GLYPH_UNKNOWN_FLAG (0x10000000). Define PANGO_GET_UNKNOWN_GLYPH(wc) that simply returns wc|PANGO_GLYPH_UNKNOWN_FLAG. * docs/pango-sections.txt, docs/tmpl/glyphs.sgml: Document new symbols. * modules/*/*.c: Use PANGO_GET_UNKNOWN_GLYPH instead of various backend-specific functions. * pango/pangofc-font.c, pango/pangoft.c, pango/pangoxft-font.c, * pango/pangowin32.c, pango/pangox.c: Suggest using PANGO_GET_UNKNOWN_GLYPH in docs. * pango/pangofc-font.h: Deprecate pango_fc_font_get_unknown_glyph(). * pango/pangowin32.h: Deprecate pango_win32_get_unknown_glyph().
* Finish the 'glyph 0' work of this morning: PANGO_GLYPH_NULL that IBehdad Esfahbod2006-02-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-02-02 Behdad Esfahbod <behdad@gnome.org> Finish the 'glyph 0' work of this morning: PANGO_GLYPH_NULL that I introduced is renamed to PANGO_GLYPH_EMPTY. It means, no rendering should be performed. The backends however, still return 0 if a glyph is not found. The modules then are free to replace this 0 glyph with an unknown character. * modules/arabic/arabic-fc.c, modules/basic/basic-atsui.c, modules/basic/basic-fc.c, modules/basic/basic-win32.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/hebrew/hebrew-fc.c, modules/indic/indic-fc.c, modules/khmer/khmer-fc.c, modules/syriac/syriac-fc.c, modules/thai/thai-fc.c, modules/tibetan/tibetan-fc.c, pango/pangox.c, pango/pangowin32.c: Adapt to above change. Backends return 0 if glyph not found. * pango/fonts.c (pango_font_get_glyph_extents): If font is not usable (!PANGO_IS_FONT (font)), return the generic UNKNOWN_GLYPH metrics. This is used when your backends are misconfigured and you don't find *any* font at all. * pango/pango-engince.c: Add unknown glyphs in fallback shaper, instead of empty glyphs. * pango/shape.c: Call the fall-back shaper if shaper fails, instead of generating a dummy glyph string ourselves. * pango/pango-layout.c (imposed_shape, shape_tab): Use PANGO_GLYPH_EMPTY instead of glyph 0. * pango/pango-renderer.c (pango_renderer_draw_glyph): No-op on PANGO_GLYPH_EMPTY instead of glyph 0. * pango/pangocairo-atsuifont.c, pango/pangocairo-win32font.c, pango/pangocairo-fcfont.c, pango/pangocairo-font.c, pango/pangocairo-private.h: install_font returns a boolean now. * pango/pangocairo-render.c, pango/pangoxft-render.c: Handle font and hex-box failures more gracefully by drawing a generic unknown-box glyph. * pango/pangoft2.c, pango/pangoft2-render.c: Draw the generic unknown-box glyph here too. For unknown glyphs though, if the font is TTF (FT_IS_SFNT), use the zero-indexed glyph, otherwise, draw a box of proper size.
* Use PANGO_GLYPH_NULL for when no glyph should be drawn. UseBehdad Esfahbod2006-02-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | 2006-02-02 Behdad Esfahbod <behdad@gnome.org> * modules/arabic/arabic-fc.c, modules/basic/basic-atsui.c, modules/basic/basic-fc.c, modules/basic/basic-win32.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/hebrew/hebrew-fc.c, modules/indic/indic-fc.c, modules/khmer/khmer-fc.c, modules/syriac/syriac-fc.c, modules/thai/thai-fc.c, modules/tibetan/tibetan-fc.c, pango/fonts.c, pango/pango-engine-private.h pango/pango-types.h, pango/pangocairo-fcfont.c, pango/pangocairo-font.c, pango/pangocairo-private.h, pango/pangocairo-render.c, pango/pangofc-decoder.c, pango/pangofc-font.c, pango/pangoft2-render.c, pango/pangoft2.c pango/pangowin32.c, pango/pangox.c, pango/pangoxft-font.c pango/pangoxft-private.h, pango/pangoxft-render.c, pango/shape.c: Use PANGO_GLYPH_NULL for when no glyph should be drawn. Use PANGO_GLYPH_UNKNOWN_FLAG for all backends to mark unknown flags. There's no need for pango_font_get_unknown_glyph() anymore, since all backends know how to handle PANGO_GLYPH_UNKNOWN_FLAG gracefully. We may add that in the future however. (fixes bug #73147, closes bug #329524)
* Make sure #include <config.h> is the first include in the file. (bugBehdad Esfahbod2006-01-141-1/+1
| | | | | | | 2006-01-14 Behdad Esfahbod <behdad@gnome.org> * */*.c, */*/*.c: Make sure #include <config.h> is the first include in the file. (bug #158870, based on patch by Luis Menina)
* Drop unused font_cache variable and the call toTor Lillqvist2005-09-131-5/+0
| | | | | | | | | | 2005-09-13 Tor Lillqvist <tml@novell.com> * modules/basic/basic-win32.c: Drop unused font_cache variable and the call to pango_win32_font_map_for_display() used in its initialization, which caused an extra instance of PangoWin32FontMap to be created, and fonts enumerated an extra time.
* New function added.Behdad Esfahbod2005-07-231-1/+1
| | | | | | | | | | | | | | 2005-07-23 Behdad Esfahbod <pango@behdad.org> * pango/pango-utils.c, pango/pango-utils.h (pango_is_zerowidth): New function added. * modules/basic/basic-common.h, modules/basic/basic-fc.c, modules/basic/basic-win32.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/arabic/arabic-fc.c, modules/indic/indic-fc.c, modules/indic/indic-ot.h, modules/syriac/syriac-fc.c: Use the new pango_is_zerowidth function. (#306639, Behnam Esfahbod)
* Correct parameters passed to MultiByteToWideChar(). Pass -1 as sourceTor Lillqvist2005-04-281-12/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-04-28 Tor Lillqvist <tml@novell.com> * pango/pangocairo-win32font.c (pango_cairo_win32_font_get_font_face): Correct parameters passed to MultiByteToWideChar(). Pass -1 as source string length so that the target string gets zero-terminated. Size of target array is in number of WCHARs, not number of bytes. Add support to pangowin32 for TrueType fonts with coverage outside the BMP. Fix handling of surrogate pairs in the Uniscribe shaper. (#302238) * pango/pangowin32-private.h (PangoWin32Face): Rename the unicode_table field to cmap. Keep track of its format (4 or 12). (format_12_cmap): Add struct for a format 12 cmap. * pango/pangowin32.c: Corresponding changes. Rename internal functions a bit. (get_format_12_cmap): New function, reads a format 12 cmap. (font_get_cmap): Look for both format 12 (which is preferred) and format 4 cmaps. (pango_win32_font_get_glyph_index, pango_win32_font_calc_coverage): Handle also format 12 cmaps. * modules/basic/basic-win32.c: Handle surrogate pairs in wchar_t strings properly. (unichar_index): New function. Given a wchar_t string and an index into it, calculate the index of the corresponding Unicode character. Each surrogate pair in the wchar_t is just one Unicode character. (set_up_pango_log_clusters, itemize_shape_and_place): Use unichar_index() instead of direct index into wchar_t string.
* Update to new Cairo font API.Owen Taylor2005-04-071-1/+1
| | | | | | | | | | | 2005-04-07 Owen Taylor <otaylor@redhat.com> * pango/pangocairo-fcfont.c pango/pangocairo-win32font.c pango/pangocairo-render.c: Update to new Cairo font API. * pangpopangowin32.h pango/pangowin32-private.h pango/pangowin32.c pango/pangocairo-win32font.c modules/basic/basic-win32.c: Rename get_scale_factor() to get_metrics_factor() to match Cairo
* Leave out some languages that don't have any own digits.Tor Lillqvist2005-03-201-25/+18
| | | | | | | | | | | | | 2005-03-20 Tor Lillqvist <tml@novell.com> * modules/basic/basic-win32.c (make_langid): Leave out some languages that don't have any own digits. (itemize_shape_and_place): Force fRTL for each item returned from ScriptItemize() to the bidi embedding parity for the whole run. Pango passes us a run that it correctly has analyzed should be of a certain direction, but ScriptItemize() still might split it into items, some of which have neutral direction. (#170931) (text_is_simple): Use g_utf8_to_utf16().
* PangoCairoFontMap for win32 fonts.Owen Taylor2005-02-241-34/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-02-24 Owen Taylor <otaylor@redhat.com> * pango/pangocairo-win32.h pango/pangocairo-win32font.c pango/pangocairo-win32fontmap.c pango/Makefile.am: PangoCairoFontMap for win32 fonts. * pango/pangocairo-fontmap.c: Use PangoCairoWin32FontMap when available. * pango/pangowin32.h pango/pangowin32-fontmap.h pango/pangowin32.c: Add virtual pango_win32_font_select_font() to prepare a DC for use with a PangoWin32Font, and to release, pango_win32_font_scale_font() to get logical unit => Pango units scale, pango_win32_font_done_font() to release resources. * pango/pangowin32-fontmap.[ch]: Add a find_font() virtual method to allow subclasses that change how PangoFont lookup and creation happens. * pango/pangowin32-fontmap.c: Move initialization into pango_win32_font_map_init() to facilitate derivation. * pango/pangowin2.c pango/pangowin32-fontmap.c pango/pangowin32-private.h: Move PangoWin32Font/PangoWin32FontMap definitions into pangowin32-private.h to allow derivation for PangoCairoWin32Font. * modules/basic/basic-win32.c: Use pango_win32_font_select_font() and friends. * modules/basic/basic-win32.c: Use g_utf8_to_utf16 instead of g_convert for simplicity and speed. * pango/fonts.c (pango_font_get_font_map) pango/pango-font.h pango/pangofc-font.c pango/pangowin32.c pango/pango.c pango/pango.def docs/pango-sections.txt: Add a virtual function to get the fontmap for a font. * pango/pangocairo-render.c: Use pango_font_get_font_map() rather than PangoFcFontMap hack. * pango/pango-types.h: Move the declaration of PangoFontMap here to avoid interactions between pango-font.h and pango-fontmap.h. * pango/pangocairo.h: Remove accidental include of pangofc-fontmap.h.
* Emergency fix for #151068... if uniscribe shaping comes up with no glyphs,Owen Taylor2004-12-161-1/+1
| | | | | | | | Wed Dec 15 23:13:57 2004 Owen Taylor <otaylor@redhat.com> * modules/basic/basic-win32.c (uniscribe_shape): Emergency fix for #151068... if uniscribe shaping comes up with no glyphs, fall back to non-uniscribe shaping.
* Add the new pango_renderer_* symbols.Tor Lillqvist2004-09-251-11/+0
| | | | | | | | | | | 2004-09-25 Tor Lillqvist <tml@iki.fi> * pango/pango.def: Add the new pango_renderer_* symbols. * modules/basic/basic-win32.c (basic_engine_covers, basic_engine_win32_class_init): Remove the implementation of the covers method. It was wrong anyway, and unnecessary. No need to override the default implementation. (#152997)
* updatedHans Breuer2004-08-061-0/+11
| | | | | | | | | | | | | | | | | | | 2004-08-06 Hans Breuer <hans@breuer.org> * pango/pango.def pango/pangoft2.def pango/pangowin32.def pango/makefile.msc : updated * pango/pangofc-decoder.c : static the pango_fc_decoder_*init implementations * pango/pangowin32.c : remove the duplicated, empty implementation of pango_win32_font_init(), also replace parent_class variable with pango_win32_font_parent_class as defined by G_DEFINE_TYPE * modules/basic/basic-win32.c : implement basic_engine_covers * pango/testfonts.c : iterate three common font names as was intended orginally and said in the comment for years
* use uniscribe_scripts instead of uniscribe_ranges (does show only withHans Breuer2004-02-281-2/+2
| | | | | | | | 2004-02-28 Hans Breuer <hans@breuer.org> * pango/modules/basic/basic-win32.c : use uniscribe_scripts instead of uniscribe_ranges (does show only with HAVE_USP10_H, which I don't) patch from J. Ali Harlow <ali@juiblex.co.uk>, fixes bug #135504
* moved pango_fc_* to the latter where they live on *nix too.Hans Breuer2003-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 2003-12-13 Hans Breuer <hans@breuer.org> * pango/pango.def pangoft2.def : moved pango_fc_* to the latter where they live on *nix too. * pango/makefile.msc : make it build again (including the Ft2 backend) * pango/module-defs-fc.c.win32 : if PANGO_MODULE_PREFIX is defined include the basic backend shaper * pango/pangowin32.c (pango_win32_render_layout) : initialize iter before first usage to avoid immediate crashing * pango/opentype/makefile.msc pango/modules/makefile.msc : finally build with mscv, too. [completely untested cause I'm not able to type, write or read any of these languages] * modules/modules.def : follow module function renaming/changes * modules/basic/basic-win32.c : register the right engine, i.e. make it compile
* Simplify.Tor Lillqvist2003-12-081-38/+32
| | | | | | | | | | | 2003-12-08 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c (convert_log_clusters_to_byte_offsets): Simplify. (itemize_shape_and_place): Fix problem with RTL scripts: If ScriptItemize() returns several items, must handle them in reverse order. (#128812, reported by Shoshannah Forbes)
* Modules now declare a list of scripts that they cover instead of a list ofOwen Taylor2003-09-231-78/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tue Sep 23 18:03:57 2003 Owen Taylor <otaylor@redhat.com> * pango/pango-engines.[ch] pango/pango-engines-private.h: Modules now declare a list of scripts that they cover instead of a list of code point ranges. Also, there is now a ->covers() virtual function that allows a module to decide live whether the font covers a particular codepoint; remove old get_coverage() method. * pango/pango-fontset.[ch]: Add a foreach() function to iterate over all the fonts in a fontset (with a true return stopping iteration). * pango/pango-context.c: Complete rewrite using script-run information to improve language tags. Switch to an approach where we handle one run at a time rather than computing information for each character individually then later breaking the result into runs. * pango/pango-fontset.[ch]: Switch over to using pango-impl-utils.h. * modules/basic/basic-x.c pango/pangox-fontmap.c: Adapt to the change from get_coverage => covers. * pango/pango-modules.h pango/modules.c: Switch PangoMap over to being based on script rather than being based on codepoint. Remove the no longer needed pango_map_get_entry(). * pango/modules.c: Handle new script-based modules. * pango/pango-fc-fontmap.c pango/pango-win32-fontmap.c pango/pang-fontmap.[ch]: Add a shape_engine_type field to PangoFontmapClass, pango_font_map_get_shape_engine_type(); this allows generic code to find a shaper for a particular fontmap. * pango/pango-script.[ch]: Add pango_script_get_sample_language(), pango_language_includes_script(); functions for determining the relationship between scripts and language. * tools/gen-script-for-lang.c: Modify to spit out a useful table. * pango/pango-script-lang-table.h: Version of table generated from current fontconfig data. * pango/pangox.c: Remove complicated code to compute coverages; no longer useful now that we just have the basic shaper as a legacy thing. * modules/*/*.c: Adapt to identifying shape engines by language range. * modules/thai/thai-fc.c modules/thai/thai-shaper.[ch]: Remove now unused "has_glyph" function and XTIS support. * modules/thai/thai-fc.c: Handle non-Thai characters as well, since the Thai module now gets spaces, punctuation, and so forth.
* New function. Uses the Uniscribe ScriptIsSimple() function to check ifTor Lillqvist2003-08-071-7/+50
| | | | | | | | | | | | | | | 2003-08-05 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c (text_is_simple): New function. Uses the Uniscribe ScriptIsSimple() function to check if Uniscribe shaping is needed for a piece of text. (basic_engine_shape): Use it, to avoid calling Uniscribe to shape non-complex text. Produces dramatic speedup according to tests by Hans Breuer. (init_uniscribe): No need for the PANGO_WIN32_NO_UNISCRIBE environment variable any longer.
* Make PangoEngine{,Lang,Shape} GObjects, and use a GTypeModule-basedOwen Taylor2003-08-031-41/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sat Aug 2 23:19:16 2003 Owen Taylor <otaylor@redhat.com> * pango/pango-engine.[ch] modules/*/*-{fc,win32,x}.c pango/modules.c pango/break.c pango/pango-context.c pango/pango-layout.c pango/pango-modules.h pango/querymodules.c pango/shape.c: Make PangoEngine{,Lang,Shape} GObjects, and use a GTypeModule-based module-loading system closely based on the one used for GtkIMContext and GtkThemeEngine. * pango/pango-impl-utils.h: OK, I'm tired of typing in get_type() functions. * pango/pango-script.[ch] pango/pango-script-table.h tests/testscript.c tools/gen-script-table.pl: Add port of script-range code from ICU in preparation for future use. (#91542) * tools/gen-script-for-lang.c: Utility program to determine the script for each fontconfig .orth file. * docs/tmpl/{scripts.sgml,pango-engine-lang.sgml, pango-engine-shape.sgml} docs/pango-sections.txt docs/pango-docs.sgml: Redo to go along with the above changes. * configure.in: chmod +x tests/runtests.sh
* updated to generate libtool compatible dll names, define the rightHans Breuer2003-07-201-0/+70
| | | | | | | | | | | | | 2003-07-20 Hans Breuer <hans@breuer.org> * pango/makefile.msc : updated to generate libtool compatible dll names, define the right PANGO_MODULE_PREFIX, pangoft2 still not build with msvc * module/basic-win32.c : some #ifdef's for missing LANG_* constants to make it compile with msvc50 * pango/pango.def : updated externals
* Switch over the way that module entry points work, taking advantage of theOwen Taylor2003-04-141-13/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Mon Apr 14 06:02:34 2003 Owen Taylor <otaylor@redhat.com> * modules/thai/{thai-fc.c,thai-shaper.c,thai-x.c}: * modules/*/*-{xft,x,win32.c} pango/pango-engine.h modules/*/Makefile.am: Switch over the way that module entry points work, taking advantage of the new automake capability for per-target CFLAGS for shared sources. * pango/pangofc-font.[ch] pango/pangoxft-font.c pango/pangoft2.c: Add a base class for PangoXft and PangoFT2 font classes so code can be shared between FT2 and Xft backends. * configure.in modules/*/Makefile.am modules/{arabic,basic,hangul,hebrew,indic,thai}: Move *-xft.c to *-fc.c and share between Xft and FT2 backends; adds FT2 backend capabilities for hangul/indic/thai. * pango/pangoxft.h pango/pangoft2.h: Deprecate APIs that moved into PangoFcFont * modules/basic/basic-fc.c (set_glyph): Add kerning handling from FT2 backend.
* Add more debugging output.Tor Lillqvist2002-11-121-2/+14
| | | | | | | | | | | | | 2002-11-12 Tor Lillqvist <tml@iki.fi> * pango/pangowin32-fontcache.c (free_cache_entry, cache_entry_unref, pango_win32_font_cache_load): Add more debugging output. * modules/basic/basic-win32.c (uniscribe_shape): Plug memory leak: Free return value from pango_win32_font_logfont(). Call pango_win32_font_cache_unload() for the hfont returned from pango_win32_font_cache_load() after using it.
* Update the non-Uniscribe ranges to cover some more simple scripts.Tor Lillqvist2002-10-241-43/+102
| | | | | | | | | | | | | | | | | | | 2002-10-24 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c: Update the non-Uniscribe ranges to cover some more simple scripts. (itemize_shape_and_place): Handle unknown glyphs. (script_engine_list): Only return the "everything" range if Uniscribe is available. It would be nice to build up a more specific range list based on the information ScriptGetProperties() returns. That function lists information about each script the Uniscribe version used can handle. Unfortunately, though, the information is severely limited. It doesn't tell what Unicode blocks a script covers. It only gives one language that uses that script, and sometimes an charset number, but for most scripts just the totally useless DEFAULT_CHARSET.
* Add --with-usp10 flag to indicate where to find the usp10.h header, forTor Lillqvist2002-10-211-0/+749
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-10-22 Tor Lillqvist <tml@iki.fi> * configure.in: Add --with-usp10 flag to indicate where to find the usp10.h header, for using Uniscribe on Win32. Set USP10_H autoconf variable, HAVE_USP10_H config.h macro and HAVE_USP10_H automake conditional. * acconfig.h: Add HAVE_USP10_H. * pango/pangowin32-private.h (PANGO_WIN32_DEBUGGING): Change semantics of this flag. If defined, also need to set env var PANGO_WIN32_DEBUG to get the copious debugging output. Change PING() macro accordingly. Add variable pango_win32_debug. * pango/pangowin32.c (pango_win32_get_dc): New function. Code factored out from pango_win32_font_class_init() and pango_win32_font_map_class_init(). (pango_win32_get_debug_flag): New function. (pango_win32_render): Handle y offsets, too. Potentially need to call ExtTextOutW several times, one for each run of sequential glyphs with the same y offset. * pango/pangowin32.h: Declare above new functions, in the part only for shaper engine use. * pango/pangowin32.def: Export above new functions. * pango/pangowin32-fontmap.c (pango_win32_font_map_class_init): Call pango_win32_get_dc() as mentioned above. * modules/basic/Makefile.am: If HAVE_USP10_H, let basic-win32.lo depend on usp10.h. * modules/basic/basic-win32.c: If HAVE_USP10_H, and the Uniscribe DLL usp10.dll is present, use Uniscribe. (uniscribe_shape, itemize_shape_and_place, set_up_pango_log_clusters, convert_log_clusters_to_byte_offsets, make_langid, init_uniscribe): New functions. (dump_glyphs_and_log_clusters, lang_name, charset_name): Debugging functions.
* Merge from pango-1-0:Tor Lillqvist2002-09-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 2002-09-24 Tor Lillqvist <tml@iki.fi> * pango/pangowin32.c: Use PANGO_PIXELS macro throughout instead of dividing by PANGO_SCALE. (pango_win32_render): New try. This time handle both glyphs at code point 0, specifically put there by PangoLayout to indicate spacing (for tab handling), and actual invalid glyphs noticed by the shaper. Invalid glyphs are indicated by the flag PANGO_WIN32_UNKNOWN_FLAG. (Idea taken frompangoxft-font.c) (pango_win32_get_unknown_glyph): Take also the char as parameter, return the same char with the above flag ORed in. (pango_win32_font_get_glyph_extents): If the glyph is flagged as invalid, look for glyph 0 instead. Use g_win32_error_message() in warning message instead of numeric error code. * pango/pangowin32.h: Add the new parameter to the pango_win32_get_unknown_glyph() declaration. Surround the API used by shape engines with #ifdef PANGO_ENABLE_ENGINE. * modules/basic/basic-win32.c: Change call accordingly.
* Minor spacing fixes, comment the Unicode ranges covered.Tor Lillqvist2002-09-221-11/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | 2002-09-23 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c: Minor spacing fixes, comment the Unicode ranges covered. * modules/basic/makefile.mingw.in: Remove. Not maintained. * modules/basic/Makefile.am: Remove from here, too. * pango/makefile.msc * pango/module-defs-win32.c.win32: Change according to change below so that build also with the manually written makefile for MSVC, which always uses included modules, still works. * pango-zip.sh.in: Distribute specifically pango.aliases and pango.modules, not the whole etc/pango which might contain editor backup files. Mon Sep 16 12:03:54 2002 Arnaud Charlet <charlet@gnat.com> * modules/basic/basic-win32.c: Check for correct macro, use correct module entry name, so that --with-included-modules works with autoconfiscated build for Windows. (#93372)
* ue Mar 26 18:22:07 2002 Owen Taylor <otaylor@redhat.com>Owen Taylor2002-03-261-1/+3
| | | | | | | | * modules/basic/basic-*.c modules/basic/basic-common.h: Move ZERO_WIDTH_CHAR() macro into a common header file, add ZERO WIDTH-NO BREAK SPACE (U+FEFF) * modules/basic/Makefile.am (EXTRA_DIST): Add basic-common.h.
* Convert U+00A0 (NON BREAK SPACE) to U+0020 (SPACE)Owen Taylor2002-03-251-0/+3
| | | | | | | | | | Mon Mar 25 15:46:54 2002 Owen Taylor <otaylor@redhat.com> * modules/basic/basic-*.c: Convert U+00A0 (NON BREAK SPACE) to U+0020 (SPACE) * modules/basic/basic-xft.c (basic_engine_shape): Remove some dead code.
* updated externalsHans Breuer2001-09-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-21 Hans Breuer <hans@breuer.org> * pango/pango.def : updated externals * pango/makefile.msc : build ft2 backend too. * pango/pangowin32-fontmap.c - Convert PangoWin32FamilyEntry into PangoWin32Family deriving from PangoFontFamily. - Convert PangoWin32FontEntry into PangoWin32Face deriving from PangoFontFace. - Change the list_families() method of the PangoWin32FontMap to list PangoFontFamily * rather than names. * pango/pangowin32.c : reflect PangoFontDescription api change * pango/pangowin32.h : don't include pango.h but only the required headers * modules/basic/basic-win32.c : #include "pango-engine.h" * pango/testfonts.c : reflect recent pango api changes
* Large rewrite of the win32 backend to use real glyph indexes instead ofAlexander Larsson2001-08-091-65/+6
| | | | | | | | | | | | | | | | | | | 2001-08-09 Alexander Larsson <alexl@redhat.com> * pango/pangowin32.h: * pango/pangowin32-private.h: * pango/pangowin32.c: * pango/pangowin32-fontmap.c: * modules/basic/basic-win32.c: * pango/pangowin32.def: Large rewrite of the win32 backend to use real glyph indexes instead of unicode codes. Also drops the subfont thing, thereby simplifying the code immensely. This looses some functionality, but i will add that back soon using global (non backend-specific) aliases. This is the first cut, and is not perfect. It still has some issues and imperfections, but it so clearly better than the current imlementation that I'm checking it in anyway.
* Add a new PangoLanguage type to represent language tags; these canOwen Taylor2001-06-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sat Jun 9 17:36:09 2001 Owen Taylor <otaylor@redhat.com> * pango/pango-types.h pango/pango-utils.c: Add a new PangoLanguage type to represent language tags; these can efficiently be compared and don't need to be copied. Also add pango_language_matches() to match a language tag against a pattern. * pango/pango-item.[ch] pango/pango-layout.c: Move extra_attrs from PangoItem to PangoAnalysis. Add a language tag field to PangoAnalysis. (#55894) * pango/pango-attributes.[ch] (pango_attr_iterator_get_font): Return the language tag as well. * pango/pango-attributes.[ch]: Rename PangoAttrLang to PangoAttrLanguage, and make it hold a PangoLanguage. * pango/pango-context.[ch]: Rename pango_context_{get,set}_lang() to pango_context_{get,set}_language(). * **.[ch]: Adapt to PangoLanguage and s/lang/language/ changes. * modules/basic/basic-x.c modules/basic/tables-big.i: Add support for ordering character sets differently for different language tags. * pango/itemize.c: Remove old, unused file. * pango/pango-context.c (pango_itemize): Reduce number of mallocs by allocating one array of PangoAnalysis instead of many arrays.
* i2001-01-04 Alexander Larsson <alla@lysator.liu.se>Alexander Larsson2001-01-041-3/+5
| | | | | | | | | | | | | | | | | | | | | * modules/arabic/arabic-x.c: * modules/arabic/arabic-xft.c: * modules/basic/basic-ft2.c: * modules/basic/basic-win32.c: * modules/basic/basic-x.c: * modules/hangul/hangul-x.c: * modules/indic/bengali-x.c: * modules/indic/devanagari-x.c: * modules/indic/gujarati-x.c: * modules/indic/gurmukhi-x.c: * modules/indic/myanmar-x.c: * modules/tamil/tamil-x.c: * modules/thai/thai-x.c: Change all modules to use a define to the script engine name. Also Fixes some errors in the names (they were different in the same module). * pango/.cvsignore: add module-defs*.[ch]
* Only a script engine here.Tor Lillqvist2000-12-211-3/+1
| | | | | | | | | | | | | | | | | | | | 2000-12-21 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c (script_engine_load): Only a script engine here. * pango/makefile.mingw.in: Add the built pango-enum-types.[ch]. * pango/pango.def * pango/pangoft2.def: Update. * pango/opentype/pango-ot.def * pango/opentype/makefile.mingw.in: New files. * pango/opentype/Makefile.am (EXTRA_DIST): Add them. * configure.in (included_modules): Generate pango/opentype/makefile.mingw.
* Fix build breakage, reported by Alex Larsson and Yasushi ShojiHavoc Pennington2000-12-181-1/+0
| | | | | | | | | | | | | | | | | 2000-12-18 Havoc Pennington <hp@redhat.com> Fix build breakage, reported by Alex Larsson and Yasushi Shoji * pango/pangox.h: don't include pango.h, just individual headers * configure.in: check for perl, add --disable-rebuilds configure option, automatically disable rebuilds if no perl * pango/Makefile.am: use located perl to run makeenums.pl, and don't try to rebuild if we did --disable-rebuilds (EXTRA_DIST): add built headers * modules/*/*.[hc]: don't include pango.h, include specific headers
* delete lang engineHavoc Pennington2000-12-021-34/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-30 Havoc Pennington <hp@pobox.com> * modules/thai/thai.c: delete lang engine * modules/tamil/tamil.c: delete lang engine (tamil_engine_x_new): fix type tag for shape engine * modules/indic/myanmar.c: delete lang engine (pango_engine_x_new): fix type tag for shape engine * modules/indic/gurmukhi.c: delete lang engine (pango_indic_engine_x_new): fix type tag for shape engine * modules/indic/gujarati.c: delete lang engine (pango_indic_engine_x_new): fix type tag for shape engine * modules/indic/devanagari.c: delete lang engine (pango_indic_engine_x_new): fix type tag for shape engine * modules/indic/pango-indic-script.h (SCRIPT_ENGINE_DEFINITION): delete lang engine * modules/indic/bengali.c: delete the lang engine (pango_indic_engine_x_new): fix type tag for shape engine * modules/hangul/hangul.c: delete the lang engine (hangul_engine_x_new): fix type tag for shape engine * modules/basic/basic.c: delete the lang engine (basic_engine_x_new): fix type tag for shape engine * modules/basic/basic-win32.c: delete the lang engine (basic_engine_win32_new): this was a shape engine, use correct type tag * modules/basic/basic-ft2.c: delete the lang engine * modules/arabic/arabic.c: Delete the lang engine (arabic_engine_x_new): this is a shape engine, not a lang engine, fix type tag * pango/pango-layout.c (pango_layout_index_to_line_x): handle the fact that paragraph delimiters aren't in the layout lines (pango_layout_index_to_pos): update to handle paragraph delimiters * pango/break.c (pango_find_paragraph_boundary): New function to find paragraph boundaries * pango/pango-layout.c (get_items_log_attrs): don't separate calls to pango_break() when directional level changes * pango/pango-layout.h (struct _PangoLayoutLine): put start index of the line into the struct * pango/pango-layout.c (pango_layout_get_cursor_pos): Fixups to reflect the fact that paragraph separators are removed from the input text. * pango/pango-layout.c (can_break_at): don't special-case start of line and whitespace-following-alphabetic here, because pango_break() already handles that properly * tests/testboundaries.c, tests/Makefile.am, tests/runtests.sh: Add directory for test programs, and a script to run them all * configure.in: Create Makefile in tests * pango/break.c (pango_break): Try for a real implementation of the Unicode text boundary algorithms (pango_get_log_attrs): Allow length to be -1 * pango/pango-context.c (pango_itemize): use pango_item_new(), assert that items added to the list are sane. * pango/pango-layout.c (pango_layout_check_lines): Reimplement to honor the paragraph boundaries from pango_break() * pango/pango-layout.c (process_item): use pango_item_split() here * pango/pango-item.c (pango_item_split): New function to split an item into two items