[Xorg-commit] xc/extras/freetype2/src/base Jamfile,1.1.4.1,1.1.4.2 descrip.mms,1.1.4.1,1.1.4.2 ftbase.c,1.1,1.1.4.1 ftbbox.c,1.1.4.1,1.1.4.2 ftbdf.c,1.1.4.1,1.1.4.2 ftcalc.c,1.1,1.1.4.1 ftdbgmem.c,1.1.4.1,1.1.4.2 ftglyph.c,1.1.4.1,1.1.4.2 ftmac.c,1.1.4.1,1.1.4.2 ftmm.c,1.1,1.1.4.1 ftobjs.c,1.1.4.1,1.1.4.2 ftoutln.c,1.1.4.1,1.1.4.2 ftpfr.c,1.1,1.1.4.1 ftsynth.c,1.1.4.1,1.1.4.2 fttrigon.c,1.1.4.1,1.1.4.2 fttype1.c,1.1.4.1,1.1.4.2 ftwinfnt.c,1.1,1.1.4.1 ftxf86.c,1.1,1.1.4.1 rules.mk,1.1.4.1,1.1.4.2
Kaleb Keithley
xorg-commit at pdx.freedesktop.org
Wed May 9 17:30:30 EEST 2007
- Previous message: [Xorg-commit] xc/extras/freetype2/src/autohint ahglobal.c,1.1.4.1,1.1.4.2 ahglobal.h,1.1.4.1,1.1.4.2 ahglyph.c,1.1.4.1,1.1.4.2 ahhint.c,1.1.4.1,1.1.4.2 ahloader.h,1.1,1.1.4.1 ahmodule.c,1.1.4.1,1.1.4.2 ahtypes.h,1.1.4.1,1.1.4.2 rules.mk,1.1,1.1.4.1
- Next message: [Xorg-commit] xc/extras/freetype2/src/bdf bdf.h,1.1,1.1.4.1 bdfdrivr.c,1.1.4.1,1.1.4.2 bdfdrivr.h,1.1,1.1.4.1 bdflib.c,1.1.4.1,1.1.4.2 rules.mk,1.1,1.1.4.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Committed by: kaleb
Update of /cvs/xorg/xc/extras/freetype2/src/base
In directory pdx:/home/kaleb/xorg/xc.XORG-CURRENT/extras/freetype2/src/base
Modified Files:
Tag: XORG-CURRENT
Jamfile descrip.mms ftbase.c ftbbox.c ftbdf.c ftcalc.c
ftdbgmem.c ftglyph.c ftmac.c ftmm.c ftobjs.c ftoutln.c ftpfr.c
ftsynth.c fttrigon.c fttype1.c ftwinfnt.c ftxf86.c rules.mk
Log Message:
merge most of XFree86 RC3 (4.3.99.903) from vendor branch.
bug #214
Index: Jamfile
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/Jamfile,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Jamfile 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/Jamfile 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -1,4 +1,4 @@
-# FreeType 2 src/base Jamfile (c) 2001, 2002 David Turner
+# FreeType 2 src/base Jamfile (c) 2001, 2002, 2003 David Turner
#
SubDir FT2_TOP $(FT2_SRC_DIR) base ;
@@ -24,7 +24,7 @@
#
Library $(FT2_LIB) : ftsystem.c ftinit.c ftglyph.c ftmm.c ftbdf.c
ftbbox.c ftdebug.c ftxf86.c fttype1.c ftpfr.c
- ftstroker.c ftwinfnt.c
+ ftstroke.c ftwinfnt.c
;
# Add Macintosh-specific file to the library when necessary.
Index: descrip.mms
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/descrip.mms,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/descrip.mms 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/descrip.mms 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -3,7 +3,7 @@
#
-# Copyright 2001 by
+# Copyright 2001, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
@@ -15,7 +15,7 @@
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.builds.vms],[--.include],[--.src.base])
-OBJS=ftbase.obj,ftinit.obj,ftglyph.obj,ftdebug.obj,ftbdf.obj,ftmm.obj,fttype1.obj,ftxf86.obj,ftpfr.obj,ftstroker.obj,ftwinfnt.obj
+OBJS=ftbase.obj,ftinit.obj,ftglyph.obj,ftdebug.obj,ftbdf.obj,ftmm.obj,fttype1.obj,ftxf86.obj,ftpfr.obj,ftstroke.obj,ftwinfnt.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
Index: ftbase.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftbase.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/ftbase.c 14 Nov 2003 16:48:24 -0000 1.1
+++ b/ftbase.c 23 Feb 2004 21:32:39 -0000 1.1.4.1
@@ -30,5 +30,8 @@
#include "ftobjs.c"
#include "ftnames.c"
+#if defined( __APPLE__ ) && !defined ( DARWIN_NO_CARBON )
+#include "ftmac.c"
+#endif
/* END */
Index: ftbbox.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftbbox.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/ftbbox.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/ftbbox.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -98,9 +98,9 @@
static void
BBox_Conic_Check( FT_Pos y1,
FT_Pos y2,
- FT_Pos y3,
- FT_Pos* min,
- FT_Pos* max )
+ FT_Pos y3,
+ FT_Pos* min,
+ FT_Pos* max )
{
if ( y1 <= y3 )
{
Index: ftbdf.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftbdf.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/ftbdf.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/ftbdf.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* FreeType API for accessing BDF-specific strings (body). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -17,24 +17,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_BDF_TYPES_H
#include FT_INTERNAL_OBJECTS_H
-
- static FT_Bool
- test_font_type( FT_Face face, const char* name )
- {
- if ( face && face->driver )
- {
- FT_Module driver = (FT_Module)face->driver;
-
- if ( driver->clazz && driver->clazz->module_name )
- {
- if ( ft_strcmp( driver->clazz->module_name, name ) == 0 )
- return 1;
- }
- }
- return 0;
- }
+#include FT_SERVICE_BDF_H
FT_EXPORT_DEF( FT_Error )
@@ -49,14 +33,15 @@
error = FT_Err_Invalid_Argument;
- if ( test_font_type( face, "bdf" ) )
+ if ( face )
{
- BDF_Public_Face bdf_face = (BDF_Public_Face)face;
+ FT_Service_BDF service;
- encoding = (const char*) bdf_face->charset_encoding;
- registry = (const char*) bdf_face->charset_registry;
- error = 0;
+ FT_FACE_FIND_SERVICE( face, service, BDF );
+
+ if ( service && service->get_charset_id )
+ error = service->get_charset_id( face, &encoding, ®istry );
}
if ( acharset_encoding )
@@ -74,23 +59,26 @@
const char* prop_name,
BDF_PropertyRec *aproperty )
{
- FT_Error error;
+ FT_Error error;
+
error = FT_Err_Invalid_Argument;
aproperty->type = BDF_PROPERTY_TYPE_NONE;
- if ( face != NULL && face->driver != NULL )
+ if ( face )
{
- FT_Driver driver = face->driver;
- BDF_GetPropertyFunc func;
+ FT_Service_BDF service;
- func = (BDF_GetPropertyFunc) driver->root.clazz->get_interface(
- FT_MODULE( driver ), "get_bdf_property" );
- if ( func )
- error = func( face, prop_name, aproperty );
+
+ FT_FACE_FIND_SERVICE( face, service, BDF );
+
+ if ( service && service->get_property )
+ error = service->get_property( face, prop_name, aproperty );
}
- return error;
+
+ return error;
}
+
/* END */
Index: ftcalc.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftcalc.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/ftcalc.c 14 Nov 2003 16:48:24 -0000 1.1
+++ b/ftcalc.c 23 Feb 2004 21:32:39 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* Arithmetic computations (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -168,7 +168,7 @@
if ( a < 0 ) { a = -a; s = -1; }
if ( b < 0 ) { b = -b; s = -s; }
- c = (FT_Long)( ( (FT_Int64)a * b + 0x8000 ) >> 16 );
+ c = (FT_Long)( ( (FT_Int64)a * b + 0x8000L ) >> 16 );
return ( s > 0 ) ? c : -c ;
}
@@ -346,15 +346,15 @@
if ( ua <= 2048 && ub <= 1048576L )
{
- ua = ( ua * ub + 0x8000 ) >> 16;
+ ua = ( ua * ub + 0x8000L ) >> 16;
}
else
{
- FT_ULong al = ua & 0xFFFF;
+ FT_ULong al = ua & 0xFFFFL;
ua = ( ua >> 16 ) * ub + al * ( ub >> 16 ) +
- ( ( al * ( ub & 0xFFFF ) + 0x8000 ) >> 16 );
+ ( ( al * ( ub & 0xFFFFL ) + 0x8000L ) >> 16 );
}
return ( s < 0 ? -(FT_Long)ua : (FT_Long)ua );
Index: ftdbgmem.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftdbgmem.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/ftdbgmem.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/ftdbgmem.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* Memory debugger (body). */
/* */
-/* Copyright 2001, 2002 by */
+/* Copyright 2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
Index: ftglyph.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftglyph.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/ftglyph.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/ftglyph.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* FreeType convenience functions to handle glyphs (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -57,7 +57,7 @@
FT_EXPORT_DEF( void )
FT_Matrix_Multiply( const FT_Matrix* a,
- FT_Matrix* b )
+ FT_Matrix *b )
{
FT_Fixed xx, xy, yx, yy;
@@ -158,8 +158,8 @@
glyph->left = slot->bitmap_left;
glyph->top = slot->bitmap_top;
- if ( slot->flags & FT_GLYPH_OWN_BITMAP )
- slot->flags &= ~FT_GLYPH_OWN_BITMAP;
+ if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
+ slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
else
{
/* copy the bitmap into a new buffer */
@@ -254,13 +254,13 @@
/* copy it */
FT_MEM_COPY( target->points, source->points,
- source->n_points * sizeof ( FT_Vector ) );
+ source->n_points * sizeof ( FT_Vector ) );
FT_MEM_COPY( target->tags, source->tags,
- source->n_points * sizeof ( FT_Byte ) );
+ source->n_points * sizeof ( FT_Byte ) );
FT_MEM_COPY( target->contours, source->contours,
- source->n_contours * sizeof ( FT_Short ) );
+ source->n_contours * sizeof ( FT_Short ) );
/* copy all flags, except the `FT_OUTLINE_OWNER' one */
target->flags = source->flags | FT_OUTLINE_OWNER;
@@ -421,7 +421,7 @@
FT_Get_Glyph( FT_GlyphSlot slot,
FT_Glyph *aglyph )
{
- FT_Library library = slot->library;
+ FT_Library library;
FT_Error error;
FT_Glyph glyph;
@@ -431,6 +431,8 @@
if ( !slot )
return FT_Err_Invalid_Slot_Handle;
+ library = slot->library;
+
if ( !aglyph )
return FT_Err_Invalid_Argument;
@@ -541,7 +543,8 @@
clazz->glyph_bbox( glyph, acbox );
/* perform grid fitting if needed */
- if ( bbox_mode & ft_glyph_bbox_gridfit )
+ if ( bbox_mode == FT_GLYPH_BBOX_GRIDFIT ||
+ bbox_mode == FT_GLYPH_BBOX_PIXELS )
{
acbox->xMin &= -64;
acbox->yMin &= -64;
@@ -550,7 +553,8 @@
}
/* convert to integer pixels if needed */
- if ( bbox_mode & ft_glyph_bbox_truncate )
+ if ( bbox_mode == FT_GLYPH_BBOX_TRUNCATE ||
+ bbox_mode == FT_GLYPH_BBOX_PIXELS )
{
acbox->xMin >>= 6;
acbox->yMin >>= 6;
@@ -571,12 +575,13 @@
FT_Vector* origin,
FT_Bool destroy )
{
- FT_GlyphSlotRec dummy;
- FT_Error error = FT_Err_Ok;
- FT_Glyph glyph;
- FT_BitmapGlyph bitmap = NULL;
+ FT_GlyphSlotRec dummy;
+ FT_GlyphSlot_InternalRec dummy_internal;
+ FT_Error error = FT_Err_Ok;
+ FT_Glyph glyph;
+ FT_BitmapGlyph bitmap = NULL;
- const FT_Glyph_Class* clazz;
+ const FT_Glyph_Class* clazz;
/* check argument */
@@ -592,7 +597,7 @@
clazz = glyph->clazz;
- /* when called with a bitmap glyph, do nothing and return succesfully */
+ /* when called with a bitmap glyph, do nothing and return successfully */
if ( clazz == &ft_bitmap_glyph_class )
goto Exit;
@@ -600,8 +605,10 @@
goto Bad;
FT_MEM_ZERO( &dummy, sizeof ( dummy ) );
- dummy.library = glyph->library;
- dummy.format = clazz->glyph_format;
+ FT_MEM_ZERO( &dummy_internal, sizeof ( dummy_internal ) );
+ dummy.internal = &dummy_internal;
+ dummy.library = glyph->library;
+ dummy.format = clazz->glyph_format;
/* create result bitmap glyph */
error = ft_new_glyph( glyph->library, &ft_bitmap_glyph_class,
@@ -609,7 +616,7 @@
if ( error )
goto Exit;
-#if 0
+#if 1
/* if `origin' is set, translate the glyph image */
if ( origin )
FT_Glyph_Transform( glyph, 0, origin );
@@ -622,7 +629,7 @@
if ( !error )
error = FT_Render_Glyph_Internal( glyph->library, &dummy, render_mode );
-#if 0
+#if 1
if ( !destroy && origin )
{
FT_Vector v;
Index: ftmac.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftmac.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/ftmac.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/ftmac.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* Mac FOND support. Written by just at letterror.com. */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -14,7 +14,7 @@
/* understand and accept it fully. */
/* */
/***************************************************************************/
-/* $XFree86: xc/extras/freetype2/src/base/ftmac.c,v 1.5 2003/05/29 02:13:03 dawes Exp $ */
+
/*
Notes
@@ -62,12 +62,14 @@
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_INTERNAL_STREAM_H
-#include "truetype/ttobjs.h"
-#include "type1/t1objs.h"
#ifdef __GNUC__
+#include "../truetype/ttobjs.h"
+#include "../type1/t1objs.h"
#include <Carbon/Carbon.h>
#else
+#include "truetype/ttobjs.h"
+#include "type1/t1objs.h"
#include <Resources.h>
#include <Fonts.h>
#include <Errors.h>
@@ -75,7 +77,6 @@
#include <TextUtils.h>
#endif
-
#include FT_MAC_H
@@ -91,7 +92,7 @@
file_spec_from_path( const char* pathname,
FSSpec* spec )
{
-#if TARGET_API_MAC_CARBON
+#if defined( TARGET_API_MAC_CARBON ) && !defined( __MWERKS__ )
OSErr e;
FSRef ref;
@@ -139,7 +140,7 @@
}
-#if TARGET_API_MAC_CARBON
+#ifdef TARGET_API_MAC_CARBON
/* is this a Mac OS X .dfont file */
static Boolean
@@ -148,8 +149,8 @@
int nameLen = spec->name[0];
- return nameLen >= 6 &&
- !memcmp( spec->name + nameLen - 5, ".dfont", 6 );
+ return nameLen >= 6 &&
+ !ft_memcmp( spec->name + nameLen - 5, ".dfont", 6 );
}
#endif
@@ -169,7 +170,7 @@
while ( *q )
{
- if ( isupper( *q ) )
+ if ( ft_isupper( *q ) )
{
if ( count )
max = 3;
@@ -308,7 +309,7 @@
if ( ps_name_len != 0 )
{
- memcpy(ps_name, names[0] + 1, ps_name_len);
+ ft_memcpy(ps_name, names[0] + 1, ps_name_len);
ps_name[ps_name_len] = 0;
}
if ( style->indexes[0] > 1 )
@@ -316,7 +317,7 @@
unsigned char* suffixes = names[style->indexes[0] - 1];
- for ( i = 1; i < suffixes[0]; i++ )
+ for ( i = 1; i <= suffixes[0]; i++ )
{
unsigned char* s;
size_t j = suffixes[i] - 1;
@@ -329,7 +330,7 @@
if ( s_len != 0 && ps_name_len + s_len < sizeof ( ps_name ) )
{
- memcpy( ps_name + ps_name_len, s + 1, s_len );
+ ft_memcpy( ps_name + ps_name_len, s + 1, s_len );
ps_name_len += s_len;
ps_name[ps_name_len] = 0;
}
@@ -587,6 +588,7 @@
size_t sfnt_size;
FT_Error error = 0;
FT_Memory memory = library->memory;
+ int is_cff;
sfnt = GetResource( 'sfnt', sfnt_id );
@@ -605,11 +607,16 @@
HUnlock( sfnt );
ReleaseResource( sfnt );
+ is_cff = sfnt_size > 4 && sfnt_data[0] == 'O' &&
+ sfnt_data[1] == 'T' &&
+ sfnt_data[2] == 'T' &&
+ sfnt_data[3] == 'O';
+
return open_face_from_buffer( library,
sfnt_data,
sfnt_size,
face_index,
- "truetype",
+ is_cff ? "cff" : "truetype",
aface );
}
@@ -655,7 +662,7 @@
}
-#if TARGET_API_MAC_CARBON
+#ifdef TARGET_API_MAC_CARBON
/* Create a new FT_Face from a file spec to a suitcase file. */
static FT_Error
@@ -901,7 +908,7 @@
return FT_New_Face_From_LWFN( library, &spec, face_index, aface );
}
-#if TARGET_API_MAC_CARBON
+#ifdef TARGET_API_MAC_CARBON
if ( is_dfont( &spec ) )
return FT_New_Face_From_dfont( library, &spec, face_index, aface );
Index: ftmm.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftmm.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/ftmm.c 14 Nov 2003 16:48:24 -0000 1.1
+++ b/ftmm.c 23 Feb 2004 21:32:39 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* Multiple Master font support (body). */
/* */
-/* Copyright 1996-2001 by */
+/* Copyright 1996-2001, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -19,6 +19,7 @@
#include <ft2build.h>
#include FT_MULTIPLE_MASTERS_H
#include FT_INTERNAL_OBJECTS_H
+#include FT_SERVICE_MULTIPLE_MASTERS_H
/*************************************************************************/
@@ -31,15 +32,15 @@
#define FT_COMPONENT trace_mm
- /* documentation is in ftmm.h */
-
- FT_EXPORT_DEF( FT_Error )
- FT_Get_Multi_Master( FT_Face face,
- FT_Multi_Master *amaster )
+ static FT_Error
+ ft_face_get_mm_service( FT_Face face,
+ FT_Service_MultiMasters *aservice )
{
FT_Error error;
+ *aservice = NULL;
+
if ( !face )
return FT_Err_Invalid_Face_Handle;
@@ -47,14 +48,34 @@
if ( FT_HAS_MULTIPLE_MASTERS( face ) )
{
- FT_Driver driver = face->driver;
- FT_Get_MM_Func func;
+ FT_FACE_LOOKUP_SERVICE( face,
+ *aservice,
+ MULTI_MASTERS );
+ if ( aservice )
+ error = FT_Err_Ok;
+ }
- func = (FT_Get_MM_Func)driver->root.clazz->get_interface(
- FT_MODULE( driver ), "get_mm" );
- if ( func )
- error = func( face, amaster );
+ return error;
+ }
+
+
+ /* documentation is in ftmm.h */
+
+ FT_EXPORT_DEF( FT_Error )
+ FT_Get_Multi_Master( FT_Face face,
+ FT_Multi_Master *amaster )
+ {
+ FT_Error error;
+ FT_Service_MultiMasters service;
+
+
+ error = ft_face_get_mm_service( face, &service );
+ if ( !error )
+ {
+ error = FT_Err_Invalid_Argument;
+ if ( service->get_mm )
+ error = service->get_mm( face, amaster );
}
return error;
@@ -68,24 +89,16 @@
FT_UInt num_coords,
FT_Long* coords )
{
- FT_Error error;
-
-
- if ( !face )
- return FT_Err_Invalid_Face_Handle;
+ FT_Error error;
+ FT_Service_MultiMasters service;
- error = FT_Err_Invalid_Argument;
- if ( FT_HAS_MULTIPLE_MASTERS( face ) )
+ error = ft_face_get_mm_service( face, &service );
+ if ( !error )
{
- FT_Driver driver = face->driver;
- FT_Set_MM_Design_Func func;
-
-
- func = (FT_Set_MM_Design_Func)driver->root.clazz->get_interface(
- FT_MODULE( driver ), "set_mm_design" );
- if ( func )
- error = func( face, num_coords, coords );
+ error = FT_Err_Invalid_Argument;
+ if ( service->set_mm_design )
+ error = service->set_mm_design( face, num_coords, coords );
}
return error;
@@ -99,24 +112,16 @@
FT_UInt num_coords,
FT_Fixed* coords )
{
- FT_Error error;
-
-
- if ( !face )
- return FT_Err_Invalid_Face_Handle;
+ FT_Error error;
+ FT_Service_MultiMasters service;
- error = FT_Err_Invalid_Argument;
- if ( FT_HAS_MULTIPLE_MASTERS( face ) )
+ error = ft_face_get_mm_service( face, &service );
+ if ( !error )
{
- FT_Driver driver = face->driver;
- FT_Set_MM_Blend_Func func;
-
-
- func = (FT_Set_MM_Blend_Func)driver->root.clazz->get_interface(
- FT_MODULE( driver ), "set_mm_blend" );
- if ( func )
- error = func( face, num_coords, coords );
+ error = FT_Err_Invalid_Argument;
+ if ( service->set_mm_blend )
+ error = service->set_mm_blend( face, num_coords, coords );
}
return error;
Index: ftobjs.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftobjs.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/ftobjs.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/ftobjs.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* The FreeType private base classes (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -27,6 +27,34 @@
#include FT_TRUETYPE_IDS_H
#include FT_OUTLINE_H
[...1179 lines suppressed...]
+ FT_ASSERT( cur[0]->clazz );
+
+ if ( cur[0]->clazz->get_interface )
+ {
+ result = cur[0]->clazz->get_interface( cur[0], service_id );
+ if ( result != NULL )
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+
/* documentation is in ftmodule.h */
FT_EXPORT_DEF( FT_Error )
Index: ftoutln.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftoutln.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/ftoutln.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/ftoutln.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* FreeType outline management (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -26,6 +26,7 @@
#include <ft2build.h>
#include FT_OUTLINE_H
#include FT_INTERNAL_OBJECTS_H
+#include FT_TRIGONOMETRY_H
/*************************************************************************/
@@ -655,4 +656,142 @@
}
+ typedef struct FT_OrientationExtremumRec_
+ {
+ FT_Int index;
+ FT_Int pos;
+ FT_Int first;
+ FT_Int last;
+
+ } FT_OrientationExtremumRec;
+
+
+ static FT_Orientation
+ ft_orientation_extremum_compute( FT_OrientationExtremumRec* extremum,
+ FT_Outline* outline )
+ {
+ FT_Vector *point, *first, *last, *prev, *next;
+ FT_Vector* points = outline->points;
+ FT_Angle angle_in, angle_out;
+
+
+ /* compute the previous and next points in the same contour */
+ point = points + extremum->index;
+ first = points + extremum->first;
+ last = points + extremum->last;
+
+ do
+ {
+ prev = ( point == first ) ? last : point - 1;
+
+ if ( prev == point )
+ return FT_ORIENTATION_TRUETYPE; /* degenerate case */
+
+ } while ( prev->x != point->x || prev->y != point->y );
+
+ do
+ {
+ next = ( point == last ) ? first : point + 1;
+
+ if ( next == point )
+ return FT_ORIENTATION_TRUETYPE; /* shouldn't happen */
+
+ } while ( next->x != point->x || next->y != point->y );
+
+ /* now compute the orientation of the `out' vector relative */
+ /* to the `in' vector. */
+ angle_in = FT_Atan2( point->x - prev->x, point->y - prev->y );
+ angle_out = FT_Atan2( next->x - point->x, next->y - point->y );
+
+ return ( FT_Angle_Diff( angle_in, angle_out ) >= 0 )
+ ? FT_ORIENTATION_TRUETYPE
+ : FT_ORIENTATION_POSTSCRIPT;
+ }
+
+
+ FT_EXPORT_DEF( FT_Orientation )
+ FT_Outline_Get_Orientation( FT_Outline* outline )
+ {
+ FT_Orientation result = FT_ORIENTATION_TRUETYPE;
+
+
+ if ( outline && outline->n_points > 0 )
+ {
+ FT_OrientationExtremumRec xmin, ymin, xmax, ymax;
+ FT_Int n;
+ FT_Int first, last;
+ FT_Vector* points = outline->points;
+
+
+ xmin.pos = ymin.pos = +32768L;
+ xmax.pos = ymax.pos = -32768L;
+
+ xmin.index = ymin.index = xmax.index = ymax.index = -1;
+
+ first = 0;
+ for ( n = 0; n < outline->n_contours; n++, first = last + 1 )
+ {
+ last = outline->contours[n];
+
+ /* skip single-point contours; these are degenerated cases */
+ if ( last > first + 1 )
+ {
+ FT_Int i;
+
+
+ for ( i = first; i < last; i++ )
+ {
+ FT_Pos x = points[i].x;
+ FT_Pos y = points[i].y;
+
+
+ if ( x < xmin.pos )
+ {
+ xmin.pos = x;
+ xmin.index = i;
+ xmin.first = first;
+ xmin.last = last;
+ }
+ if ( x > xmax.pos )
+ {
+ xmax.pos = x;
+ xmax.index = i;
+ xmax.first = first;
+ xmax.last = last;
+ }
+ if ( y < ymin.pos )
+ {
+ ymin.pos = y;
+ ymin.index = i;
+ ymin.first = first;
+ ymin.last = last;
+ }
+ if ( y > ymax.pos )
+ {
+ ymax.pos = y;
+ ymax.index = i;
+ ymax.first = first;
+ ymax.last = last;
+ }
+ }
+ }
+
+ if ( xmin.index >= 0 )
+ result = ft_orientation_extremum_compute( &xmin, outline );
+
+ else if ( xmax.index >= 0 )
+ result = ft_orientation_extremum_compute( &xmax, outline );
+
+ else if ( ymin.index >= 0 )
+ result = ft_orientation_extremum_compute( &ymin, outline );
+
+ else if ( ymax.index >= 0 )
+ result = ft_orientation_extremum_compute( &ymax, outline );
+ }
+ }
+
+ return result;
+ }
+
+
/* END */
Index: ftpfr.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftpfr.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/ftpfr.c 25 Nov 2003 19:27:19 -0000 1.1
+++ b/ftpfr.c 23 Feb 2004 21:32:39 -0000 1.1.4.1
@@ -2,9 +2,9 @@
/* */
/* ftpfr.c */
/* */
-/* FreeType API for accessing PFR-specific data */
+/* FreeType API for accessing PFR-specific data (body). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -16,48 +16,36 @@
/***************************************************************************/
#include <ft2build.h>
-#include FT_INTERNAL_PFR_H
#include FT_INTERNAL_OBJECTS_H
+#include FT_SERVICE_PFR_H
- /* check the format */
- static FT_Error
- ft_pfr_check( FT_Face face,
- FT_PFR_Service *aservice )
+ /* check the format */
+ static FT_Service_PfrMetrics
+ ft_pfr_check( FT_Face face )
{
- FT_Error error = FT_Err_Bad_Argument;
+ FT_Service_PfrMetrics service;
- if ( face && face->driver )
- {
- FT_Module module = (FT_Module) face->driver;
- const char* name = module->clazz->module_name;
- if ( name[0] == 'p' &&
- name[1] == 'f' &&
- name[2] == 'r' &&
- name[4] == 0 )
- {
- *aservice = (FT_PFR_Service) module->clazz->module_interface;
- error = 0;
- }
- }
- return error;
- }
+ FT_FACE_LOOKUP_SERVICE( face, service, PFR_METRICS );
+ return service;
+ }
FT_EXPORT_DEF( FT_Error )
- FT_Get_PFR_Metrics( FT_Face face,
- FT_UInt *aoutline_resolution,
- FT_UInt *ametrics_resolution,
- FT_Fixed *ametrics_x_scale,
- FT_Fixed *ametrics_y_scale )
+ FT_Get_PFR_Metrics( FT_Face face,
+ FT_UInt *aoutline_resolution,
+ FT_UInt *ametrics_resolution,
+ FT_Fixed *ametrics_x_scale,
+ FT_Fixed *ametrics_y_scale )
{
- FT_Error error;
- FT_PFR_Service service;
+ FT_Error error = FT_Err_Ok;
+ FT_Service_PfrMetrics service;
- error = ft_pfr_check( face, &service );
- if ( !error )
+
+ service = ft_pfr_check( face );
+ if ( service )
{
error = service->get_metrics( face,
aoutline_resolution,
@@ -65,41 +53,74 @@
ametrics_x_scale,
ametrics_y_scale );
}
+ else if ( face )
+ {
+ FT_Fixed x_scale, y_scale;
+
+
+ /* this is not a PFR font */
+ *aoutline_resolution = face->units_per_EM;
+ *ametrics_resolution = face->units_per_EM;
+
+ x_scale = y_scale = 0x10000L;
+ if ( face->size )
+ {
+ x_scale = face->size->metrics.x_scale;
+ y_scale = face->size->metrics.y_scale;
+ }
+ *ametrics_x_scale = x_scale;
+ *ametrics_y_scale = y_scale;
+ }
+ else
+ error = FT_Err_Invalid_Argument;
+
return error;
}
+
FT_EXPORT_DEF( FT_Error )
FT_Get_PFR_Kerning( FT_Face face,
FT_UInt left,
FT_UInt right,
FT_Vector *avector )
{
- FT_Error error;
- FT_PFR_Service service;
+ FT_Error error;
+ FT_Service_PfrMetrics service;
- error = ft_pfr_check( face, &service );
- if ( !error )
- {
+
+ service = ft_pfr_check( face );
+ if ( service )
error = service->get_kerning( face, left, right, avector );
- }
+ else if ( face )
+ error = FT_Get_Kerning( face, left, right,
+ FT_KERNING_UNSCALED, avector );
+ else
+ error = FT_Err_Invalid_Argument;
+
return error;
}
FT_EXPORT_DEF( FT_Error )
- FT_Get_PFR_Advance( FT_Face face,
- FT_UInt gindex,
- FT_Pos *aadvance )
+ FT_Get_PFR_Advance( FT_Face face,
+ FT_UInt gindex,
+ FT_Pos *aadvance )
{
- FT_Error error;
- FT_PFR_Service service;
+ FT_Error error;
+ FT_Service_PfrMetrics service;
- error = ft_pfr_check( face, &service );
- if ( !error )
+
+ service = ft_pfr_check( face );
+ if ( service )
{
error = service->get_advance( face, gindex, aadvance );
}
+ else
+ /* XXX: TODO: PROVIDE ADVANCE-LOADING METHOD TO ALL FONT DRIVERS */
+ error = FT_Err_Invalid_Argument;
+
return error;
}
+
/* END */
Index: ftsynth.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftsynth.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/ftsynth.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/ftsynth.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* FreeType synthesizing code for emboldening and slanting (body). */
/* */
-/* Copyright 2000-2001 by */
+/* Copyright 2000-2001, 2002 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -82,14 +82,14 @@
/* we need to compute the `previous' and `next' point */
/* for these extrema. */
- cur = outline->points + n;
- prev = cur - 1;
- next = cur + 1;
+ cur = outline->points + n;
+ prev = cur - 1;
+ next = cur + 1;
first = 0;
for ( c = 0; c < outline->n_contours; c++ )
{
- last = outline->contours[c];
+ last = outline->contours[c];
if ( n == first )
prev = outline->points + last;
Index: fttrigon.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/fttrigon.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/fttrigon.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/fttrigon.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* FreeType trigonometric functions (body). */
/* */
-/* Copyright 2001 by */
+/* Copyright 2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -71,10 +71,10 @@
val = ( val >= 0 ) ? val : -val;
v1 = (FT_UInt32)val >> 16;
- v2 = (FT_UInt32)val & 0xFFFF;
+ v2 = (FT_UInt32)val & 0xFFFFL;
k1 = FT_TRIG_SCALE >> 16; /* constant */
- k2 = FT_TRIG_SCALE & 0xFFFF; /* constant */
+ k2 = FT_TRIG_SCALE & 0xFFFFL; /* constant */
hi = k1 * v1;
lo1 = k1 * v2 + k2 * v1; /* can't overflow */
@@ -356,6 +356,14 @@
}
+ /* these macros return 0 for positive numbers,
+ and -1 for negative ones */
+#define FT_SIGN_LONG( x ) ( (x) >> ( FT_SIZEOF_LONG * 8 - 1 ) )
+#define FT_SIGN_INT( x ) ( (x) >> ( FT_SIZEOF_INT * 8 - 1 ) )
+#define FT_SIGN_INT32( x ) ( (x) >> 31 )
+#define FT_SIGN_INT16( x ) ( (x) >> 15 )
+
+
/* documentation is in fttrigon.h */
FT_EXPORT_DEF( void )
@@ -376,10 +384,13 @@
v.x = ft_trig_downscale( v.x );
v.y = ft_trig_downscale( v.y );
- if ( shift >= 0 )
+ if ( shift > 0 )
{
- vec->x = v.x >> shift;
- vec->y = v.y >> shift;
+ FT_Int32 half = 1L << ( shift - 1 );
+
+
+ vec->x = ( v.x + half + FT_SIGN_LONG( v.x ) ) >> shift;
+ vec->y = ( v.y + half + FT_SIGN_LONG( v.y ) ) >> shift;
}
else
{
Index: fttype1.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/fttype1.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/fttype1.c 26 Nov 2003 22:48:25 -0000 1.1.4.1
+++ b/fttype1.c 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* FreeType utility file for PS names support (body). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_TYPE42_TYPES_H
#include FT_INTERNAL_OBJECTS_H
+#include FT_INTERNAL_SERVICE_H
+#include FT_SERVICE_POSTSCRIPT_INFO_H
/* documentation is in t1tables.h */
@@ -28,56 +28,39 @@
FT_Get_PS_Font_Info( FT_Face face,
PS_FontInfoRec* afont_info )
{
- PS_FontInfo font_info = NULL;
- FT_Error error = FT_Err_Invalid_Argument;
- const char* driver_name;
+ FT_Error error = FT_Err_Invalid_Argument;
- if ( face && face->driver && face->driver->root.clazz )
- {
- driver_name = face->driver->root.clazz->module_name;
- if ( ft_strcmp( driver_name, "type1" ) == 0 )
- font_info = &((T1_Face)face)->type1.font_info;
- else if ( ft_strcmp( driver_name, "t1cid" ) == 0 )
- font_info = &((CID_Face)face)->cid.font_info;
- else if ( ft_strcmp( driver_name, "type42" ) == 0 )
- font_info = &((T42_Face)face)->type1.font_info;
- }
- if ( font_info != NULL )
+ if ( face )
{
- *afont_info = *font_info;
- error = FT_Err_Ok;
+ FT_Service_PsInfo service = NULL;
+
+
+ FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO );
+
+ if ( service && service->ps_get_font_info )
+ error = service->ps_get_font_info( face, afont_info );
}
return error;
}
- /* XXX: Bad hack, but I didn't want to change several drivers here. */
-
/* documentation is in t1tables.h */
FT_EXPORT_DEF( FT_Int )
FT_Has_PS_Glyph_Names( FT_Face face )
{
- FT_Int result = 0;
- const char* driver_name;
+ FT_Int result = 0;
+ FT_Service_PsInfo service = NULL;
- if ( face && face->driver && face->driver->root.clazz )
+ if ( face )
{
- /* Currently, only the type1, type42, and cff drivers provide */
- /* reliable glyph names... */
-
- /* We could probably hack the TrueType driver to recognize */
- /* certain cases where the glyph names are most certainly */
- /* correct (e.g. using a 20 or 22 format `post' table), but */
- /* this will probably happen later... */
+ FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO );
- driver_name = face->driver->root.clazz->module_name;
- result = ( ft_strcmp( driver_name, "type1" ) == 0 ||
- ft_strcmp( driver_name, "type42" ) == 0 ||
- ft_strcmp( driver_name, "cff" ) == 0 );
+ if ( service && service->ps_has_glyph_names )
+ result = service->ps_has_glyph_names( face );
}
return result;
Index: ftwinfnt.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftwinfnt.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/ftwinfnt.c 25 Nov 2003 19:27:19 -0000 1.1
+++ b/ftwinfnt.c 23 Feb 2004 21:32:39 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* FreeType API for accessing Windows FNT specific info (body). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -18,36 +18,30 @@
#include <ft2build.h>
#include FT_WINFONTS_H
-#include FT_INTERNAL_FNT_TYPES_H
#include FT_INTERNAL_OBJECTS_H
+#include FT_SERVICE_WINFNT_H
FT_EXPORT_DEF( FT_Error )
- FT_Get_WinFNT_Header( FT_Face face,
- FT_WinFNT_HeaderRec *header )
+ FT_Get_WinFNT_Header( FT_Face face,
+ FT_WinFNT_HeaderRec *header )
{
- FT_Error error;
+ FT_Service_WinFnt service;
+ FT_Error error;
+
error = FT_Err_Invalid_Argument;
- if ( face != NULL && face->driver != NULL )
+ if ( face != NULL )
{
- FT_Module driver = (FT_Module) face->driver;
-
+ FT_FACE_LOOKUP_SERVICE( face, service, WINFNT );
- if ( driver->clazz && driver->clazz->module_name &&
- ft_strcmp( driver->clazz->module_name, "winfonts" ) == 0 )
+ if ( service != NULL )
{
- FNT_Size size = (FNT_Size)face->size;
- FNT_Font font = size->font;
-
- if (font)
- {
- FT_MEM_COPY( header, &font->header, sizeof(*header) );
- error = 0;
- }
+ error = service->get_header( face, header );
}
}
+
return error;
}
Index: ftxf86.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/ftxf86.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/ftxf86.c 14 Nov 2003 16:48:24 -0000 1.1
+++ b/ftxf86.c 23 Feb 2004 21:32:39 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* FreeType utility file for X11 support (body). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -19,59 +19,16 @@
#include <ft2build.h>
#include FT_XFREE86_H
#include FT_INTERNAL_OBJECTS_H
-
- /* XXX: This really is a sad hack, but I didn't want to change every */
- /* driver just to support this at the moment, since other important */
- /* changes are coming anyway. */
-
- typedef struct FT_FontFormatRec_
- {
- const char* driver_name;
- const char* format_name;
-
- } FT_FontFormatRec;
-
+#include FT_SERVICE_XFREE86_NAME_H
FT_EXPORT_DEF( const char* )
FT_Get_X11_Font_Format( FT_Face face )
{
- static const FT_FontFormatRec font_formats[] =
- {
- { "type1", "Type 1" },
- { "truetype", "TrueType" },
- { "bdf", "BDF" },
- { "pcf", "PCF" },
- { "type42", "Type 42" },
- { "cidtype1", "CID Type 1" },
- { "cff", "CFF" },
- { "pfr", "PFR" },
- { "winfonts", "Windows FNT" }
- };
-
const char* result = NULL;
- if ( face && face->driver )
- {
- FT_Module driver = (FT_Module)face->driver;
-
-
- if ( driver->clazz && driver->clazz->module_name )
- {
- FT_Int n;
- FT_Int count = sizeof( font_formats ) / sizeof ( font_formats[0] );
-
-
- result = driver->clazz->module_name;
-
- for ( n = 0; n < count; n++ )
- if ( ft_strcmp( result, font_formats[n].driver_name ) == 0 )
- {
- result = font_formats[n].format_name;
- break;
- }
- }
- }
+ if ( face )
+ FT_FACE_FIND_SERVICE( face, result, XF86_NAME );
return result;
}
Index: rules.mk
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/base/rules.mk,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/rules.mk 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/rules.mk 23 Feb 2004 21:32:39 -0000 1.1.4.2
@@ -3,7 +3,7 @@
#
-# Copyright 1996-2000, 2002 by
+# Copyright 1996-2000, 2002, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
@@ -25,23 +25,23 @@
# BASE_H is defined in freetype.mk to simplify the dependency rules.
-BASE_COMPILE := $(FT_COMPILE) $I$(SRC_)base
+BASE_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(SRC_DIR)/base)
# Base layer sources
#
# ftsystem, ftinit, and ftdebug are handled by freetype.mk
#
-BASE_SRC := $(BASE_)ftcalc.c \
- $(BASE_)fttrigon.c \
- $(BASE_)ftutil.c \
- $(BASE_)ftstream.c \
- $(BASE_)ftgloadr.c \
- $(BASE_)ftoutln.c \
- $(BASE_)ftobjs.c \
- $(BASE_)ftapi.c \
- $(BASE_)ftnames.c \
- $(BASE_)ftdbgmem.c
+BASE_SRC := $(BASE_DIR)/ftcalc.c \
+ $(BASE_DIR)/fttrigon.c \
+ $(BASE_DIR)/ftutil.c \
+ $(BASE_DIR)/ftstream.c \
+ $(BASE_DIR)/ftgloadr.c \
+ $(BASE_DIR)/ftoutln.c \
+ $(BASE_DIR)/ftobjs.c \
+ $(BASE_DIR)/ftapi.c \
+ $(BASE_DIR)/ftnames.c \
+ $(BASE_DIR)/ftdbgmem.c
# Base layer `extensions' sources
#
@@ -49,19 +49,19 @@
# object. It will then be linked to the final executable only if one of its
# symbols is used by the application.
#
-BASE_EXT_SRC := $(BASE_)ftglyph.c \
- $(BASE_)ftmm.c \
- $(BASE_)ftbdf.c \
- $(BASE_)fttype1.c \
- $(BASE_)ftxf86.c \
- $(BASE_)ftpfr.c \
- $(BASE_)ftstroker.c \
- $(BASE_)ftwinfnt.c \
- $(BASE_)ftbbox.c
+BASE_EXT_SRC := $(BASE_DIR)/ftglyph.c \
+ $(BASE_DIR)/ftmm.c \
+ $(BASE_DIR)/ftbdf.c \
+ $(BASE_DIR)/fttype1.c \
+ $(BASE_DIR)/ftxf86.c \
+ $(BASE_DIR)/ftpfr.c \
+ $(BASE_DIR)/ftstroke.c \
+ $(BASE_DIR)/ftwinfnt.c \
+ $(BASE_DIR)/ftbbox.c
# Default extensions objects
#
-BASE_EXT_OBJ := $(BASE_EXT_SRC:$(BASE_)%.c=$(OBJ_)%.$O)
+BASE_EXT_OBJ := $(BASE_EXT_SRC:$(BASE_DIR)/%.c=$(OBJ_DIR)/%.$O)
# Base layer object(s)
@@ -72,23 +72,24 @@
# BASE_OBJ_S is used during `single' builds (the whole base layer is
# compiled as a single object file using ftbase.c).
#
-BASE_OBJ_M := $(BASE_SRC:$(BASE_)%.c=$(OBJ_)%.$O)
-BASE_OBJ_S := $(OBJ_)ftbase.$O
+BASE_OBJ_M := $(BASE_SRC:$(BASE_DIR)/%.c=$(OBJ_DIR)/%.$O)
+BASE_OBJ_S := $(OBJ_DIR)/ftbase.$O
# Base layer root source file for single build
#
-BASE_SRC_S := $(BASE_)ftbase.c
+BASE_SRC_S := $(BASE_DIR)/ftbase.c
# Base layer - single object build
#
$(BASE_OBJ_S): $(BASE_SRC_S) $(BASE_SRC) $(FREETYPE_H)
- $(BASE_COMPILE) $T$@ $(BASE_SRC_S)
+ $(BASE_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(BASE_SRC_S))
# Multiple objects build + extensions
#
-$(OBJ_)%.$O: $(BASE_)%.c $(FREETYPE_H)
- $(BASE_COMPILE) $T$@ $<
+$(OBJ_DIR)/%.$O: $(BASE_DIR)/%.c $(FREETYPE_H)
+ $(BASE_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
+
# EOF
- Previous message: [Xorg-commit] xc/extras/freetype2/src/autohint ahglobal.c,1.1.4.1,1.1.4.2 ahglobal.h,1.1.4.1,1.1.4.2 ahglyph.c,1.1.4.1,1.1.4.2 ahhint.c,1.1.4.1,1.1.4.2 ahloader.h,1.1,1.1.4.1 ahmodule.c,1.1.4.1,1.1.4.2 ahtypes.h,1.1.4.1,1.1.4.2 rules.mk,1.1,1.1.4.1
- Next message: [Xorg-commit] xc/extras/freetype2/src/bdf bdf.h,1.1,1.1.4.1 bdfdrivr.c,1.1.4.1,1.1.4.2 bdfdrivr.h,1.1,1.1.4.1 bdflib.c,1.1.4.1,1.1.4.2 rules.mk,1.1,1.1.4.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the xorg-commit
mailing list