From 9e883cf6689a723ccfb996c97e92be358eccb11c Mon Sep 17 00:00:00 2001 From: David Turner Date: Tue, 21 May 2002 20:50:53 +0000 Subject: [PATCH] * include/freetype/internal/ftbdf.h, src/base/ftbdf.c, src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk: Adding a new API called "FT_Get_BDF_Charset_ID" to retrieve BDF-specific strings from a face. This is much cleaner than accessing the internal types "BDF_Public_Face" defined in FT_INTERNAL_BDF_TYPES_H --- ChangeLog | 10 ++++++++++ include/freetype/ftbdf.h | 16 ++++++++++++++++ src/base/Jamfile | 2 +- src/base/descrip.mms | 2 +- src/base/ftbdf.c | 40 ++++++++++++++++++++++++++++++++++++++++ src/base/rules.mk | 1 + 6 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 include/freetype/ftbdf.h create mode 100644 src/base/ftbdf.c diff --git a/ChangeLog b/ChangeLog index ef9a34671..26932aa05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2002-05-21 David Turner + + * include/freetype/internal/ftbdf.h, src/base/ftbdf.c, + src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk: + + Adding a new API called "FT_Get_BDF_Charset_ID" to retrieve + BDF-specific strings from a face. This is much cleaner + than accessing the internal types "BDF_Public_Face" defined in + FT_INTERNAL_BDF_TYPES_H + 2002-05-21 Werner Lemberg * src/bdf/README: Mention Microsoft's SBIT tool. diff --git a/include/freetype/ftbdf.h b/include/freetype/ftbdf.h new file mode 100644 index 000000000..8dfb9fc24 --- /dev/null +++ b/include/freetype/ftbdf.h @@ -0,0 +1,16 @@ +#ifndef __FT_BDF_H__ +#define __FT_BDF_H__ + +#include +#include FT_FREETYPE_H + +FT_BEGIN_HEADER + + FT_EXPORT( FT_Error ) + FT_Get_BDF_Charset_ID( FT_Face face, + const char* *acharset_encoding, + const char* *acharset_registry ); + +FT_END_HEADER + +#endif /* __FT_BDF_H__ */ diff --git a/src/base/Jamfile b/src/base/Jamfile index 79fdb226b..76efd28dc 100644 --- a/src/base/Jamfile +++ b/src/base/Jamfile @@ -23,7 +23,7 @@ SubDirHdrs [ FT2_SubDir src base ] ; # Add the optional/replaceable files. # -Library $(FT2_LIB) : ftsystem.c ftinit.c ftglyph.c ftmm.c +Library $(FT2_LIB) : ftsystem.c ftinit.c ftglyph.c ftmm.c ftbdf.c ftbbox.c ftdebug.c ; # Add Macintosh-specific file to the library when necessary. diff --git a/src/base/descrip.mms b/src/base/descrip.mms index efa5b07f3..83bb50804 100644 --- a/src/base/descrip.mms +++ b/src/base/descrip.mms @@ -15,7 +15,7 @@ CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.builds.vms],[--.include],[--.src.base]) -OBJS=ftbase.obj,ftinit.obj,ftglyph.obj,ftdebug.obj,ftmm.obj +OBJS=ftbase.obj,ftinit.obj,ftglyph.obj,ftdebug.obj,ftbdf.obj,ftmm.obj all : $(OBJS) library [--.lib]freetype.olb $(OBJS) diff --git a/src/base/ftbdf.c b/src/base/ftbdf.c new file mode 100644 index 000000000..558970c35 --- /dev/null +++ b/src/base/ftbdf.c @@ -0,0 +1,40 @@ +#include +#include FT_INTERNAL_BDF_TYPES_H +#include FT_INTERNAL_OBJECTS_H + + + FT_EXPORT_DEF( FT_Error ) + FT_Get_BDF_Charset_ID( FT_Face face, + const char* *acharset_encoding, + const char* *acharset_registry ) + { + FT_Error error; + const char* encoding = NULL; + const char* registry = NULL; + + + error = FT_Err_Invalid_Argument; + + if ( face != NULL && face->driver != NULL ) + { + FT_Module driver = (FT_Module) face->driver; + + if ( driver->clazz && driver->clazz->module_name && + ft_strcmp( driver->clazz->module_name, "bdf" ) == 0 ) + { + BDF_Public_Face bdf_face = (BDF_Public_Face) face; + + encoding = (const char*) bdf_face->charset_encoding; + registry = (const char*) bdf_face->charset_registry; + error = 0; + } + } + + if ( acharset_encoding ) + *acharset_encoding = encoding; + + if ( acharset_registry ) + *acharset_registry = registry; + + return error; + } diff --git a/src/base/rules.mk b/src/base/rules.mk index b89bc80ee..b27611df7 100644 --- a/src/base/rules.mk +++ b/src/base/rules.mk @@ -51,6 +51,7 @@ BASE_SRC := $(BASE_)ftcalc.c \ # BASE_EXT_SRC := $(BASE_)ftglyph.c \ $(BASE_)ftmm.c \ + $(BASE_)ftbdf.c \ $(BASE_)ftbbox.c # Default extensions objects