* include/freetype/fterrdef.h (FT_Err_Missing_Property): New error code. * include/freetype/ftmodapi.h (FT_Property_Set, FT_Property_Get): New API. * include/freetype/internal/services/svprop.h: New file. * include/freetype/internal/ftserv.h (FT_SERVICE_PROPERTIES_H): New macro. * src/base/ftobjs.c: Include FT_SERVICE_PROPERTIES_H. (ft_property_do, FT_Property_Set, FT_Property_Get): New functions.2.6.5
parent
403515edcf
commit
0f8fd88e83
6 changed files with 346 additions and 10 deletions
@ -0,0 +1,81 @@ |
||||
/***************************************************************************/ |
||||
/* */ |
||||
/* svprop.h */ |
||||
/* */ |
||||
/* The FreeType property service (specification). */ |
||||
/* */ |
||||
/* Copyright 2012 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 __SVPROP_H__ |
||||
#define __SVPROP_H__ |
||||
|
||||
|
||||
FT_BEGIN_HEADER |
||||
|
||||
|
||||
#define FT_SERVICE_ID_PROPERTIES "properties" |
||||
|
||||
|
||||
typedef FT_Error |
||||
(*FT_Properties_SetFunc)( FT_Library library, |
||||
const char* property_name, |
||||
const void* value ); |
||||
|
||||
typedef FT_Error |
||||
(*FT_Properties_GetFunc)( FT_Library library, |
||||
const char* property_name, |
||||
void* value ); |
||||
|
||||
|
||||
FT_DEFINE_SERVICE( Properties ) |
||||
{ |
||||
FT_Properties_SetFunc set_property; |
||||
FT_Properties_GetFunc get_property; |
||||
}; |
||||
|
||||
|
||||
#ifndef FT_CONFIG_OPTION_PIC |
||||
|
||||
#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ |
||||
set_property_, \
|
||||
get_property_ ) \
|
||||
static const FT_Service_PropertiesRec class_ = \
|
||||
{ \
|
||||
set_property_, \
|
||||
get_property_ \
|
||||
}; |
||||
|
||||
#else /* FT_CONFIG_OPTION_PIC */ |
||||
|
||||
#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ |
||||
set_property_, \
|
||||
get_property_ ) \
|
||||
void \
|
||||
FT_Init_Class_ ## class_( FT_Service_PropertiesRec* clazz ) \
|
||||
{ \
|
||||
clazz->set_property = set_property_; \
|
||||
clazz->get_property = get_property_; \
|
||||
} |
||||
|
||||
#endif /* FT_CONFIG_OPTION_PIC */ |
||||
|
||||
/* */ |
||||
|
||||
|
||||
FT_END_HEADER |
||||
|
||||
|
||||
#endif /* __SVPROP_H__ */ |
||||
|
||||
|
||||
/* END */ |
Loading…
Reference in new issue