From 6732f05593930621081092c7e2c2ec8ec043cc2d Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Sun, 10 Jun 2018 09:12:24 +0200 Subject: [PATCH] Implement `FT_Palette_Get'. * src/base/ftcolor.c: New file. * src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC), src/base/ftbase.c: Add `ftcolor.c'. --- ChangeLog | 9 +++++++ src/base/Jamfile | 1 + src/base/ftbase.c | 1 + src/base/ftcolor.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++ src/base/rules.mk | 1 + 5 files changed, 78 insertions(+) create mode 100644 src/base/ftcolor.c diff --git a/ChangeLog b/ChangeLog index d295c25c1..eadba3971 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2018-06-10 Werner Lemberg + + Implement `FT_Palette_Get'. + + * src/base/ftcolor.c: New file. + + * src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC), + src/base/ftbase.c: Add `ftcolor.c'. + 2018-06-10 Werner Lemberg * src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks. diff --git a/src/base/Jamfile b/src/base/Jamfile index 4994c1b4c..5bee6e2fc 100644 --- a/src/base/Jamfile +++ b/src/base/Jamfile @@ -20,6 +20,7 @@ SubDir FT2_TOP $(FT2_SRC_DIR) base ; _sources = basepic ftadvanc ftcalc + ftcolor ftdbgmem ftfntfmt ftgloadr diff --git a/src/base/ftbase.c b/src/base/ftbase.c index 47412fc55..5f7d818aa 100644 --- a/src/base/ftbase.c +++ b/src/base/ftbase.c @@ -21,6 +21,7 @@ #include "ftadvanc.c" #include "ftcalc.c" +#include "ftcolor.c" #include "ftdbgmem.c" #include "ftfntfmt.c" #include "ftgloadr.c" diff --git a/src/base/ftcolor.c b/src/base/ftcolor.c new file mode 100644 index 000000000..441eda3dc --- /dev/null +++ b/src/base/ftcolor.c @@ -0,0 +1,66 @@ +/**************************************************************************** + * + * ftcolor.c + * + * FreeType's glyph color management (body). + * + * Copyright 2018 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. + * + */ + + +#include +#include FT_INTERNAL_DEBUG_H +#include FT_INTERNAL_TRUETYPE_TYPES_H +#include FT_COLOR_H + + +#ifdef TT_CONFIG_OPTION_COLOR_LAYERS + + static + const FT_Palette null_palette = { 0, NULL, NULL, 0, NULL }; + + + /* documentation is in ftcolor.h */ + + FT_EXPORT_DEF( FT_Error ) + FT_Palette_Get( FT_Face face, + FT_Palette *apalette ) + { + if ( !face ) + return FT_THROW( Invalid_Face_Handle ); + if ( !apalette) + return FT_THROW( Invalid_Argument ); + + if ( FT_IS_SFNT( face ) ) + *apalette = ( (TT_Face)face )->palette; + else + *apalette = null_palette; + + return FT_Err_Ok; + } + +#else /* !TT_CONFIG_OPTION_COLOR_LAYERS */ + + FT_EXPORT_DEF( FT_Error ) + FT_Palette_Get( FT_Face face, + FT_Palette *apalette ) + { + FT_UNUSED( face ); + FT_UNUSED( apalette ); + + + return FT_THROW( Unimplemented_Feature ); + } + +#endif /* !TT_CONFIG_OPTION_COLOR_LAYERS */ + + +/* END */ diff --git a/src/base/rules.mk b/src/base/rules.mk index 3bd2b889b..214fd778f 100644 --- a/src/base/rules.mk +++ b/src/base/rules.mk @@ -38,6 +38,7 @@ BASE_COMPILE := $(CC) $(ANSIFLAGS) \ # BASE_SRC := $(BASE_DIR)/ftadvanc.c \ $(BASE_DIR)/ftcalc.c \ + $(BASE_DIR)/ftcolor.c \ $(BASE_DIR)/ftdbgmem.c \ $(BASE_DIR)/ftfntfmt.c \ $(BASE_DIR)/ftgloadr.c \