Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3918 Serge 1
/***************************************************************************/
2
/*                                                                         */
3
/*  ftcsbits.h                                                             */
4
/*                                                                         */
5
/*    A small-bitmap cache (specification).                                */
6
/*                                                                         */
7
/*  Copyright 2000-2001, 2002, 2003, 2006, 2011 by                         */
8
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9
/*                                                                         */
10
/*  This file is part of the FreeType project, and may only be used,       */
11
/*  modified, and distributed under the terms of the FreeType project      */
12
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13
/*  this file you indicate that you have read the license and              */
14
/*  understand and accept it fully.                                        */
15
/*                                                                         */
16
/***************************************************************************/
17
 
18
 
19
#ifndef __FTCSBITS_H__
20
#define __FTCSBITS_H__
21
 
22
 
23
#include 
24
#include FT_CACHE_H
25
#include "ftcglyph.h"
26
 
27
 
28
FT_BEGIN_HEADER
29
 
30
#define FTC_SBIT_ITEMS_PER_NODE  16
31
 
32
  typedef struct  FTC_SNodeRec_
33
  {
34
    FTC_GNodeRec  gnode;
35
    FT_UInt       count;
36
    FTC_SBitRec   sbits[FTC_SBIT_ITEMS_PER_NODE];
37
 
38
  } FTC_SNodeRec, *FTC_SNode;
39
 
40
 
41
#define FTC_SNODE( x )         ( (FTC_SNode)( x ) )
42
#define FTC_SNODE_GINDEX( x )  FTC_GNODE( x )->gindex
43
#define FTC_SNODE_FAMILY( x )  FTC_GNODE( x )->family
44
 
45
  typedef FT_UInt
46
  (*FTC_SFamily_GetCountFunc)( FTC_Family   family,
47
                               FTC_Manager  manager );
48
 
49
  typedef FT_Error
50
  (*FTC_SFamily_LoadGlyphFunc)( FTC_Family   family,
51
                                FT_UInt      gindex,
52
                                FTC_Manager  manager,
53
                                FT_Face     *aface );
54
 
55
  typedef struct  FTC_SFamilyClassRec_
56
  {
57
    FTC_MruListClassRec        clazz;
58
    FTC_SFamily_GetCountFunc   family_get_count;
59
    FTC_SFamily_LoadGlyphFunc  family_load_glyph;
60
 
61
  } FTC_SFamilyClassRec;
62
 
63
  typedef const FTC_SFamilyClassRec*  FTC_SFamilyClass;
64
 
65
#define FTC_SFAMILY_CLASS( x )  ((FTC_SFamilyClass)(x))
66
 
67
#define FTC_CACHE__SFAMILY_CLASS( x )  \
68
          FTC_SFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS( x )->family_class )
69
 
70
 
71
  FT_LOCAL( void )
72
  FTC_SNode_Free( FTC_SNode  snode,
73
                  FTC_Cache  cache );
74
 
75
  FT_LOCAL( FT_Error )
76
  FTC_SNode_New( FTC_SNode   *psnode,
77
                 FTC_GQuery   gquery,
78
                 FTC_Cache    cache );
79
 
80
#if 0
81
  FT_LOCAL( FT_ULong )
82
  FTC_SNode_Weight( FTC_SNode  inode );
83
#endif
84
 
85
 
86
#ifdef FTC_INLINE
87
 
88
  FT_LOCAL( FT_Bool )
89
  FTC_SNode_Compare( FTC_SNode   snode,
90
                     FTC_GQuery  gquery,
91
                     FTC_Cache   cache,
92
                     FT_Bool*    list_changed);
93
 
94
#endif
95
 
96
  /* */
97
 
98
FT_END_HEADER
99
 
100
#endif /* __FTCSBITS_H__ */
101
 
102
 
103
/* END */