Some Bug Fixes

This commit is contained in:
Kushal K S V S 2017-08-25 15:45:33 -07:00
parent a2c76421c2
commit 828e89379d
4 changed files with 72 additions and 29 deletions

View File

@ -4,7 +4,6 @@ BUILD_DIR := $(TOP_DIR)/builds/unix
include $(TOP_DIR)/builds/unix/unix-def.mk
SRC_SPRITE = make_sprite.c bitmap.c murmur3.c
SRC_LIB = $(libdir)/libfreetype.a
OBJS = $(src:.c=.o)

View File

@ -2,6 +2,7 @@
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>

View File

@ -13,7 +13,7 @@ int main(int argc, char const *argv[])
const char* base_version;
const char* test_version;
const char* font_file;
int size;
int size;
int render_mode;
int dpi;
@ -44,7 +44,9 @@ int main(int argc, char const *argv[])
FT_Error error;
int alignment = 4;
char * output_file_name = ( char * )calloc(100,sizeof(char));
int output_file_size = 100 + strlen(argv[3]);
char * output_file_name = (char *)calloc( output_file_size,
sizeof(char));
IMAGE* base_png = (IMAGE*)malloc(sizeof(IMAGE));
IMAGE* test_png = (IMAGE*)malloc(sizeof(IMAGE));
@ -61,6 +63,7 @@ int main(int argc, char const *argv[])
int pixel_diff, i;
char glyph_name[50] = ".not-def";
/*******************************************************************/
FT_Error ( *Base_Init_FreeType )( FT_Library* );
@ -314,10 +317,27 @@ int main(int argc, char const *argv[])
test_slot = test_face->glyph;
/* Initialising file pointer for the list-view*/
sprintf( output_file_name, "./html/pages/%d/%s/%d/%d/index.html",dpi, font_file, render_mode, size );
if (snprintf( output_file_name,
output_file_size,
"./html/pages/%d/%s/%d/%d/index.html",
dpi,
font_file,
render_mode,
size )
> output_file_size )
{
printf("Buffer overflow. Increase output_file_size\n");
exit(1);
}
FILE* fp = fopen(output_file_name,"w");
if (fp == NULL)
{
printf("Error opening file\n");
exit(1);
}
Print_Head(fp,base_face->family_name,base_face->style_name,size,dpi);
/* Need to write code to check the values in FT_Face and compare */
@ -429,13 +449,29 @@ int main(int argc, char const *argv[])
if (FT_HAS_GLYPH_NAMES(base_face))
{
Base_Get_Glyph_Name( base_face,
i,
glyph_name,
50 );
error = Base_Get_Glyph_Name( base_face,
i,
glyph_name,
50 );
if (error)
{
printf("Error setting glyph name\n");
}
}
sprintf( output_file_name, "./html/pages/%d/%s/%d/%d/images/%s.png",dpi, font_file, render_mode, size, glyph_name );
if (snprintf( output_file_name,
output_file_size,
"./html/pages/%d/%s/%d/%d/images/%s.png",
dpi,
font_file,
render_mode,
size,
glyph_name )
> output_file_size)
{
printf("Buffer Overflow. Increase size of glyph_name\n");
exit(1);
}
Generate_PNG ( output, output_file_name, render_mode );
/* To print table row to HTML file */

View File

@ -1,9 +1,16 @@
rm -rf ./html/pages
rm -f ./html/top.html
#####################################################################
FT_TEST_TEST_DIR=../..
FT_TEST_BASE_LIB=$FT_TEST_BASE_DIR/objs/.libs/libfreetype.so
FT_TEST_TEST_LIB=$FT_TEST_TEST_DIR/objs/.libs/libfreetype.so
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:-1 2};
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_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
#####################################################################
mkdir ./html/pages
touch ./html/top.html;
@ -17,51 +24,51 @@ echo '
<link rel="stylesheet" type="text/css" href="styles/top.css">
</head>
<html>
<body>
<body onload="change()">
<iframe id="frame_1" name="frame_1" src="" ></iframe>
<iframe id="frame_2" name="frame_2" src="diff.html" ></iframe>
<div class="select">
'>./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/$k
for l in $FT_TEST_PT_SIZE; do
mkdir ./html/pages/$i/$j/$k/$l
mkdir ./html/pages/$i/$j/$k/$l/images
./tests $FT_TEST_BASE_LIB $FT_TEST_TEST_LIB $j $l $k $i
done
done
done
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/$k
for l in $FT_TEST_PT_SIZE; do
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 '<label>DPI&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp:<select name="dpi" id="dpi" onchange="change()">'>>./html/top.html;
for i in $FT_TEST_DPI; do
echo " <option value= $i > $i </option>">>./html/top.html;
echo " <option value= $i > $i </option>">>./html/top.html;
done
echo '</select>
</label><br>'>>./html/top.html;
#####################################################################
echo '<label>Font&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp:<select name="font" id="font" onchange="change()">'>>./html/top.html;
for i in $FT_TEST_FONT_FILE; do
echo " <option value= $i > $i </option>">>./html/top.html;
echo " <option value= $i > $i </option>">>./html/top.html;
done
echo '</select>
</label><br>'>>./html/top.html;
#####################################################################
echo '<label>Render Mode:<select name="mode" id="mode" onchange="change()">'>>./html/top.html;
for i in $FT_TEST_RENDER_MODE; do
echo " <option value= $i > $i </option>">>./html/top.html;
echo " <option value= $i > $i </option>">>./html/top.html;
done
echo '</select>
</label><br>'>>./html/top.html;
#####################################################################
echo '<label>Size&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp:<select name="size" id="size" onchange="change()">'>>./html/top.html;
for i in $FT_TEST_PT_SIZE; do
echo " <option value= $i > $i </option>">>./html/top.html;
echo " <option value= $i > $i </option>">>./html/top.html;
done
echo '</select>
</label><br>'>>./html/top.html;