#include "visitors/facevisitor-colrv1.h"
#include <cassert>
#include <unordered_set>
#include "utils/logging.h"
#include <freetype/freetype.h>
#include <freetype/ftcolor.h>
template<> struct std::hash<FT_OpaquePaint>
{ … };
template<> struct std::equal_to<FT_OpaquePaint>
{ … };
namespace {
VisitedSet;
constexpr unsigned long MAX_TRAVERSE_GLYPHS = …;
class ScopedSetInserter
: private freetype::noncopyable
{ … };
bool colrv1_start_glyph( const FT_Face& ft_face,
uint16_t glyph_id,
FT_Color_Root_Transform root_transform,
VisitedSet& visited_set );
void iterate_color_stops ( FT_Face face,
FT_ColorStopIterator* color_stop_iterator )
{ … }
void colrv1_draw_paint( FT_Face face,
FT_COLR_Paint colrv1_paint )
{ … }
bool colrv1_traverse_paint( FT_Face face,
FT_OpaquePaint opaque_paint,
VisitedSet& visited_set )
{ … }
bool colrv1_start_glyph( const FT_Face& ft_face,
uint16_t glyph_id,
FT_Color_Root_Transform root_transform,
VisitedSet& visited_set )
{ … }
}
void
freetype::FaceVisitorColrV1::
run( Unique_FT_Face face )
{ … }