diff options
author | Werner Lemberg <wl@gnu.org> | 2007-06-03 19:38:59 +0000 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2007-06-03 19:38:59 +0000 |
commit | 2fdb70e9d5311bcf82d3f73d0bb25d36fca3ad40 (patch) | |
tree | 1a5424df38825adedee71f8e1de8788b48e6a252 /src/tools | |
parent | 99a320b431e381100b1f379f0428db8ce995f74a (diff) |
Fold fttest.c into ftrandom.c (as it was orginally).
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/ftrandom/Makefile | 6 | ||||
-rw-r--r-- | src/tools/ftrandom/ftrandom.c | 123 | ||||
-rw-r--r-- | src/tools/ftrandom/fttest.c | 238 |
3 files changed, 121 insertions, 246 deletions
diff --git a/src/tools/ftrandom/Makefile b/src/tools/ftrandom/Makefile index ff2adbe3..a00dd16c 100644 --- a/src/tools/ftrandom/Makefile +++ b/src/tools/ftrandom/Makefile @@ -25,11 +25,9 @@ LIBS = -lm \ -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 diff --git a/src/tools/ftrandom/ftrandom.c b/src/tools/ftrandom/ftrandom.c index 2ad87603..16d4be03 100644 --- 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 ) { @@ -356,9 +474,6 @@ } -#include "fttest.c" - - static int child_pid; static void diff --git a/src/tools/ftrandom/fttest.c b/src/tools/ftrandom/fttest.c deleted file mode 100644 index a54e35b7..00000000 --- a/src/tools/ftrandom/fttest.c +++ /dev/null @@ -1,238 +0,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 <wl@gnu.org> */ -/* 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 */ |