fontservices/freetypefontrasteriser/freetype2/include/freetype/internal/ftserv.h
author MattD <mattd@symbian.org>
Mon, 08 Feb 2010 15:30:13 +0000
changeset 66 18fedaf0292a
permissions -rw-r--r--
Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
66
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     1
/***************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     2
/*                                                                         */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     3
/*  ftserv.h                                                               */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     4
/*                                                                         */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     5
/*    The FreeType services (specification only).                          */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     6
/*                                                                         */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     7
/*  Copyright 2003, 2004, 2005, 2006 by                                    */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     8
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
     9
/*                                                                         */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    10
/*  This file is part of the FreeType project, and may only be used,       */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    11
/*  modified, and distributed under the terms of the FreeType project      */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    12
/*  license, FTL.TXT.  By continuing to use, modify, or distribute     */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    13
/*  this file you indicate that you have read the license and              */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    14
/*  understand and accept it fully.                                        */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    15
/*                                                                         */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    16
/***************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    17
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    18
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    19
  /*                                                                       */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    20
  /*  Each module can export one or more `services'.  Each service is      */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    21
  /*  identified by a constant string and modeled by a pointer; the latter */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    22
  /*  generally corresponds to a structure containing function pointers.   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    23
  /*                                                                       */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    24
  /*  Note that a service's data cannot be a mere function pointer because */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    25
  /*  in C it is possible that function pointers might be implemented      */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    26
  /*  differently than data pointers (e.g. 48 bits instead of 32).         */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    27
  /*                                                                       */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    28
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    29
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    30
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    31
#ifndef __FTSERV_H__
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    32
#define __FTSERV_H__
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    33
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    34
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    35
FT_BEGIN_HEADER
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    36
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    37
#if defined( _MSC_VER )      /* Visual C++ (and Intel C++) */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    38
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    39
  /* we disable the warning `conditional expression is constant' here */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    40
  /* in order to compile cleanly with the maximum level of warnings   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    41
#pragma warning( disable : 4127 )
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    42
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    43
#endif /* _MSC_VER */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    44
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    45
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    46
   * @macro:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    47
   *   FT_FACE_FIND_SERVICE
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    48
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    49
   * @description:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    50
   *   This macro is used to look up a service from a face's driver module.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    51
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    52
   * @input:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    53
   *   face ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    54
   *     The source face handle.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    55
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    56
   *   id ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    57
   *     A string describing the service as defined in the service's
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    58
   *     header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    59
   *     `multi-masters').  It is automatically prefixed with
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    60
   *     `FT_SERVICE_ID_'.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    61
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    62
   * @output:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    63
   *   ptr ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    64
   *     A variable that receives the service pointer.  Will be NULL
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    65
   *     if not found.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    66
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    67
#ifdef __cplusplus
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    68
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    69
#define FT_FACE_FIND_SERVICE( face, ptr, id )                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    70
  FT_BEGIN_STMNT                                                            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    71
    FT_Module    module = FT_MODULE( FT_FACE( face )->driver );             \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    72
    FT_Pointer   _tmp_  = NULL;                                             \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    73
    FT_Pointer*  _pptr_ = (FT_Pointer*)&(ptr);                              \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    74
                                                                            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    75
                                                                            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    76
    if ( module->clazz->get_interface )                                     \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    77
      _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    78
    *_pptr_ = _tmp_;                                                        \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    79
  FT_END_STMNT
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    80
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    81
#else /* !C++ */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    82
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    83
#define FT_FACE_FIND_SERVICE( face, ptr, id )                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    84
  FT_BEGIN_STMNT                                                            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    85
    FT_Module   module = FT_MODULE( FT_FACE( face )->driver );              \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    86
    FT_Pointer  _tmp_  = NULL;                                              \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    87
                                                                            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    88
    if ( module->clazz->get_interface )                                     \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    89
      _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    90
    ptr = _tmp_;                                                            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    91
  FT_END_STMNT
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    92
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    93
#endif /* !C++ */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    94
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    95
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    96
   * @macro:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    97
   *   FT_FACE_FIND_GLOBAL_SERVICE
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    98
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
    99
   * @description:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   100
   *   This macro is used to look up a service from all modules.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   101
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   102
   * @input:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   103
   *   face ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   104
   *     The source face handle.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   105
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   106
   *   id ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   107
   *     A string describing the service as defined in the service's
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   108
   *     header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   109
   *     `multi-masters').  It is automatically prefixed with
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   110
   *     `FT_SERVICE_ID_'.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   111
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   112
   * @output:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   113
   *   ptr ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   114
   *     A variable that receives the service pointer.  Will be NULL
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   115
   *     if not found.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   116
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   117
#ifdef __cplusplus
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   118
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   119
#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id )               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   120
  FT_BEGIN_STMNT                                                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   121
    FT_Module    module = FT_MODULE( FT_FACE( face )->driver );    \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   122
    FT_Pointer   _tmp_;                                            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   123
    FT_Pointer*  _pptr_ = (FT_Pointer*)&(ptr);                     \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   124
                                                                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   125
                                                                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   126
    _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   127
    *_pptr_ = _tmp_;                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   128
  FT_END_STMNT
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   129
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   130
#else /* !C++ */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   131
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   132
#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id )               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   133
  FT_BEGIN_STMNT                                                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   134
    FT_Module   module = FT_MODULE( FT_FACE( face )->driver );     \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   135
    FT_Pointer  _tmp_;                                             \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   136
                                                                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   137
                                                                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   138
    _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   139
    ptr   = _tmp_;                                                 \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   140
  FT_END_STMNT
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   141
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   142
#endif /* !C++ */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   143
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   144
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   145
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   146
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   147
  /*****                                                               *****/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   148
  /*****         S E R V I C E   D E S C R I P T O R S                 *****/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   149
  /*****                                                               *****/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   150
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   151
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   152
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   153
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   154
   *  The following structure is used to _describe_ a given service
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   155
   *  to the library.  This is useful to build simple static service lists.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   156
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   157
  typedef struct  FT_ServiceDescRec_
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   158
  {
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   159
    const char*  serv_id;     /* service name         */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   160
    const void*  serv_data;   /* service pointer/data */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   161
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   162
  } FT_ServiceDescRec;
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   163
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   164
  typedef const FT_ServiceDescRec*  FT_ServiceDesc;
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   165
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   166
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   167
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   168
   *  Parse a list of FT_ServiceDescRec descriptors and look for
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   169
   *  a specific service by ID.  Note that the last element in the
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   170
   *  array must be { NULL, NULL }, and that the function should
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   171
   *  return NULL if the service isn't available.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   172
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   173
   *  This function can be used by modules to implement their
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   174
   *  `get_service' method.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   175
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   176
  FT_BASE( FT_Pointer )
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   177
  ft_service_list_lookup( FT_ServiceDesc  service_descriptors,
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   178
                          const char*     service_id );
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   179
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   180
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   181
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   182
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   183
  /*****                                                               *****/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   184
  /*****             S E R V I C E S   C A C H E                       *****/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   185
  /*****                                                               *****/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   186
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   187
  /*************************************************************************/
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   188
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   189
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   190
   *  This structure is used to store a cache for several frequently used
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   191
   *  services.  It is the type of `face->internal->services'.  You
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   192
   *  should only use FT_FACE_LOOKUP_SERVICE to access it.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   193
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   194
   *  All fields should have the type FT_Pointer to relax compilation
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   195
   *  dependencies.  We assume the developer isn't completely stupid.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   196
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   197
   *  Each field must be named `service_XXXX' where `XXX' corresponds to
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   198
   *  the correct FT_SERVICE_ID_XXXX macro.  See the definition of
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   199
   *  FT_FACE_LOOKUP_SERVICE below how this is implemented.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   200
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   201
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   202
  typedef struct  FT_ServiceCacheRec_
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   203
  {
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   204
    FT_Pointer  service_POSTSCRIPT_FONT_NAME;
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   205
    FT_Pointer  service_MULTI_MASTERS;
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   206
    FT_Pointer  service_GLYPH_DICT;
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   207
    FT_Pointer  service_PFR_METRICS;
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   208
    FT_Pointer  service_WINFNT;
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   209
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   210
  } FT_ServiceCacheRec, *FT_ServiceCache;
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   211
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   212
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   213
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   214
   *  A magic number used within the services cache.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   215
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   216
#define FT_SERVICE_UNAVAILABLE  ((FT_Pointer)-2)  /* magic number */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   217
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   218
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   219
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   220
   * @macro:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   221
   *   FT_FACE_LOOKUP_SERVICE
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   222
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   223
   * @description:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   224
   *   This macro is used to lookup a service from a face's driver module
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   225
   *   using its cache.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   226
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   227
   * @input:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   228
   *   face::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   229
   *     The source face handle containing the cache.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   230
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   231
   *   field ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   232
   *     The field name in the cache.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   233
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   234
   *   id ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   235
   *     The service ID.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   236
   *
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   237
   * @output:
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   238
   *   ptr ::
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   239
   *     A variable receiving the service data.  NULL if not available.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   240
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   241
#ifdef __cplusplus
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   242
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   243
#define FT_FACE_LOOKUP_SERVICE( face, ptr, id )                \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   244
  FT_BEGIN_STMNT                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   245
    FT_Pointer   svc;                                          \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   246
    FT_Pointer*  Pptr = (FT_Pointer*)&(ptr);                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   247
                                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   248
                                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   249
    svc = FT_FACE( face )->internal->services. service_ ## id; \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   250
    if ( svc == FT_SERVICE_UNAVAILABLE )                       \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   251
      svc = NULL;                                              \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   252
    else if ( svc == NULL )                                    \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   253
    {                                                          \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   254
      FT_FACE_FIND_SERVICE( face, svc, id );                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   255
                                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   256
      FT_FACE( face )->internal->services. service_ ## id =    \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   257
        (FT_Pointer)( svc != NULL ? svc                        \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   258
                                  : FT_SERVICE_UNAVAILABLE );  \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   259
    }                                                          \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   260
    *Pptr = svc;                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   261
  FT_END_STMNT
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   262
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   263
#else /* !C++ */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   264
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   265
#define FT_FACE_LOOKUP_SERVICE( face, ptr, id )                \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   266
  FT_BEGIN_STMNT                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   267
    FT_Pointer  svc;                                           \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   268
                                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   269
                                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   270
    svc = FT_FACE( face )->internal->services. service_ ## id; \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   271
    if ( svc == FT_SERVICE_UNAVAILABLE )                       \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   272
      svc = NULL;                                              \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   273
    else if ( svc == NULL )                                    \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   274
    {                                                          \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   275
      FT_FACE_FIND_SERVICE( face, svc, id );                   \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   276
                                                               \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   277
      FT_FACE( face )->internal->services. service_ ## id =    \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   278
        (FT_Pointer)( svc != NULL ? svc                        \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   279
                                  : FT_SERVICE_UNAVAILABLE );  \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   280
    }                                                          \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   281
    ptr = svc;                                                 \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   282
  FT_END_STMNT
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   283
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   284
#endif /* !C++ */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   285
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   286
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   287
   *  A macro used to define new service structure types.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   288
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   289
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   290
#define FT_DEFINE_SERVICE( name )            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   291
  typedef struct FT_Service_ ## name ## Rec_ \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   292
    FT_Service_ ## name ## Rec ;             \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   293
  typedef struct FT_Service_ ## name ## Rec_ \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   294
    const * FT_Service_ ## name ;            \
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   295
  struct FT_Service_ ## name ## Rec_
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   296
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   297
  /* */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   298
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   299
  /*
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   300
   *  The header files containing the services.
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   301
   */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   302
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   303
#define FT_SERVICE_BDF_H                <freetype/internal/services/svbdf.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   304
#define FT_SERVICE_GLYPH_DICT_H         <freetype/internal/services/svgldict.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   305
#define FT_SERVICE_GX_VALIDATE_H        <freetype/internal/services/svgxval.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   306
#define FT_SERVICE_KERNING_H            <freetype/internal/services/svkern.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   307
#define FT_SERVICE_MULTIPLE_MASTERS_H   <freetype/internal/services/svmm.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   308
#define FT_SERVICE_OPENTYPE_VALIDATE_H  <freetype/internal/services/svotval.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   309
#define FT_SERVICE_PFR_H                <freetype/internal/services/svpfr.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   310
#define FT_SERVICE_POSTSCRIPT_CMAPS_H   <freetype/internal/services/svpscmap.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   311
#define FT_SERVICE_POSTSCRIPT_INFO_H    <freetype/internal/services/svpsinfo.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   312
#define FT_SERVICE_POSTSCRIPT_NAME_H    <freetype/internal/services/svpostnm.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   313
#define FT_SERVICE_SFNT_H               <freetype/internal/services/svsfnt.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   314
#define FT_SERVICE_TRUETYPE_ENGINE_H    <freetype/internal/services/svtteng.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   315
#define FT_SERVICE_TT_CMAP_H            <freetype/internal/services/svttcmap.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   316
#define FT_SERVICE_WINFNT_H             <freetype/internal/services/svwinfnt.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   317
#define FT_SERVICE_XFREE86_NAME_H       <freetype/internal/services/svxf86nm.h>
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   318
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   319
 /* */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   320
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   321
FT_END_HEADER
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   322
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   323
#endif /* __FTSERV_H__ */
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   324
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   325
18fedaf0292a Bug 1543 - Freetype.dll cannot be built. Added Freetype back in (same fix as in SFL repo)
MattD <mattd@symbian.org>
parents:
diff changeset
   326
/* END */