| 
																	
																	
																	
																 | 
																@@ -1,5 +1,5 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																// stb_truetype.h - v0.6c - public domain
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																// authored from 2009-2012 by Sean Barrett / RAD Game Tools
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// stb_truetype.h - v0.8 - public domain
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// authored from 2009-2013 by Sean Barrett / RAD Game Tools
 | 
															
														
														
													
														
															
																 | 
																 | 
																//
 | 
																 | 
																 | 
																//
 | 
															
														
														
													
														
															
																 | 
																 | 
																//   This library processes TrueType files:
 | 
																 | 
																 | 
																//   This library processes TrueType files:
 | 
															
														
														
													
														
															
																 | 
																 | 
																//        parse files
 | 
																 | 
																 | 
																//        parse files
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -27,9 +27,15 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																//       stoiko (Haemimont Games)
 | 
																 | 
																 | 
																//       stoiko (Haemimont Games)
 | 
															
														
														
													
														
															
																 | 
																 | 
																//       Brian Hook 
 | 
																 | 
																 | 
																//       Brian Hook 
 | 
															
														
														
													
														
															
																 | 
																 | 
																//       Walter van Niftrik
 | 
																 | 
																 | 
																//       Walter van Niftrik
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																//       David Gow
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																//       David Given
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																//       Ivan-Assen Ivanov
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																//       Anthony Pesch
 | 
															
														
														
													
														
															
																 | 
																 | 
																//
 | 
																 | 
																 | 
																//
 | 
															
														
														
													
														
															
																 | 
																 | 
																// VERSION HISTORY
 | 
																 | 
																 | 
																// VERSION HISTORY
 | 
															
														
														
													
														
															
																 | 
																 | 
																//
 | 
																 | 
																 | 
																//
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																//   0.8  (2014-05-25) fix a few more warnings
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																//   0.7  (2013-09-25) bugfix: subpixel glyph bug fixed in 0.5 had come back
 | 
															
														
														
													
														
															
																 | 
																 | 
																//   0.6c (2012-07-24) improve documentation
 | 
																 | 
																 | 
																//   0.6c (2012-07-24) improve documentation
 | 
															
														
														
													
														
															
																 | 
																 | 
																//   0.6b (2012-07-20) fix a few more warnings
 | 
																 | 
																 | 
																//   0.6b (2012-07-20) fix a few more warnings
 | 
															
														
														
													
														
															
																 | 
																 | 
																//   0.6  (2012-07-17) fix warnings; added stbtt_ScaleForMappingEmToPixels,
 | 
																 | 
																 | 
																//   0.6  (2012-07-17) fix warnings; added stbtt_ScaleForMappingEmToPixels,
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -222,7 +228,7 @@ void my_stbtt_print(float x, float y, char *text) | 
															
														
														
													
														
															
																 | 
																 | 
																   while (*text) {
 | 
																 | 
																 | 
																   while (*text) {
 | 
															
														
														
													
														
															
																 | 
																 | 
																      if (*text >= 32 && *text < 128) {
 | 
																 | 
																 | 
																      if (*text >= 32 && *text < 128) {
 | 
															
														
														
													
														
															
																 | 
																 | 
																         stbtt_aligned_quad q;
 | 
																 | 
																 | 
																         stbtt_aligned_quad q;
 | 
															
														
														
													
														
															
																 | 
																 | 
																         stbtt_GetBakedQuad(cdata, 512,512, *text-32, &x,&y,&q,1);//1=opengl,0=old d3d
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																         stbtt_GetBakedQuad(cdata, 512,512, *text-32, &x,&y,&q,1);//1=opengl & d3d10+,0=d3d9
 | 
															
														
														
													
														
															
																 | 
																 | 
																         glTexCoord2f(q.s0,q.t1); glVertex2f(q.x0,q.y0);
 | 
																 | 
																 | 
																         glTexCoord2f(q.s0,q.t1); glVertex2f(q.x0,q.y0);
 | 
															
														
														
													
														
															
																 | 
																 | 
																         glTexCoord2f(q.s1,q.t1); glVertex2f(q.x1,q.y0);
 | 
																 | 
																 | 
																         glTexCoord2f(q.s1,q.t1); glVertex2f(q.x1,q.y0);
 | 
															
														
														
													
														
															
																 | 
																 | 
																         glTexCoord2f(q.s1,q.t0); glVertex2f(q.x1,q.y1);
 | 
																 | 
																 | 
																         glTexCoord2f(q.s1,q.t0); glVertex2f(q.x1,q.y1);
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -291,7 +297,7 @@ int main(int arg, char **argv) | 
															
														
														
													
														
															
																 | 
																 | 
																{
 | 
																 | 
																 | 
																{
 | 
															
														
														
													
														
															
																 | 
																 | 
																   stbtt_fontinfo font;
 | 
																 | 
																 | 
																   stbtt_fontinfo font;
 | 
															
														
														
													
														
															
																 | 
																 | 
																   int i,j,ascent,baseline,ch=0;
 | 
																 | 
																 | 
																   int i,j,ascent,baseline,ch=0;
 | 
															
														
														
													
														
															
																 | 
																 | 
																   float scale, xpos=0;
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																   float scale, xpos=2; // leave a little padding in case the character extends left
 | 
															
														
														
													
														
															
																 | 
																 | 
																   char *text = "Heljo World!";
 | 
																 | 
																 | 
																   char *text = "Heljo World!";
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																   fread(buffer, 1, 1000000, fopen("c:/windows/fonts/arialbd.ttf", "rb"));
 | 
																 | 
																 | 
																   fread(buffer, 1, 1000000, fopen("c:/windows/fonts/arialbd.ttf", "rb"));
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -363,10 +369,15 @@ int main(int arg, char **argv) | 
															
														
														
													
														
															
																 | 
																 | 
																   #define STBTT_iceil(x)    ((int) ceil(x))
 | 
																 | 
																 | 
																   #define STBTT_iceil(x)    ((int) ceil(x))
 | 
															
														
														
													
														
															
																 | 
																 | 
																   #endif
 | 
																 | 
																 | 
																   #endif
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																   #ifndef STBTT_sqrt
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																   #include <math.h>
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																   #define STBTT_sqrt(x)      sqrt(x)
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																   #endif
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																   // #define your own functions "STBTT_malloc" / "STBTT_free" to avoid malloc.h
 | 
																 | 
																 | 
																   // #define your own functions "STBTT_malloc" / "STBTT_free" to avoid malloc.h
 | 
															
														
														
													
														
															
																 | 
																 | 
																   #ifndef STBTT_malloc
 | 
																 | 
																 | 
																   #ifndef STBTT_malloc
 | 
															
														
														
													
														
															
																 | 
																 | 
																   #include <malloc.h>
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																   #define STBTT_malloc(x,u)  malloc(x)
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																   #include <stdlib.h>
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																   #define STBTT_malloc(x,u)  ((void)(u),malloc(x))
 | 
															
														
														
													
														
															
																 | 
																 | 
																   #define STBTT_free(x,u)    free(x)
 | 
																 | 
																 | 
																   #define STBTT_free(x,u)    free(x)
 | 
															
														
														
													
														
															
																 | 
																 | 
																   #endif
 | 
																 | 
																 | 
																   #endif
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -531,7 +542,6 @@ extern void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																extern int  stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2);
 | 
																 | 
																 | 
																extern int  stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2);
 | 
															
														
														
													
														
															
																 | 
																 | 
																// an additional amount to add to the 'advance' value between ch1 and ch2
 | 
																 | 
																 | 
																// an additional amount to add to the 'advance' value between ch1 and ch2
 | 
															
														
														
													
														
															
																 | 
																 | 
																// @TODO; for now always returns 0!
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																extern int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1);
 | 
																 | 
																 | 
																extern int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1);
 | 
															
														
														
													
														
															
																 | 
																 | 
																// Gets the bounding box of the visible part of the glyph, in unscaled coordinates
 | 
																 | 
																 | 
																// Gets the bounding box of the visible part of the glyph, in unscaled coordinates
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -573,6 +583,13 @@ extern int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codep | 
															
														
														
													
														
															
																 | 
																 | 
																extern int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **vertices);
 | 
																 | 
																 | 
																extern int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **vertices);
 | 
															
														
														
													
														
															
																 | 
																 | 
																// returns # of vertices and fills *vertices with the pointer to them
 | 
																 | 
																 | 
																// returns # of vertices and fills *vertices with the pointer to them
 | 
															
														
														
													
														
															
																 | 
																 | 
																//   these are expressed in "unscaled" coordinates
 | 
																 | 
																 | 
																//   these are expressed in "unscaled" coordinates
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																//
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// The shape is a series of countours. Each one starts with
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// a STBTT_moveto, then consists of a series of mixed
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// STBTT_lineto and STBTT_curveto segments. A lineto
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// draws a line from previous endpoint to its x,y; a curveto
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// draws a quadratic bezier from previous endpoint to
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// its x,y, using cx,cy as the bezier control point.
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																extern void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *vertices);
 | 
																 | 
																 | 
																extern void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *vertices);
 | 
															
														
														
													
														
															
																 | 
																 | 
																// frees the data allocated above
 | 
																 | 
																 | 
																// frees the data allocated above
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -915,10 +932,7 @@ int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint) | 
															
														
														
													
														
															
																 | 
																 | 
																      // now decrement to bias correctly to find smallest
 | 
																 | 
																 | 
																      // now decrement to bias correctly to find smallest
 | 
															
														
														
													
														
															
																 | 
																 | 
																      search -= 2;
 | 
																 | 
																 | 
																      search -= 2;
 | 
															
														
														
													
														
															
																 | 
																 | 
																      while (entrySelector) {
 | 
																 | 
																 | 
																      while (entrySelector) {
 | 
															
														
														
													
														
															
																 | 
																 | 
																         stbtt_uint16 start, end;
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																         searchRange >>= 1;
 | 
																 | 
																 | 
																         searchRange >>= 1;
 | 
															
														
														
													
														
															
																 | 
																 | 
																         start = ttUSHORT(data + search + 2 + segcount*2 + 2);
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																         end = ttUSHORT(data + search + 2);
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																         start = ttUSHORT(data + search + searchRange*2 + segcount*2 + 2);
 | 
																 | 
																 | 
																         start = ttUSHORT(data + search + searchRange*2 + segcount*2 + 2);
 | 
															
														
														
													
														
															
																 | 
																 | 
																         end = ttUSHORT(data + search + searchRange*2);
 | 
																 | 
																 | 
																         end = ttUSHORT(data + search + searchRange*2);
 | 
															
														
														
													
														
															
																 | 
																 | 
																         if (unicode_codepoint > end)
 | 
																 | 
																 | 
																         if (unicode_codepoint > end)
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -1223,8 +1237,8 @@ int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_verte | 
															
														
														
													
														
															
																 | 
																 | 
																         }
 | 
																 | 
																 | 
																         }
 | 
															
														
														
													
														
															
																 | 
																 | 
																         
 | 
																 | 
																 | 
																         
 | 
															
														
														
													
														
															
																 | 
																 | 
																         // Find transformation scales.
 | 
																 | 
																 | 
																         // Find transformation scales.
 | 
															
														
														
													
														
															
																 | 
																 | 
																         m = (float) sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]);
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																         n = (float) sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]);
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																         m = (float) STBTT_sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]);
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																         n = (float) STBTT_sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]);
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																         // Get indexed glyph.
 | 
																 | 
																 | 
																         // Get indexed glyph.
 | 
															
														
														
													
														
															
																 | 
																 | 
																         comp_num_verts = stbtt_GetGlyphShape(info, gidx, &comp_verts);
 | 
																 | 
																 | 
																         comp_num_verts = stbtt_GetGlyphShape(info, gidx, &comp_verts);
 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -1247,8 +1261,8 @@ int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_verte | 
															
														
														
													
														
															
																 | 
																 | 
																               if (comp_verts) STBTT_free(comp_verts, info->userdata);
 | 
																 | 
																 | 
																               if (comp_verts) STBTT_free(comp_verts, info->userdata);
 | 
															
														
														
													
														
															
																 | 
																 | 
																               return 0;
 | 
																 | 
																 | 
																               return 0;
 | 
															
														
														
													
														
															
																 | 
																 | 
																            }
 | 
																 | 
																 | 
																            }
 | 
															
														
														
													
														
															
																 | 
																 | 
																            if (num_vertices > 0) memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex));
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            memcpy(tmp+num_vertices, comp_verts, comp_num_verts*sizeof(stbtt_vertex));
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            if (num_vertices > 0) STBTT_memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex));
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            STBTT_memcpy(tmp+num_vertices, comp_verts, comp_num_verts*sizeof(stbtt_vertex));
 | 
															
														
														
													
														
															
																 | 
																 | 
																            if (vertices) STBTT_free(vertices, info->userdata);
 | 
																 | 
																 | 
																            if (vertices) STBTT_free(vertices, info->userdata);
 | 
															
														
														
													
														
															
																 | 
																 | 
																            vertices = tmp;
 | 
																 | 
																 | 
																            vertices = tmp;
 | 
															
														
														
													
														
															
																 | 
																 | 
																            STBTT_free(comp_verts, info->userdata);
 | 
																 | 
																 | 
																            STBTT_free(comp_verts, info->userdata);
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -1760,7 +1774,7 @@ unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float sc | 
															
														
														
													
														
															
																 | 
																 | 
																      scale_y = scale_x;
 | 
																 | 
																 | 
																      scale_y = scale_x;
 | 
															
														
														
													
														
															
																 | 
																 | 
																   }
 | 
																 | 
																 | 
																   }
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																   stbtt_GetGlyphBitmapBox(info, glyph, scale_x, scale_y, &ix0,&iy0,&ix1,&iy1);
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																   stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,&ix1,&iy1);
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																   // now we get the size
 | 
																 | 
																 | 
																   // now we get the size
 | 
															
														
														
													
														
															
																 | 
																 | 
																   gbm.w = (ix1 - ix0);
 | 
																 | 
																 | 
																   gbm.w = (ix1 - ix0);
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -1992,14 +2006,16 @@ static int stbtt__matchpair(stbtt_uint8 *fc, stbtt_uint32 nm, stbtt_uint8 *name, | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																         // is this a Unicode encoding?
 | 
																 | 
																 | 
																         // is this a Unicode encoding?
 | 
															
														
														
													
														
															
																 | 
																 | 
																         if (platform == 0 || (platform == 3 && encoding == 1) || (platform == 3 && encoding == 10)) {
 | 
																 | 
																 | 
																         if (platform == 0 || (platform == 3 && encoding == 1) || (platform == 3 && encoding == 10)) {
 | 
															
														
														
													
														
															
																 | 
																 | 
																            stbtt_int32 slen = ttUSHORT(fc+loc+8), off = ttUSHORT(fc+loc+10);
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            stbtt_int32 slen = ttUSHORT(fc+loc+8);
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            stbtt_int32 off = ttUSHORT(fc+loc+10);
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																            // check if there's a prefix match
 | 
																 | 
																 | 
																            // check if there's a prefix match
 | 
															
														
														
													
														
															
																 | 
																 | 
																            stbtt_int32 matchlen = stbtt__CompareUTF8toUTF16_bigendian_prefix(name, nlen, fc+stringOffset+off,slen);
 | 
																 | 
																 | 
																            stbtt_int32 matchlen = stbtt__CompareUTF8toUTF16_bigendian_prefix(name, nlen, fc+stringOffset+off,slen);
 | 
															
														
														
													
														
															
																 | 
																 | 
																            if (matchlen >= 0) {
 | 
																 | 
																 | 
																            if (matchlen >= 0) {
 | 
															
														
														
													
														
															
																 | 
																 | 
																               // check for target_id+1 immediately following, with same encoding & language
 | 
																 | 
																 | 
																               // check for target_id+1 immediately following, with same encoding & language
 | 
															
														
														
													
														
															
																 | 
																 | 
																               if (i+1 < count && ttUSHORT(fc+loc+12+6) == next_id && ttUSHORT(fc+loc+12) == platform && ttUSHORT(fc+loc+12+2) == encoding && ttUSHORT(fc+loc+12+4) == language) {
 | 
																 | 
																 | 
																               if (i+1 < count && ttUSHORT(fc+loc+12+6) == next_id && ttUSHORT(fc+loc+12) == platform && ttUSHORT(fc+loc+12+2) == encoding && ttUSHORT(fc+loc+12+4) == language) {
 | 
															
														
														
													
														
															
																 | 
																 | 
																                  stbtt_int32 slen = ttUSHORT(fc+loc+12+8), off = ttUSHORT(fc+loc+12+10);
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                  slen = ttUSHORT(fc+loc+12+8);
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                  off = ttUSHORT(fc+loc+12+10);
 | 
															
														
														
													
														
															
																 | 
																 | 
																                  if (slen == 0) {
 | 
																 | 
																 | 
																                  if (slen == 0) {
 | 
															
														
														
													
														
															
																 | 
																 | 
																                     if (matchlen == nlen)
 | 
																 | 
																 | 
																                     if (matchlen == nlen)
 | 
															
														
														
													
														
															
																 | 
																 | 
																                        return 1;
 | 
																 | 
																 | 
																                        return 1;
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |