89 lines
2.0 KiB
C
89 lines
2.0 KiB
C
/****************************************************************************
|
|
*
|
|
* svsfnt.h
|
|
*
|
|
* The FreeType SFNT table loading service (specification).
|
|
*
|
|
* Copyright (C) 2003-2021 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.
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef SVSFNT_H_
|
|
#define SVSFNT_H_
|
|
|
|
#include <freetype/internal/ftserv.h>
|
|
#include <freetype/tttables.h>
|
|
|
|
|
|
FT_BEGIN_HEADER
|
|
|
|
|
|
/*
|
|
* SFNT table loading service.
|
|
*/
|
|
|
|
#define FT_SERVICE_ID_SFNT_TABLE "sfnt-table"
|
|
|
|
|
|
/*
|
|
* Used to implement FT_Load_Sfnt_Table().
|
|
*/
|
|
typedef FT_Error
|
|
(*FT_SFNT_TableLoadFunc)( FT_Face face,
|
|
FT_ULong tag,
|
|
FT_Long offset,
|
|
FT_Byte* buffer,
|
|
FT_ULong* length );
|
|
|
|
/*
|
|
* Used to implement FT_Get_Sfnt_Table().
|
|
*/
|
|
typedef void*
|
|
(*FT_SFNT_TableGetFunc)( FT_Face face,
|
|
FT_Sfnt_Tag tag );
|
|
|
|
|
|
/*
|
|
* Used to implement FT_Sfnt_Table_Info().
|
|
*/
|
|
typedef FT_Error
|
|
(*FT_SFNT_TableInfoFunc)( FT_Face face,
|
|
FT_UInt idx,
|
|
FT_ULong *tag,
|
|
FT_ULong *offset,
|
|
FT_ULong *length );
|
|
|
|
|
|
FT_DEFINE_SERVICE( SFNT_Table )
|
|
{
|
|
FT_SFNT_TableLoadFunc load_table;
|
|
FT_SFNT_TableGetFunc get_table;
|
|
FT_SFNT_TableInfoFunc table_info;
|
|
};
|
|
|
|
|
|
#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \
|
|
static const FT_Service_SFNT_TableRec class_ = \
|
|
{ \
|
|
load_, get_, info_ \
|
|
};
|
|
|
|
/* */
|
|
|
|
|
|
FT_END_HEADER
|
|
|
|
|
|
#endif /* SVSFNT_H_ */
|
|
|
|
|
|
/* END */
|