From a2f066f7a5596d063150887f504dd98f39446b2d Mon Sep 17 00:00:00 2001 From: Kushal K S V S Date: Sat, 26 Aug 2017 03:55:05 -0700 Subject: [PATCH] Script change and Render Mode calling --- tests/make_png/Makefile | 4 +-- tests/make_png/bitmap.c | 30 +++++++++++++++- tests/make_png/bitmap.h | 5 +-- tests/make_png/make_sprite.c | 40 +++++++++++++--------- tests/make_png/runme.sh | 66 ++++++++++++++++-------------------- 5 files changed, 87 insertions(+), 58 deletions(-) diff --git a/tests/make_png/Makefile b/tests/make_png/Makefile index d7aa2cabe..dcb90ba78 100644 --- a/tests/make_png/Makefile +++ b/tests/make_png/Makefile @@ -5,8 +5,6 @@ include $(TOP_DIR)/builds/unix/unix-def.mk SRC_SPRITE = make_sprite.c bitmap.c murmur3.c -OBJS = $(src:.c=.o) - CFLAGS = -Wall -g CC = gcc INCLUDE = -I $(includedir)/freetype2 @@ -15,7 +13,7 @@ LIBS = -lpng -lharfbuzz -lbz2 -ldl all: tests tests: $(SRC_SPRITE) - $(CC) $(CFLAGS) $(INCLUDE) -o $@ $(SRC_SPRITE) $(SRC_LIB) $(OBJS) $(LIBS) + $(CC) $(CFLAGS) $(INCLUDE) -o $@ $^ $(LIBS) .PHONY: clean force clean: diff --git a/tests/make_png/bitmap.c b/tests/make_png/bitmap.c index 641191597..6773b7de8 100644 --- a/tests/make_png/bitmap.c +++ b/tests/make_png/bitmap.c @@ -42,6 +42,34 @@ HASH_32 * Generate_Hash_x86_32( FT_Bitmap * bitmap, return murmur; } +/* This function takes the render mode argument and */ +/* returns the corresponding render_mode */ +int Get_Render_Mode(const char* mode){ + /* Using -1 as the error code */ + int render_mode = -1; + + if ( strcmp(mode,"MONO") == 0 ) + { + render_mode = 0; + }else if ( strcmp(mode,"AA") == 0 ) + { + render_mode = 1; + }else if ( strcmp(mode,"RGB") == 0 ) + { + render_mode = 2; + }else if ( strcmp(mode,"BGR") == 0 ) + { + render_mode = 3; + }else if ( strcmp(mode,"VRGB") == 0 ) + { + render_mode = 4; + }else if ( strcmp(mode,"VBGR") == 0 ) + { + render_mode = 5; + } + return render_mode; +} + /* This function takes in the IMAGE data and returns the pointer */ /* to the pixel at co-ordinates (x,y). This is used to access the */ /* pixel data */ @@ -623,7 +651,7 @@ void Stitch(IMAGE* left, IMAGE* right, IMAGE* result){ } /* This prints table-headers to a HTML file for the list-view page */ -void Print_Head( FILE* fp, char* fam, char* style, int size, int dpi){ +void Print_Head( FILE* fp ){ printf(" *** Generating Images *** \n"); fprintf(fp, "\n\ diff --git a/tests/make_png/bitmap.h b/tests/make_png/bitmap.h index 1c206ef07..ed3e0f1c0 100644 --- a/tests/make_png/bitmap.h +++ b/tests/make_png/bitmap.h @@ -59,7 +59,8 @@ HASH_128* Generate_Hash_x64_128(FT_Bitmap* bitmap, HASH_128* murmur); int Compare_Hash(HASH_128* hash_b, HASH_128* hash_t); /*-----------------------------------------------------------------*/ - +/* Returns the render_mode */ +int Get_Render_Mode(const char* mode); /* Returns a pointer to pixel */ /* at (x,y) co-ordinate */ PIXEL* Pixel_At (IMAGE * bitmap, int x, int y); @@ -86,4 +87,4 @@ int Image_Diff( IMAGE* base, IMAGE* test); /* Print the row in list-view webpage */ void Print_Row( FILE* fp, int index, char* name, int diff ); /* Print the table-headers in list-view webpage */ -void Print_Head( FILE* fp, char* fam, char* style, int size, int dpi); +void Print_Head( FILE* fp ); diff --git a/tests/make_png/make_sprite.c b/tests/make_png/make_sprite.c index f51f88c99..b85c2b8f0 100644 --- a/tests/make_png/make_sprite.c +++ b/tests/make_png/make_sprite.c @@ -13,8 +13,8 @@ int main(int argc, char const *argv[]) const char* base_version; const char* test_version; const char* font_file; - int size; - int render_mode; + const char* mode; + int pt_size; int dpi; int load_flag; /* FT_LOAD_XXX */ @@ -25,8 +25,8 @@ int main(int argc, char const *argv[]) test_version = argv[2]; font_file = argv[3]; - size = atoi(argv[4]); - render_mode = atoi(argv[5]); + pt_size = atoi(argv[4]); + mode = argv[5]; dpi = atoi(argv[6]); FT_Library base_library; @@ -43,7 +43,9 @@ int main(int argc, char const *argv[]) FT_Error error; - int alignment = 4; + int render_mode; + int alignment = 4; + int output_file_size = 100 + strlen(argv[3]); char * output_file_name = (char *)calloc( output_file_size, sizeof(char)); @@ -213,7 +215,13 @@ int main(int argc, char const *argv[]) "FT_Done_FreeType"); /*******************************************************************/ - + render_mode = Get_Render_Mode(mode); + if (render_mode < 0) + { + printf("Enter valid Render Mode.\n"); + exit(1); + } + switch ( render_mode ) { case 0: render_flag = FT_RENDER_MODE_MONO; load_flag = FT_LOAD_MONOCHROME; @@ -295,7 +303,7 @@ int main(int argc, char const *argv[]) } error = Base_Set_Char_Size( base_face, - size * 64, + pt_size * 64, 0, dpi, 0 ); @@ -304,7 +312,7 @@ int main(int argc, char const *argv[]) exit(1); } error = Test_Set_Char_Size( test_face, - size * 64, + pt_size * 64, 0, dpi, 0 ); @@ -319,11 +327,11 @@ int main(int argc, char const *argv[]) /* Initialising file pointer for the list-view*/ if (snprintf( output_file_name, output_file_size, - "./html/pages/%d/%s/%d/%d/index.html", + "./html/pages/%d/%s/%s/%d/index.html", dpi, font_file, - render_mode, - size ) + mode, + pt_size ) > output_file_size ) { printf("Buffer overflow. Increase output_file_size\n"); @@ -338,7 +346,7 @@ int main(int argc, char const *argv[]) exit(1); } - Print_Head(fp,base_face->family_name,base_face->style_name,size,dpi); + Print_Head( fp ); /* Need to write code to check the values in FT_Face and compare */ for ( i = 0; i < base_face->num_glyphs; ++i) @@ -461,11 +469,11 @@ int main(int argc, char const *argv[]) if (snprintf( output_file_name, output_file_size, - "./html/pages/%d/%s/%d/%d/images/%s.png", + "./html/pages/%d/%s/%s/%d/images/%s.png", dpi, font_file, - render_mode, - size, + mode, + pt_size, glyph_name ) > output_file_size) { @@ -478,7 +486,7 @@ int main(int argc, char const *argv[]) Print_Row(fp,i,glyph_name,pixel_diff ); } } - printf("Total : %ld\nFaulty : %d\n",base_face->num_glyphs, + printf("Total : %ld\nFaulty : %d\n\n",base_face->num_glyphs, total_count ); /* HTML footer */ fprintf(fp, diff --git a/tests/make_png/runme.sh b/tests/make_png/runme.sh index c19e98c12..0133dd420 100755 --- a/tests/make_png/runme.sh +++ b/tests/make_png/runme.sh @@ -1,23 +1,21 @@ +#! /bin/bash + rm -rf ./html/pages rm -f ./html/top.html ##################################################################### -FT_TEST_DPI=${FT_TEST_DPI:-72 96}; -FT_TEST_FONT_FILE=${FT_TEST_FONT_FILE:-test.ttf}; -FT_TEST_RENDER_MODE=${FT_TEST_RENDER_MODE:-AA RGB}; -FT_TEST_PT_SIZE=${FT_TEST_PT_SIZE:-16 20}; +FT_TEST_DPI=${FT_TEST_DPI:-72 96} +FT_TEST_FONT_FILE=${FT_TEST_FONT_FILE:-test.ttf} +FT_TEST_RENDER_MODE=${FT_TEST_RENDER_MODE:-AA RGB} +FT_TEST_PT_SIZE=${FT_TEST_PT_SIZE:-16 20} -FT_TEST_BASE_DIR=${FT_TEST_BASE_DIR:-$HOME/base}; -FT_TEST_TEST_DIR=${FT_TEST_TEST_DIR:-../..}; +FT_TEST_BASE_DIR=${FT_TEST_BASE_DIR:-$HOME/base} +FT_TEST_TEST_DIR=${FT_TEST_TEST_DIR:-../..} -FT_TEST_BASE_DLL=${FT_TEST_BASE_DLL:-$FT_TEST_BASE_DIR/objs/.libs/libfreetype.so}; -FT_TEST_TEST_DLL=$FT_TEST_TEST_DIR/objs/.libs/libfreetype.so -##################################################################### -declare -A arr -arr["MONO"]=0 -arr+=(["AA"]=1 ["RGB"]=2 ["BGR"]=3 ["VRGB"]=4 ["VBGR"]=5) +FT_TEST_BASE_DLL=${FT_TEST_BASE_DLL:-$FT_TEST_BASE_DIR/objs/.libs/libfreetype.so} +FT_TEST_TEST_DLL=${FT_TEST_TEST_DLL:-$FT_TEST_TEST_DIR/objs/.libs/libfreetype.so} ##################################################################### mkdir ./html/pages -touch ./html/top.html; +touch ./html/top.html ##################################################################### echo ' @@ -32,60 +30,56 @@ echo '
- '>./html/top.html; + '>./html/top.html ##################################################################### for i in $FT_TEST_DPI; do mkdir ./html/pages/$i for j in $FT_TEST_FONT_FILE; do mkdir ./html/pages/$i/$j for k in $FT_TEST_RENDER_MODE; do - mkdir ./html/pages/$i/$j/${arr[$k]} + mkdir ./html/pages/$i/$j/$k for l in $FT_TEST_PT_SIZE; do - mkdir ./html/pages/$i/$j/${arr[$k]}/$l - mkdir ./html/pages/$i/$j/${arr[$k]}/$l/images - ./tests $FT_TEST_BASE_DLL $FT_TEST_TEST_DLL $j $l ${arr[$k]} $i + mkdir ./html/pages/$i/$j/$k/$l + mkdir ./html/pages/$i/$j/$k/$l/images + ./tests $FT_TEST_BASE_DLL $FT_TEST_TEST_DLL $j $l $k $i done done done done ##################################################################### -echo '
'>>./html/top.html; +
'>>./html/top.html ##################################################################### -echo '
'>>./html/top.html; +
'>>./html/top.html ##################################################################### -echo '
'>>./html/top.html; +
'>>./html/top.html ##################################################################### -echo '
'>>./html/top.html; +
'>>./html/top.html ##################################################################### echo '
- '>>./html/top.html; + '>>./html/top.html ##################################################################### echo "Font : " $FT_TEST_FONT_FILE -echo "Size : " $FT_TEST_PT_SIZE +echo "Point Size : " $FT_TEST_PT_SIZE echo "Render_Mode: " $FT_TEST_RENDER_MODE echo "DPI : " $FT_TEST_DPI - - - -