ref: 2fdb70e9d5311bcf82d3f73d0bb25d36fca3ad40
parent: 99a320b431e381100b1f379f0428db8ce995f74a
author: Werner Lemberg <[email protected]>
date: Sun Jun 3 15:38:59 EDT 2007
Fold fttest.c into ftrandom.c (as it was orginally).
--- a/src/tools/ftrandom/Makefile
+++ b/src/tools/ftrandom/Makefile
@@ -25,11 +25,9 @@
-lfreetype \
-lz
-all: ftrandom fttest
+all: ftrandom
-ftrandom: $(SRC_DIR)/ftrandom.c $(SRC_DIR)/fttest.c
+ftrandom: $(SRC_DIR)/ftrandom.c
$(CC) -o $(OBJ_DIR)/ftrandom $(CFLAGS) $(SRC_DIR)/ftrandom.c $(LIBS)
-fttest: $(SRC_DIR)/fttest.c
- $(CC) -o $(OBJ_DIR)/fttest -DSTANDALONE $(CFLAGS) $(SRC_DIR)/fttest.c $(LIBS)
# EOF
--- a/src/tools/ftrandom/ftrandom.c
+++ b/src/tools/ftrandom/ftrandom.c
@@ -56,7 +56,7 @@
static int rasterize = false;
static char* results_dir = "results";
-#define GOOD_FONTS_DIR "/home/wl/freetype-testfonts"
+#define GOOD_FONTS_DIR "/home/wl/freetype-testfonts"
static char* default_dir_list[] =
{
@@ -98,6 +98,124 @@
static int
+ FT_MoveTo( const FT_Vector *to,
+ void *user )
+ {
+ return 0;
+ }
+
+
+ static int
+ FT_LineTo( const FT_Vector *to,
+ void *user )
+ {
+ return 0;
+ }
+
+
+ static int
+ FT_ConicTo( const FT_Vector *_cp,
+ const FT_Vector *to,
+ void *user )
+ {
+ return 0;
+ }
+
+
+ static int
+ FT_CubicTo( const FT_Vector *cp1,
+ const FT_Vector *cp2,
+ const FT_Vector *to,
+ void *user )
+ {
+ return 0;
+ }
+
+
+ static FT_Outline_Funcs outlinefuncs =
+ {
+ FT_MoveTo,
+ FT_LineTo,
+ FT_ConicTo,
+ FT_CubicTo,
+ 0, 0 /* No shift, no delta */
+ };
+
+
+ static void
+ TestFace( FT_Face face )
+ {
+ int gid;
+ int load_flags = FT_LOAD_DEFAULT;
+
+
+ if ( check_outlines &&
+ ( face->face_flags & FT_FACE_FLAG_SCALABLE ) )
+ load_flags = FT_LOAD_NO_BITMAP;
+
+ if ( nohints )
+ load_flags |= FT_LOAD_NO_HINTING;
+
+ FT_Set_Char_Size( face, 0, (int)( 12 * 64 ), 72, 72 );
+
+ for ( gid = 0; gid < face->num_glyphs; ++gid )
+ {
+ if ( check_outlines &&
+ ( face->face_flags & FT_FACE_FLAG_SCALABLE ) )
+ {
+ if ( !FT_Load_Glyph( face, gid, load_flags ) )
+ FT_Outline_Decompose( &face->glyph->outline, &outlinefuncs, NULL );
+ }
+ else
+ FT_Load_Glyph( face, gid, load_flags );
+
+ if ( rasterize )
+ FT_Render_Glyph( face->glyph, ft_render_mode_normal );
+ }
+
+ FT_Done_Face( face );
+ }
+
+
+ static void
+ ExecuteTest( char* testfont )
+ {
+ FT_Library context;
+ FT_Face face;
+ int i, num;
+
+
+ if ( FT_Init_FreeType( &context ) )
+ {
+ fprintf( stderr, "Can't initialize FreeType.\n" );
+ exit( 1 );
+ }
+
+ if ( FT_New_Face( context, testfont, 0, &face ) )
+ {
+ /* The font is erroneous, so if this fails that's ok. */
+ exit( 0 );
+ }
+
+ if ( face->num_faces == 1 )
+ TestFace( face );
+ else
+ {
+ num = face->num_faces;
+ FT_Done_Face( face );
+
+ for ( i = 0; i < num; ++i )
+ {
+ if ( !FT_New_Face( context, testfont, i, &face ) )
+ TestFace( face );
+ }
+ }
+
+ exit( 0 );
+ }
+
+
+ static int
extmatch( char* filename,
char** extensions )
{
@@ -354,9 +472,6 @@
return true;
}
-
-
-#include "fttest.c"
static int child_pid;
--- a/src/tools/ftrandom/fttest.c
+++ /dev/null
@@ -1,238 +1,0 @@
-/* Copyright (C) 2005 by George Williams */
-/*
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
-
- * The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
-
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* modified by Werner Lemberg <[email protected]> */
-/* This file is now part of the FreeType library */
-
-
-#ifdef STANDALONE
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_OUTLINE_H
-
-#define true 1
-#define false 0
-
- static int check_outlines = 0;
- static int nohints = 0;
- static int rasterize = 0;
-
-#endif /* STANDALONE */
-
-
- static int
- FT_MoveTo( const FT_Vector *to,
- void *user )
- {
- return 0;
- }
-
-
- static int
- FT_LineTo( const FT_Vector *to,
- void *user )
- {
- return 0;
- }
-
-
- static int
- FT_ConicTo( const FT_Vector *_cp,
- const FT_Vector *to,
- void *user )
- {
- return 0;
- }
-
-
- static int
- FT_CubicTo( const FT_Vector *cp1,
- const FT_Vector *cp2,
- const FT_Vector *to,
- void *user )
- {
- return 0;
- }
-
-
- static FT_Outline_Funcs outlinefuncs =
- {
- FT_MoveTo,
- FT_LineTo,
- FT_ConicTo,
- FT_CubicTo,
- 0, 0 /* No shift, no delta */
- };
-
-
- static void
- TestFace( FT_Face face )
- {
- int gid;
- int load_flags = FT_LOAD_DEFAULT;
-
-
- if ( check_outlines &&
- ( face->face_flags & FT_FACE_FLAG_SCALABLE ) )
- load_flags = FT_LOAD_NO_BITMAP;
-
- if ( nohints )
- load_flags |= FT_LOAD_NO_HINTING;
-
- FT_Set_Char_Size( face, 0, (int)( 12 * 64 ), 72, 72 );
-
- for ( gid = 0; gid < face->num_glyphs; ++gid )
- {
- if ( check_outlines &&
- ( face->face_flags & FT_FACE_FLAG_SCALABLE ) )
- {
- if ( !FT_Load_Glyph( face, gid, load_flags ) )
- FT_Outline_Decompose( &face->glyph->outline, &outlinefuncs, NULL );
- }
- else
- FT_Load_Glyph( face, gid, load_flags );
-
- if ( rasterize )
- FT_Render_Glyph( face->glyph, ft_render_mode_normal );
- }
-
- FT_Done_Face( face );
- }
-
-
-#ifdef STANDALONE
- static void
- usage( FILE* out,
- char* name )
- {
- fprintf( out, "%s [options] <font> -- Run test program used by ftrandom\n"
- " on the given font.\n\n", name );
-
- fprintf( out, " --check-outlines Make sure we can parse the outlines of each glyph.\n" );
- fprintf( out, " --help Print this.\n" );
- fprintf( out, " --nohints Turn off hinting.\n" );
- fprintf( out, " --rasterize Attempt to rasterize each glyph.\n" );
- }
-#endif /* STANDALONE */
-
-
-#ifdef STANDALONE
- int
- main( int argc,
- char** argv )
-#else
- static void
- ExecuteTest( char* testfont )
-#endif
- {
- FT_Library context;
- FT_Face face;
- int i, num;
-#ifdef STANDALONE
- char* testfont;
- char* pt;
-#endif
-
-
-#if STANDALONE
- for ( i = 1; i < argc; ++i )
- {
- pt = argv[i];
- if ( pt[0] == '-' && pt[1] == '-' )
- ++pt;
-
- if ( strcmp( pt, "-check-outlines" ) == 0 )
- check_outlines = true;
- else if ( strcmp( pt, "-help" ) == 0 )
- {
- usage( stdout, argv[0] );
- exit( 0 );
- }
- else if ( strcmp( pt, "-nohints" ) == 0 )
- nohints = true;
- else if ( strcmp( pt, "-rasterize" ) == 0 )
- rasterize = true;
- else if ( pt[0] == '-' )
- {
- usage( stderr, argv[0] );
- exit( 1 );
- }
- else
- break;
- }
-
- if ( i == argc )
- {
- usage( stderr, argv[0] );
- exit( 1 );
- }
-
- testfont = argv[i];
-#endif /* STANDALONE */
-
- if ( FT_Init_FreeType( &context ) )
- {
- fprintf( stderr, "Can't initialize FreeType.\n" );
- exit( 1 );
- }
-
- if ( FT_New_Face( context, testfont, 0, &face ) )
- {
- /* The font is erroneous, so if this fails that's ok. */
-#ifdef STANDALONE
- fprintf( stderr, "Faulty font properly rejected.\n" );
-#endif
- exit( 0 );
- }
-
- if ( face->num_faces == 1 )
- TestFace( face );
- else
- {
- num = face->num_faces;
- FT_Done_Face( face );
-
- for ( i = 0; i < num; ++i )
- {
- if ( !FT_New_Face( context, testfont, i, &face ) )
- TestFace( face );
- }
- }
-
-#ifdef STANDALONE
- fprintf( stderr, "Font passed.\n" );
-#endif
-
- exit( 0 );
- }
-
-
-/* EOF */