/[freetype]/freetype2/include/freetype/internal/ftserv.h
ViewVC logotype

Diff of /freetype2/include/freetype/internal/ftserv.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.16 by freetype, Thu Mar 3 13:58:13 2005 UTC revision 1.17 by wl, Thu Mar 3 23:05:29 2005 UTC
# Line 4  Line 4 
4  /*                                                                         */  /*                                                                         */
5  /*    The FreeType services (specification only).                          */  /*    The FreeType services (specification only).                          */
6  /*                                                                         */  /*                                                                         */
7  /*  Copyright 2003, 2004 by                                                */  /*  Copyright 2003, 2004, 2005 by                                          */
8  /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */  /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9  /*                                                                         */  /*                                                                         */
10  /*  This file is part of the FreeType project, and may only be used,       */  /*  This file is part of the FreeType project, and may only be used,       */
# Line 61  FT_BEGIN_HEADER Line 61  FT_BEGIN_HEADER
61    
62  #define FT_FACE_FIND_SERVICE( face, ptr, id )                               \  #define FT_FACE_FIND_SERVICE( face, ptr, id )                               \
63    FT_BEGIN_STMNT                                                            \    FT_BEGIN_STMNT                                                            \
64      FT_Module    module = FT_MODULE( FT_FACE(face)->driver );               \      FT_Module    module = FT_MODULE( FT_FACE( face )->driver );             \
65      FT_Pointer   _tmp_  = NULL;                                             \      FT_Pointer   _tmp_  = NULL;                                             \
66      FT_Pointer*  _pptr_ = (FT_Pointer*)&(ptr);                              \      FT_Pointer*  _pptr_ = (FT_Pointer*)&(ptr);                              \
67                                                                              \                                                                              \
68                                                                                \
69      if ( module->clazz->get_interface )                                     \      if ( module->clazz->get_interface )                                     \
70        _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \        _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \
71      *_pptr_ = _tmp_;                                                        \      *_pptr_ = _tmp_;                                                        \
# Line 74  FT_BEGIN_HEADER Line 75  FT_BEGIN_HEADER
75    
76  #define FT_FACE_FIND_SERVICE( face, ptr, id )                               \  #define FT_FACE_FIND_SERVICE( face, ptr, id )                               \
77    FT_BEGIN_STMNT                                                            \    FT_BEGIN_STMNT                                                            \
78      FT_Module    module = FT_MODULE( FT_FACE(face)->driver );               \      FT_Module   module = FT_MODULE( FT_FACE( face )->driver );              \
79      FT_Pointer   _tmp_  = NULL;                                             \      FT_Pointer  _tmp_  = NULL;                                              \
80                                                                              \                                                                              \
81      if ( module->clazz->get_interface )                                     \      if ( module->clazz->get_interface )                                     \
82        _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \        _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \
# Line 110  FT_BEGIN_HEADER Line 111  FT_BEGIN_HEADER
111    
112  #define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id )               \  #define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id )               \
113    FT_BEGIN_STMNT                                                   \    FT_BEGIN_STMNT                                                   \
114      FT_Module    module = FT_MODULE( FT_FACE(face)->driver );      \      FT_Module   module = FT_MODULE( FT_FACE( face )->driver );     \
115      FT_Pointer  _tmp_;                                             \      FT_Pointer  _tmp_;                                             \
116      FT_Pointer  _pptr_ = (FT_Pointer*)&(ptr);                      \      FT_Pointer  _pptr_ = (FT_Pointer*)&(ptr);                      \
117                                                                     \                                                                     \
118                                                                       \
119      _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \      _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \
120      *_pptr_ = _tmp_;                                               \      *_pptr_ = _tmp_;                                               \
121    FT_END_STMNT    FT_END_STMNT
# Line 122  FT_BEGIN_HEADER Line 124  FT_BEGIN_HEADER
124    
125  #define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id )               \  #define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id )               \
126    FT_BEGIN_STMNT                                                   \    FT_BEGIN_STMNT                                                   \
127      FT_Module    module = FT_MODULE( FT_FACE(face)->driver );      \      FT_Module   module = FT_MODULE( FT_FACE( face )->driver );     \
128      FT_Pointer  _tmp_;                                             \      FT_Pointer  _tmp_;                                             \
129                                                                     \                                                                     \
130                                                                       \
131      _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \      _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \
132      ptr   = _tmp_;                                                 \      ptr   = _tmp_;                                                 \
133    FT_END_STMNT    FT_END_STMNT
134    
135  #endif /* !C++ */  #endif /* !C++ */
136    
137    
138    /*************************************************************************/    /*************************************************************************/
139    /*************************************************************************/    /*************************************************************************/
140    /*****                                                               *****/    /*****                                                               *****/
# Line 229  FT_BEGIN_HEADER Line 233  FT_BEGIN_HEADER
233     */     */
234  #ifdef __cplusplus  #ifdef __cplusplus
235    
236  #define FT_FACE_LOOKUP_SERVICE( face, ptr, id )               \  #define FT_FACE_LOOKUP_SERVICE( face, ptr, id )                \
237    FT_BEGIN_STMNT                                              \    FT_BEGIN_STMNT                                               \
238      FT_Pointer   svc;                                         \      FT_Pointer   svc;                                          \
239      FT_Pointer*  Pptr = (FT_Pointer*)&(ptr);                  \      FT_Pointer*  Pptr = (FT_Pointer*)&(ptr);                   \
240                                                                \                                                                 \
241                                                                \                                                                 \
242      svc = FT_FACE(face)->internal->services. service_ ## id;  \      svc = FT_FACE( face )->internal->services. service_ ## id; \
243      if ( svc == FT_SERVICE_UNAVAILABLE )                      \      if ( svc == FT_SERVICE_UNAVAILABLE )                       \
244        svc = NULL;                                             \        svc = NULL;                                              \
245      else if ( svc == NULL )                                   \      else if ( svc == NULL )                                    \
246      {                                                         \      {                                                          \
247        FT_FACE_FIND_SERVICE( face, svc, id );                  \        FT_FACE_FIND_SERVICE( face, svc, id );                   \
248                                                                \                                                                 \
249        FT_FACE(face)->internal->services. service_ ## id =     \        FT_FACE( face )->internal->services. service_ ## id =    \
250          (FT_Pointer)( svc != NULL ? svc                       \          (FT_Pointer)( svc != NULL ? svc                        \
251                                    : FT_SERVICE_UNAVAILABLE ); \                                    : FT_SERVICE_UNAVAILABLE );  \
252      }                                                         \      }                                                          \
253      *Pptr = svc;                                              \      *Pptr = svc;                                               \
254    FT_END_STMNT    FT_END_STMNT
255    
256  #else /* !C++ */  #else /* !C++ */
257    
258  #define FT_FACE_LOOKUP_SERVICE( face, ptr, id )               \  #define FT_FACE_LOOKUP_SERVICE( face, ptr, id )                \
259    FT_BEGIN_STMNT                                              \    FT_BEGIN_STMNT                                               \
260      FT_Pointer   svc;                                         \      FT_Pointer  svc;                                           \
261                                                                \                                                                 \
262                                                                \                                                                 \
263      svc = FT_FACE(face)->internal->services. service_ ## id;  \      svc = FT_FACE( face )->internal->services. service_ ## id; \
264      if ( svc == FT_SERVICE_UNAVAILABLE )                      \      if ( svc == FT_SERVICE_UNAVAILABLE )                       \
265        svc = NULL;                                             \        svc = NULL;                                              \
266      else if ( svc == NULL )                                   \      else if ( svc == NULL )                                    \
267      {                                                         \      {                                                          \
268        FT_FACE_FIND_SERVICE( face, svc, id );                  \        FT_FACE_FIND_SERVICE( face, svc, id );                   \
269                                                                \                                                                 \
270        FT_FACE(face)->internal->services. service_ ## id =     \        FT_FACE( face )->internal->services. service_ ## id =    \
271          (FT_Pointer)( svc != NULL ? svc                       \          (FT_Pointer)( svc != NULL ? svc                        \
272                                    : FT_SERVICE_UNAVAILABLE ); \                                    : FT_SERVICE_UNAVAILABLE );  \
273      }                                                         \      }                                                          \
274      ptr = svc;                                                \      ptr = svc;                                                 \
275    FT_END_STMNT    FT_END_STMNT
276    
277  #endif /* !C++ */  #endif /* !C++ */

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26