Go to file
Behdad Esfahbod 760d342d37 Add support for color embedded bitmaps (eg. color emoji).
A new load flag, FT_LOAD_COLOR, makes FreeType load color
embedded-bitmaps, following this draft specification

  https://color-emoji.googlecode.com/git/specification/v1.html

which defines two new SFNT tables, `CBDT' and `CBLC' (named and
modeled after `EBDT' and `EBLC', respectively).  The color bitmaps
are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
pre-multiplied sRGB images.  If PNG support is available, PNG color
images as defined in the same proposed specification are supported
also.

Note that color bitmaps are converted to grayscale if client didn't
ask for color.

* builds/unix/configure.raw: Search for libpng.
Add `--without-png' option.

* devel/ftoption.h, include/freetype/config/ftoption.h
(FT_CONFIG_OPTION_USE_PNG): New macro.

* include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.

* include/freetype/ftimage.h (FT_Pixel_Mode): Add
`FT_PIXEL_MODE_BGRA'.

* include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.

* src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
(ft_gray_for_premultiplied_srgb_bgra): New function.
(FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.

* src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.

* src/sfnt/sfnt.c: Include `pngshim.c'.

* src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
(tt_face_load_eblc): Load `CBLC'.
(tt_sbit_decoder_init): Load `CBDT'.
(tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
color and grayscale bitmaps.
Set `num_grays'.  This is used by `ftview' to choose the blending
algorithm.
(tt_sbit_decoder_load_byte_aligned,
tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
tt_sbit_decoder_load_image): Pass load flag.
s/write/pwrite/.
Don't call `tt_sbit_decoder_alloc_bitmap'.
Updated.
(tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
(tt_sbit_decoder_load_bitmap): Pass load flag.
Handle new glyph formats 17, 18, and 19.
Call `tt_sbit_decoder_alloc_bitmap'.
Flatten color bitmaps if necessary.
(tt_face_load_sbit_image): Updated.

* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.

* docs/CHANGES: Updated.
2013-05-29 11:36:18 +02:00
builds Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
devel Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
docs Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
include Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
objs Ignore *.o and *.a files. 2011-03-20 18:28:31 +01:00
src Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
.gitignore We no longer use CVS. 2010-01-23 16:19:33 +01:00
.mailmap Add .mailmap file. 2012-12-08 12:30:37 +01:00
ChangeLog Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
ChangeLog.20 Add one more example to the documentation of FT_Glyph_To_Bitmap. 2008-08-06 09:09:41 +00:00
ChangeLog.21 Formatting, copyright years. 2008-07-27 06:27:21 +00:00
ChangeLog.22 Formatting, copyright years. 2008-07-27 06:27:21 +00:00
ChangeLog.23 Call it fixed-point. 2013-01-12 19:17:05 -05:00
Jamfile * Version 2.4.12 released. 2013-05-08 11:39:16 +02:00
Jamrules Add license. 2005-06-04 23:04:30 +00:00
Makefile * Makefile, *.mk: Use `?=' where appropriate. 2006-02-01 07:52:11 +00:00
README * Version 2.4.12 released. 2013-05-08 11:39:16 +02:00
README.git Typo. 2010-07-12 21:25:01 +02:00
autogen.sh Remove trailing whitespace. 2013-01-24 13:33:06 +01:00
configure * configure: Use egrep, not grep. 2013-03-31 09:04:38 +02:00
modules.cfg Add new error code FT_Err_Missing_Module. 2011-11-26 13:38:26 +01:00
version.sed Put version information into the configure script. Reported by Paul 2006-05-08 07:10:29 +00:00
vms_make.com typo 2007-02-12 14:35:15 +00:00

README

  FreeType 2.4.12
  ===============

  Homepage: http://www.freetype.org

  FreeType is a freely available software library to render fonts.

  It  is  written  in  C,  designed to  be  small,  efficient,  highly
  customizable, and  portable while capable of  producing high-quality
  output  (glyph  images) of  most  vector  and bitmap  font  formats.

  Please   read   the  docs/CHANGES   file,   it  contains   IMPORTANT
  INFORMATION.

  Read the  files `docs/INSTALL*'  for installation  instructions; see
  the file `docs/LICENSE.TXT' for the available licenses.

  The FreeType 2 API reference is located in `docs/reference'; use the
  file   `ft2-doc.html'   as   the   top  entry   point.    Additional
  documentation is available as a separate package from our sites.  Go
  to

    http://download.savannah.gnu.org/releases/freetype/

  and download one of the following files.

    freetype-doc-2.4.12.tar.bz2
    freetype-doc-2.4.12.tar.gz
    ftdoc2412.zip

  To view the documentation online, go to

    http://www.freetype.org/freetype2/documentation.html


  Mailing Lists
  =============

  The preferred way  of communication with the FreeType  team is using
  e-mail lists.

    general use and discussion:      freetype@nongnu.org
    engine internals, porting, etc.: freetype-devel@nongnu.org
    announcements:                   freetype-announce@nongnu.org

  The lists are moderated; see

    http://www.freetype.org/contact.html

  how to subscribe.


  Bugs
  ====

  Please report bugs  by e-mail to `freetype-devel@nongnu.org'.  Don't
  forget to  send a  detailed explanation of  the problem --  there is
  nothing  worse than  receiving a  terse message  that only  says `it
  doesn't work'.

  Alternatively, you may submit a bug report at

    https://savannah.nongnu.org/bugs/?group=freetype


  Enjoy!


    The FreeType Team

----------------------------------------------------------------------

Copyright 2006-2013 by
David Turner, Robert Wilhelm, and Werner Lemberg.

This  file is  part of  the FreeType  project, and  may only  be used,
modified,  and distributed  under the  terms of  the  FreeType project
license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
this file you  indicate that you have read  the license and understand
and accept it fully.


--- end of README ---