ReactOS  0.4.15-dev-1177-g6cb3b62
gxvmorx0.c
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* gxvmorx0.c */
4 /* */
5 /* TrueTypeGX/AAT morx table validation */
6 /* body for type0 (Indic Script Rearrangement) subtable. */
7 /* */
8 /* Copyright 2005-2018 by */
9 /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */
10 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
11 /* */
12 /* This file is part of the FreeType project, and may only be used, */
13 /* modified, and distributed under the terms of the FreeType project */
14 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
15 /* this file you indicate that you have read the license and */
16 /* understand and accept it fully. */
17 /* */
18 /***************************************************************************/
19 
20 /***************************************************************************/
21 /* */
22 /* gxvalid is derived from both gxlayout module and otvalid module. */
23 /* Development of gxlayout is supported by the Information-technology */
24 /* Promotion Agency(IPA), Japan. */
25 /* */
26 /***************************************************************************/
27 
28 
29 #include "gxvmorx.h"
30 
31 
32  /*************************************************************************/
33  /* */
34  /* The macro FT_COMPONENT is used in trace mode. It is an implicit */
35  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
36  /* messages during execution. */
37  /* */
38 #undef FT_COMPONENT
39 #define FT_COMPONENT trace_gxvmorx
40 
41 
42  static void
46  GXV_XStateTable_GlyphOffsetCPtr glyphOffset_p,
49  GXV_Validator gxvalid )
50  {
51 #ifdef GXV_LOAD_UNUSED_VARS
52  FT_UShort markFirst;
53  FT_UShort dontAdvance;
54  FT_UShort markLast;
55 #endif
57 #ifdef GXV_LOAD_UNUSED_VARS
58  FT_UShort verb;
59 #endif
60 
61  FT_UNUSED( state );
62  FT_UNUSED( glyphOffset_p );
63  FT_UNUSED( table );
64  FT_UNUSED( limit );
65 
66 
67 #ifdef GXV_LOAD_UNUSED_VARS
68  markFirst = (FT_UShort)( ( flags >> 15 ) & 1 );
69  dontAdvance = (FT_UShort)( ( flags >> 14 ) & 1 );
70  markLast = (FT_UShort)( ( flags >> 13 ) & 1 );
71 #endif
72 
73  reserved = (FT_UShort)( flags & 0x1FF0 );
74 #ifdef GXV_LOAD_UNUSED_VARS
75  verb = (FT_UShort)( flags & 0x000F );
76 #endif
77 
78  if ( 0 < reserved )
79  {
80  GXV_TRACE(( " non-zero bits found in reserved range\n" ));
82  }
83  }
84 
85 
86  FT_LOCAL_DEF( void )
89  GXV_Validator gxvalid )
90  {
91  FT_Bytes p = table;
92 
93 
95  "morx chain subtable type0 (Indic-Script Rearrangement)" );
96 
98 
99  gxvalid->xstatetable.optdata = NULL;
100  gxvalid->xstatetable.optdata_load_func = NULL;
101  gxvalid->xstatetable.subtable_setup_func = NULL;
102  gxvalid->xstatetable.entry_glyphoffset_fmt = GXV_GLYPHOFFSET_NONE;
103  gxvalid->xstatetable.entry_validate_func =
105 
106  gxv_XStateTable_validate( p, limit, gxvalid );
107 
108  GXV_EXIT;
109  }
110 
111 
112 /* END */
#define GXV_NAME_ENTER(name)
Definition: gxvcommn.h:301
#define GXV_TRACE(s)
Definition: gxvcommn.h:304
GLenum GLsizei GLenum GLenum const GLvoid * table
Definition: glext.h:5644
static void gxv_morx_subtable_type0_entry_validate(FT_UShort state, FT_UShort flags, GXV_XStateTable_GlyphOffsetCPtr glyphOffset_p, FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
Definition: gxvmorx0.c:43
GLint limit
Definition: glext.h:10326
r reserved
Definition: btrfs.c:2940
smooth NULL
Definition: ftsmooth.c:416
#define GXV_EXIT
Definition: gxvcommn.h:302
#define FT_LOCAL_DEF(x)
Definition: ftconfig.h:388
const FT_Byte * FT_Bytes
Definition: fttypes.h:165
GLbitfield flags
Definition: glext.h:7161
static int state
Definition: maze.c:121
#define GXV_STATETABLE_HEADER_SIZE
Definition: gxvcommn.h:520
#define FT_INVALID_DATA
Definition: ftvalid.h:150
gxv_morx_subtable_type0_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
Definition: gxvmorx0.c:87
GLfloat GLfloat p
Definition: glext.h:8902
unsigned short FT_UShort
Definition: fttypes.h:209
#define FT_UNUSED(arg)
Definition: ftconfig.h:101
#define GXV_LIMIT_CHECK(_count)
Definition: gxvcommn.h:272
gxv_XStateTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
Definition: gxvcommn.c:1554