xref: /aosp_15_r20/external/freetype/src/sfnt/ttcolr.h (revision 63949dbd25bcc50c4e1178497ff9e9574d44fc5a)
1 /****************************************************************************
2  *
3  * ttcolr.h
4  *
5  *   TrueType and OpenType colored glyph layer support (specification).
6  *
7  * Copyright (C) 2018-2023 by
8  * David Turner, Robert Wilhelm, and Werner Lemberg.
9  *
10  * Originally written by Shao Yu Zhang <[email protected]>.
11  *
12  * This file is part of the FreeType project, and may only be used,
13  * modified, and distributed under the terms of the FreeType project
14  * license, LICENSE.TXT.  By continuing to use, modify, or distribute
15  * this file you indicate that you have read the license and
16  * understand and accept it fully.
17  *
18  */
19 
20 
21 #ifndef __TTCOLR_H__
22 #define __TTCOLR_H__
23 
24 
25 #include "ttload.h"
26 
27 
28 FT_BEGIN_HEADER
29 
30 
31   FT_LOCAL( FT_Error )
32   tt_face_load_colr( TT_Face    face,
33                      FT_Stream  stream );
34 
35   FT_LOCAL( void )
36   tt_face_free_colr( TT_Face  face );
37 
38   FT_LOCAL( FT_Bool )
39   tt_face_get_colr_layer( TT_Face            face,
40                           FT_UInt            base_glyph,
41                           FT_UInt           *aglyph_index,
42                           FT_UInt           *acolor_index,
43                           FT_LayerIterator*  iterator );
44 
45   FT_LOCAL( FT_Bool )
46   tt_face_get_colr_glyph_paint( TT_Face                  face,
47                                 FT_UInt                  base_glyph,
48                                 FT_Color_Root_Transform  root_transform,
49                                 FT_OpaquePaint*          paint );
50 
51   FT_LOCAL( FT_Bool )
52   tt_face_get_color_glyph_clipbox( TT_Face      face,
53                                    FT_UInt      base_glyph,
54                                    FT_ClipBox*  clip_box );
55 
56   FT_LOCAL( FT_Bool )
57   tt_face_get_paint_layers( TT_Face            face,
58                             FT_LayerIterator*  iterator,
59                             FT_OpaquePaint*    paint );
60 
61   FT_LOCAL( FT_Bool )
62   tt_face_get_colorline_stops( TT_Face                face,
63                                FT_ColorStop*          color_stop,
64                                FT_ColorStopIterator*  iterator );
65 
66   FT_LOCAL( FT_Bool )
67   tt_face_get_paint( TT_Face         face,
68                      FT_OpaquePaint  opaque_paint,
69                      FT_COLR_Paint*  paint );
70 
71   FT_LOCAL( FT_Error )
72   tt_face_colr_blend_layer( TT_Face       face,
73                             FT_UInt       color_index,
74                             FT_GlyphSlot  dstSlot,
75                             FT_GlyphSlot  srcSlot );
76 
77 
78 FT_END_HEADER
79 
80 
81 #endif /* __TTCOLR_H__ */
82 
83 /* END */
84