Add full FreeType support for Xprint. (Drew Parsons)
This commit is contained in:
parent
759033703c
commit
4c317bbc12
|
@ -1,3 +1,11 @@
|
||||||
|
2006-03-31 Daniel Stone <daniel@freedesktop.org>
|
||||||
|
|
||||||
|
* configure.ac:
|
||||||
|
* Xprint/Makefile.am:
|
||||||
|
* Xprint/ps/Makefile.am:
|
||||||
|
* Xprint/ps/psout_ftpstype3.c:
|
||||||
|
Add full FreeType support for Xprint. (Drew Parsons)
|
||||||
|
|
||||||
2006-03-30 Eric Anholt <anholt@FreeBSD.org>
|
2006-03-30 Eric Anholt <anholt@FreeBSD.org>
|
||||||
|
|
||||||
* exa/exa.c: (exaValidateGC):
|
* exa/exa.c: (exaValidateGC):
|
||||||
|
|
|
@ -11,7 +11,8 @@ Xprt_LDFLAGS = -L$(top_srcdir)
|
||||||
Xprt_LDADD = @XPRINT_LIBS@ ps/libps.la raster/libraster.la \
|
Xprt_LDADD = @XPRINT_LIBS@ ps/libps.la raster/libraster.la \
|
||||||
pcl/libpcl.la pcl-mono/libpcl.la \
|
pcl/libpcl.la pcl-mono/libpcl.la \
|
||||||
../mfb/libmfb.la ../mi/libmi.la \
|
../mfb/libmfb.la ../mi/libmi.la \
|
||||||
../cfb32/libcfb32.la ../cfb/libcfb.la ../Xext/libXext.la
|
../cfb32/libcfb32.la ../cfb/libcfb.la ../Xext/libXext.la \
|
||||||
|
@FREETYPE_LIBS@
|
||||||
|
|
||||||
miinitext-wrapper.c:
|
miinitext-wrapper.c:
|
||||||
echo "#include \"$(top_srcdir)/mi/miinitext.c\"" >> $@
|
echo "#include \"$(top_srcdir)/mi/miinitext.c\"" >> $@
|
||||||
|
|
|
@ -2,7 +2,7 @@ noinst_LTLIBRARIES = libps.la
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir)/Xprint -I$(top_srcdir)/cfb -I$(top_srcdir)/mfb
|
INCLUDES = -I$(top_srcdir)/Xprint -I$(top_srcdir)/cfb -I$(top_srcdir)/mfb
|
||||||
|
|
||||||
AM_CFLAGS = @SERVER_DEFINES@ @DIX_CFLAGS@ @XPRINT_CFLAGS@ \
|
AM_CFLAGS = @SERVER_DEFINES@ @DIX_CFLAGS@ @XPRINT_CFLAGS@ @FREETYPE_CFLAGS@ \
|
||||||
-D_XP_PRINT_SERVER_ -DPSZ=8 -DXP_PSTEXT
|
-D_XP_PRINT_SERVER_ -DPSZ=8 -DXP_PSTEXT
|
||||||
|
|
||||||
libps_la_SOURCES = \
|
libps_la_SOURCES = \
|
||||||
|
@ -35,3 +35,8 @@ EXTRA_DIST = PsFTFonts.c \
|
||||||
psout_ftpstype1.c \
|
psout_ftpstype1.c \
|
||||||
psout_ftpstype3.c \
|
psout_ftpstype3.c \
|
||||||
ttf2pt1wrap.c
|
ttf2pt1wrap.c
|
||||||
|
|
||||||
|
if XP_USE_FREETYPE
|
||||||
|
AM_CFLAGS += -DXP_USE_FREETYPE
|
||||||
|
libps_la_SOURCES += $(EXTRA_DIST)
|
||||||
|
endif
|
||||||
|
|
|
@ -55,13 +55,6 @@ THE SOFTWARE.
|
||||||
#include FT_MULTIPLE_MASTERS_H
|
#include FT_MULTIPLE_MASTERS_H
|
||||||
#include FT_SFNT_NAMES_H
|
#include FT_SFNT_NAMES_H
|
||||||
|
|
||||||
#define USE_FT_INTERNALS 1
|
|
||||||
#ifdef USE_FT_INTERNALS
|
|
||||||
#include FT_INTERNAL_TYPE1_TYPES_H
|
|
||||||
#include "t42types.h"
|
|
||||||
#include FT_INTERNAL_OBJECTS_H
|
|
||||||
#endif /* USE_FT_INTERNALS */
|
|
||||||
|
|
||||||
#include <X11/Xproto.h>
|
#include <X11/Xproto.h>
|
||||||
#include <X11/fonts/font.h>
|
#include <X11/fonts/font.h>
|
||||||
#include <X11/fonts/fontstruct.h>
|
#include <X11/fonts/fontstruct.h>
|
||||||
|
@ -287,28 +280,6 @@ FT_Error PSType3_createOutlineGlyphs( FILE *out, struct ft2info *ti, unsigned lo
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_FT_INTERNALS
|
|
||||||
static FT_BBox *
|
|
||||||
FT_Get_PS_Font_BBox( FT_Face face )
|
|
||||||
{
|
|
||||||
const char *driver_name;
|
|
||||||
FT_BBox *font_bbox = NULL;
|
|
||||||
|
|
||||||
if ( face && face->driver && face->driver->root.clazz )
|
|
||||||
{
|
|
||||||
driver_name = face->driver->root.clazz->module_name;
|
|
||||||
if ( ft_strcmp( driver_name, "type1" ) == 0 )
|
|
||||||
font_bbox = &(((T1_Face)face)->type1.font_bbox);
|
|
||||||
else if ( ft_strcmp( driver_name, "t1cid" ) == 0 )
|
|
||||||
font_bbox = &(((CID_Face)face)->cid.font_bbox);
|
|
||||||
else if ( ft_strcmp( driver_name, "type42" ) == 0 )
|
|
||||||
font_bbox = &(((T42_Face)face)->type1.font_bbox);
|
|
||||||
}
|
|
||||||
|
|
||||||
return font_bbox;
|
|
||||||
}
|
|
||||||
#endif /* USE_FT_INTERNALS */
|
|
||||||
|
|
||||||
static
|
static
|
||||||
int PSType3_generateOutlineFont(FILE *out, const char *psfontname, struct ft2info *ti, long block_offset)
|
int PSType3_generateOutlineFont(FILE *out, const char *psfontname, struct ft2info *ti, long block_offset)
|
||||||
{
|
{
|
||||||
|
@ -362,12 +333,12 @@ int PSType3_generateOutlineFont(FILE *out, const char *psfontname, struct ft2inf
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FT_BBox *font_bbox = FT_Get_PS_Font_BBox(ti->ttface);
|
fprintf(out, "/FontBBox [%ld %ld %ld %ld] def\n",
|
||||||
fprintf(out, "/FontBBox [%d %d %d %d] def\n",
|
ti->ttface->bbox.xMin,
|
||||||
(int)font_bbox->xMin,
|
ti->ttface->bbox.yMin,
|
||||||
(int)font_bbox->yMin,
|
ti->ttface->bbox.xMax,
|
||||||
(int)font_bbox->xMax,
|
ti->ttface->bbox.yMax);
|
||||||
(int)font_bbox->yMax);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(out, "/Encoding [\n");
|
fprintf(out, "/Encoding [\n");
|
||||||
|
|
36
configure.ac
36
configure.ac
|
@ -1285,6 +1285,42 @@ if test "x$XPRINT" = xyes; then
|
||||||
|
|
||||||
AC_PATH_PROG(MKFONTSCALE, mkfontscale)
|
AC_PATH_PROG(MKFONTSCALE, mkfontscale)
|
||||||
AC_PATH_PROG(MKFONTDIR, mkfontdir)
|
AC_PATH_PROG(MKFONTDIR, mkfontdir)
|
||||||
|
|
||||||
|
# freetype support code borrowed from lib/XFont
|
||||||
|
AC_ARG_ENABLE(freetype, [ --disable-freetype],[XP_USE_FREETYPE=$enableval],[XP_USE_FREETYPE=yes])
|
||||||
|
AM_CONDITIONAL(XP_USE_FREETYPE, [test x$XP_USE_FREETYPE = xyes])
|
||||||
|
if test x$XP_USE_FREETYPE = xyes; then
|
||||||
|
AC_DEFINE(XP_USE_FREETYPE,1,[Support FreeType rasterizer in Xprint for nearly all font file formats])
|
||||||
|
AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=auto)
|
||||||
|
|
||||||
|
if test "$freetype_config" = "auto" ; then
|
||||||
|
PKG_CHECK_MODULES(FREETYPE, freetype2,
|
||||||
|
freetype_config=no, freetype_config=yes)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$freetype_config" = "yes"; then
|
||||||
|
AC_PATH_PROG(ft_config,freetype-config,no)
|
||||||
|
if test "$ft_config" = "no"; then
|
||||||
|
AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ft_config="$freetype_config"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$freetype_config" != "no"; then
|
||||||
|
FREETYPE_CFLAGS="`$ft_config --cflags`"
|
||||||
|
FREETYPE_LIBS="`$ft_config --libs`"
|
||||||
|
fi
|
||||||
|
FREETYPE_REQUIRES="freetype2"
|
||||||
|
else
|
||||||
|
FREETYPE_CFLAGS=""
|
||||||
|
FREETYPE_LIBS=""
|
||||||
|
FREETYPE_REQUIRES=""
|
||||||
|
fi
|
||||||
|
AC_SUBST(FREETYPE_LIBS)
|
||||||
|
AC_SUBST(FREETYPE_CFLAGS)
|
||||||
|
AC_SUBST(FREETYPE_REQUIRES)
|
||||||
|
# end freetype support
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue