summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype/freetype-1.5/test/ftview.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/freetype/freetype-1.5/test/ftview.c')
-rw-r--r--Build/source/libs/freetype/freetype-1.5/test/ftview.c539
1 files changed, 0 insertions, 539 deletions
diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftview.c b/Build/source/libs/freetype/freetype-1.5/test/ftview.c
deleted file mode 100644
index 71ca0d87a28..00000000000
--- a/Build/source/libs/freetype/freetype-1.5/test/ftview.c
+++ /dev/null
@@ -1,539 +0,0 @@
-/****************************************************************************/
-/* */
-/* The FreeType project -- a free and portable quality TrueType renderer. */
-/* */
-/* Copyright 1996-2001 by */
-/* D. Turner, R.Wilhelm, and W. Lemberg */
-/* */
-/* ftview: A simple font viewer. Supports hinting and grayscaling. */
-/* */
-/* */
-/* Keys: */
-/* */
-/* x : fine counter-clockwise rotation */
-/* c : fine clockwise rotation */
-/* */
-/* v : fast counter-clockwise rotation */
-/* b : fast clockwise rotation */
-/* */
-/* + : fast scale up */
-/* - : fast scale down */
-/* u : fine scale down */
-/* j : fine scale up */
-/* */
-/* l : go to next glyph */
-/* k : go to previous glyph */
-/* */
-/* o : go to tenth next glyph */
-/* i : go to tenth previous glyph */
-/* */
-/* 0 : go to hundredth next glyph */
-/* 9 : go to hundredth previous glyph */
-/* */
-/* ) : go to 1000th next glyph */
-/* ( : go to 1000th previous glyph */
-/* */
-/* } : go to 10000th next glyph */
-/* { : go to 10000th previous glyph */
-/* */
-/* n : go to next (or last) .ttf file */
-/* p : go to previous (or first) .ttf file */
-/* */
-/* h : toggle hinting */
-/* */
-/* B : toggle sbit */
-/* */
-/* ESC : exit */
-/* */
-/* */
-/* NOTE: This is just a test program that is used to show off and */
-/* debug the current engine. */
-/* */
-/****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "blitter.h"
-#include "common.h"
-#include "display.h"
-#include "freetype.h"
-#include "ftxsbit.h"
-
-#include "gdriver.h"
-#include "gevents.h"
-#include "gmain.h"
-
-#define Pi 3.1415926535
-
-#define MAXPTSIZE 500 /* dtp */
-#define Center_X ( Bit.width / 2 ) /* dtp */
-#define Center_Y ( Bit.rows / 2 ) /* dtp */
-
-/*
- * If Ignore_Err_Not_SBit is not defined,
- * "Fail" increase when the glyph does not have sbit and
- * sbit_flag is 1.
- */
-#define Ignore_Err_Not_SBit 1
-
- TT_Engine engine;
-
- TT_Face face;
- TT_Instance instance;
- TT_Glyph glyph;
-
- TT_Big_Glyph_Metrics metrics;
- TT_Outline outline;
- TT_Face_Properties properties;
- TT_Instance_Metrics imetrics;
-
- TT_SBit_Image* sbit;
-
- int num_glyphs;
-
- int ptsize;
- int hinted;
-
- char Header[128];
-
- int Rotation;
- int Fail;
- int Num;
-
- int gray_render;
- unsigned int sbit_flag; /* 0 if to display outlines
- * 1 if to use embedded bitmaps
- * 2 if to show sbit and outline glyphs
- */
-
- int glyph_has_sbit;
-
-
-
- static TT_Error Reset_Scale( int pointSize )
- {
- TT_Error error;
- TT_SBit_Strike strike;
-
-
- if ( (error = TT_Set_Instance_PointSize( instance, pointSize )) )
- {
- RestoreScreen();
- fprintf( stderr, "Error = 0x%x.\n", (unsigned)error );
- Panic( "Could not reset instance.\n" );
- }
- TT_Get_Instance_Metrics( instance, &imetrics );
-
- /* now re-allocates the small bitmap */
- if ( gray_render )
- {
- Init_Small( imetrics.x_ppem, imetrics.y_ppem );
- Clear_Small();
- }
-
- if ( TT_Get_SBit_Strike( face, instance, &strike ) )
- glyph_has_sbit = 0;
- else
- glyph_has_sbit = 1;
-
- return TT_Err_Ok;
- }
-
-
- static TT_Error LoadTrueTypeChar( int idx, int hint )
- {
- int flags;
-
-
- flags = TTLOAD_SCALE_GLYPH;
- if ( hint )
- flags |= TTLOAD_HINT_GLYPH;
-
- return TT_Load_Glyph( instance, glyph, idx, flags );
- }
-
-
- static TT_Error Render_All( int first_glyph, int ptsize )
- {
- TT_F26Dot6 start_x, start_y, step_y, x, y;
- int i;
-
- TT_Error error = 0;
-
-
- start_x = 4;
- start_y = vio_Height - ( ( ptsize * 96 + 36 ) / 72 + 10 );
-
- step_y = imetrics.y_ppem + 10;
-
- x = start_x;
- y = start_y;
-
- i = first_glyph;
-
- while ( i < num_glyphs )
- {
- if ( ( glyph_has_sbit ) &&
- ( ( sbit_flag + 1 ) & 2 ) &&
- !(error = TT_Load_Glyph_Bitmap( face, instance, i, sbit )) )
- {
- Blit_Bitmap( &Bit,
- &sbit->map,
- gray_render ? 8 : 1,
- (int)x + (int)(sbit->metrics.horiBearingX/64),
- Bit.rows - (int)y - (int)(sbit->metrics.horiBearingY/64),
- gray_palette[4] );
- metrics = sbit->metrics;
- goto Step;
- }
-
- if ( ( ( !glyph_has_sbit ) ||
- ( ( sbit_flag + 1 ) & 1 ) ) &&
- !(error = LoadTrueTypeChar( i, hinted )) )
- {
- TT_Get_Glyph_Outline( glyph, &outline );
- TT_Get_Glyph_Big_Metrics( glyph, &metrics );
-
- Render_Single_Glyph( gray_render, glyph, (int)x, (int)y );
- }
- else
- {
-#ifdef Ignore_Err_Not_SBit
- if (!(( glyph_has_sbit ) &&
- ( sbit_flag == 1 ) &&
- ( error == TT_Err_Invalid_Glyph_Index )))
-#endif
- Fail++;
- }
- Step:
- x += ( metrics.horiAdvance / 64 ) + 1;
-
- if ( x + imetrics.x_ppem > vio_Width )
- {
- x = start_x;
- y -= step_y;
-
- if ( y < 10 )
- return TT_Err_Ok;
- }
- i++;
- }
- return TT_Err_Ok;
- }
-
-
- static int Process_Event( TEvent* event )
- {
- switch ( event->what )
- {
- case event_Quit: /* ESC or q */
- return 0;
-
- case event_Keyboard:
- if ( event->info == 'n' ) /* Next file */
- return 'n';
- if ( event->info == 'p' ) /* Previous file */
- return 'p';
- if ( event->info == 'h' ) /* Toggle hinting */
- hinted = !hinted;
- if ( ( event->info == 'B' ) && ( glyph_has_sbit ) ) /* Toggle sbit */
- sbit_flag = ( sbit_flag + 1 ) % 3;
- break;
-
- case event_Rotate_Glyph:
- Rotation = ( Rotation + event->info ) & 1023;
- break;
-
- case event_Scale_Glyph:
- ptsize += event->info;
- if ( ptsize < 1 ) ptsize = 1;
- if ( ptsize > MAXPTSIZE ) ptsize = MAXPTSIZE;
- break;
-
- case event_Change_Glyph:
- Num += event->info;
- if ( Num < 0 ) Num = 0;
- if ( Num >= num_glyphs ) Num = num_glyphs - 1;
- break;
- }
-
- return 1;
- }
-
-
- static void usage( char* execname )
- {
- fprintf( stderr,
- "\n"
- "ftview: simple TrueType interpreter tester -- part of the FreeType project\n"
- "--------------------------------------------------------------------------\n"
- "\n"
- "Usage: %s [options below] ppem fontname[.ttf|.ttc] ...\n",
- execname );
- fprintf( stderr,
- "\n"
- " -g gray-level rendering (default: none)\n"
- " -r R use resolution R dpi (default: 96)\n"
- " -B use embedded bitmaps (default: none)\n"
- "\n" );
-
- exit( EXIT_FAILURE );
- }
-
-
- int main( int argc, char** argv )
- {
- int i, old_ptsize, orig_ptsize, file;
- int XisSetup = 0;
- char filename[128 + 4];
- char alt_filename[128 + 4];
- char* execname;
- int option;
- int res = 96;
-
- TT_Error error;
- TEvent event;
-
- TT_EBLC eblc_table;
-
-
- execname = ft_basename( argv[0] );
-
- while ( 1 )
- {
- option = ft_getopt( argc, argv, "gr:B" );
-
- if ( option == -1 )
- break;
-
- switch ( option )
- {
- case 'g':
- gray_render = 1;
- sbit_flag = 0;
- break;
-
- case 'r':
- res = atoi( ft_optarg );
- if ( res < 1 )
- usage( execname );
- break;
-
- case 'B':
- if (!gray_render)
-#if 0
- sbit_flag = 1;
-#else
- sbit_flag = 2;
-#endif
- break;
-
- default:
- usage( execname );
- break;
- }
- }
-
- argc -= ft_optind;
- argv += ft_optind;
-
- if ( argc <= 1 )
- usage( execname );
-
- if ( sscanf( argv[0], "%d", &orig_ptsize ) != 1 )
- orig_ptsize = 64;
-
- file = 1;
-
- /* Initialize engine */
-
- if ( (error = TT_Init_FreeType( &engine )) )
- Panic( "Error while initializing engine, code = 0x%x.\n", error );
-
- if ( (error = TT_Init_SBit_Extension( engine )) )
- Panic( "Error while initializing sbit extention, code = 0x%x.\n", error );
-
- NewFile:
- ptsize = orig_ptsize;
- hinted = 1;
-
- i = strlen( argv[file] );
- while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' )
- {
- if ( argv[file][i] == '.' )
- i = 0;
- i--;
- }
-
- filename[128] = '\0';
- alt_filename[128] = '\0';
-
- strncpy( filename, argv[file], 128 );
- strncpy( alt_filename, argv[file], 128 );
-
- if ( i >= 0 )
- {
- strncpy( filename + strlen( filename ), ".ttf", 4 );
- strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 );
- }
-
- /* Load face */
-
- error = TT_Open_Face( engine, filename, &face );
-
- if ( error == TT_Err_Could_Not_Open_File )
- {
- strcpy( filename, alt_filename );
- error = TT_Open_Face( engine, alt_filename, &face );
- }
-
- if ( error == TT_Err_Could_Not_Open_File )
- Panic( "Could not find/open %s.\n", filename );
- else if ( error )
- Panic( "Error while opening %s, error code = 0x%x.\n",
- filename, error );
-
- /* get face properties and allocate preload arrays */
-
- TT_Get_Face_Properties( face, &properties );
-
- num_glyphs = properties.num_Glyphs;
-
- glyph_has_sbit = 0;
-
- error = TT_Get_Face_Bitmaps( face, &eblc_table );
- if ( error == TT_Err_Ok )
- glyph_has_sbit = 1;
- if ( sbit_flag && !glyph_has_sbit )
- Panic( "%s does not have embedded bitmap glyphs.\n", filename );
-
- /* create glyph */
-
- error = TT_New_Glyph( face, &glyph );
- if ( error )
- Panic( "Could not create glyph container.\n" );
-
- error = TT_New_SBit_Image( &sbit );
- if ( error )
- Panic( "Could not create sbit slot.\n" );
-
- /* create instance */
-
- error = TT_New_Instance( face, &instance );
- if ( error )
- Panic( "Could not create instance for %s.\n", filename );
-
- error = TT_Set_Instance_Resolutions( instance, res, res );
- if ( error )
- Panic( "Could not set device resolutions." );
-
- if ( !XisSetup )
- {
- XisSetup = 1;
-
- if ( gray_render )
- {
- if ( !SetGraphScreen( Graphics_Mode_Gray ) )
- Panic( "Could not set up grayscale graphics mode.\n" );
-
- TT_Set_Raster_Gray_Palette( engine, virtual_palette );
- }
- else
- {
- if ( !SetGraphScreen( Graphics_Mode_Mono ) )
- Panic( "Could not set up mono graphics mode.\n" );
- }
- }
-
- Init_Display( gray_render );
-
- Reset_Scale( ptsize );
-
- old_ptsize = ptsize;
-
- Fail = 0;
- Num = 0;
-
- for ( ;; )
- {
- int key;
- char* sbit_string;
- static char* sbit_messages[4] =
- { "off", "on", " if available", "NONE" };
-
- sbit_string = sbit_messages[3];
- if ( glyph_has_sbit )
- {
- if (sbit_flag >= 0 && sbit_flag < 3)
- sbit_string = sbit_messages[sbit_flag];
- }
-
- Clear_Display();
- Render_All( Num, ptsize );
- if ( gray_render )
- Convert_To_Display_Palette();
-
- sprintf( Header, "%s: Glyph: %4d ptsize: %4d hinting: %s sbit: %s",
- ft_basename( filename ), Num, ptsize,
- hinted ? "on" : "off",
- sbit_string );
- Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols );
-
-#ifndef X11
-#ifndef OS2
- Print_XY( 0, 0, Header );
-#endif
-#endif
-
- Get_Event( &event );
- if ( !( key = Process_Event( &event ) ) )
- goto End;
-
- if ( key == 'n' )
- {
- TT_Close_Face( face );
-
- if ( file < argc - 1 )
- file++;
-
- goto NewFile;
- }
-
- if ( key == 'p' )
- {
- TT_Close_Face( face );
-
- if ( file > 1 )
- file--;
-
- goto NewFile;
- }
-
- if ( ptsize != old_ptsize )
- {
- if ( Reset_Scale( ptsize ) )
- Panic( "Could not resize font.\n" );
-
- old_ptsize = ptsize;
- }
- }
-
- End:
- RestoreScreen();
-
- TT_Done_SBit_Image( sbit );
- TT_Close_Face( face );
- TT_Done_FreeType( engine );
-
- printf( "Execution completed successfully.\n" );
- printf( "Fails = %d\n", Fail );
-
- exit( EXIT_SUCCESS ); /* for safety reasons */
-
- return 0; /* never reached */
-}
-
-
-/* End */