Comments and README

This commit is contained in:
Kushal K S V S 2017-08-28 16:51:11 -07:00
parent 2e52ff0d14
commit 9c5a104ac1
7 changed files with 83 additions and 50 deletions

View File

@ -1,3 +1,5 @@
Test-Framework for FreeType's Rendering output.
INSTRUCTIONS
NOTE: One version of FreeType is referred as "base" version and the
@ -6,73 +8,85 @@ NOTE: One version of FreeType is referred as "base" version and the
1. Get the two versions ready
-------------------------------------
Download an older version of FreeType (For example : 2.6.5)
( This being the "base" version of the two)
Go to 'include/freetype/ftoption.h' and uncomment this line
Download an older version of FreeType (For example : 2.6.5)
( This being the "base" version of the two)
Go to 'include/freetype/ftoption.h' and uncomment this line
#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
2. Compile the two versions
-------------------------------------
Go to the "base" version's folder and compile the library.
Go to the "base" version's folder and compile the library.
./configure --enable-shared --disable-static
make
Repeat step 2. for the "test" version as well.
Repeat step 2. for the "test" version as well.
3. Compile the code
-------------------------------------
Return to this folder and make the binary
Return to this folder and make the binary
make tests
4. Run the executable
-------------------------------------
=> Set resolution in DPI by passing argument to variable FT_TEST_DPI.
=> Set resolution in DPI by passing argument to variable FT_TEST_DPI.
=> Set the Rendering mode by passing FT_TEST_RENDER_MODE.
FT_TEST_RENDER_MODE can take values 1. MONO
2. AA
3. RGB
4. BGR
5. VRGB
6. VBGR
=> Set the Rendering mode by passing FT_TEST_RENDER_MODE.
FT_TEST_RENDER_MODE can take values 1. MONO
2. AA
3. RGB
4. BGR
5. VRGB
6. VBGR
=> Set the variables FT_TEST_BASE_DLL and FT_TEST_TEST_DLL to
point to the libfreetype.so file of the base and the test
versions respectively.
=> Set the variables FT_TEST_BASE_DLL and FT_TEST_TEST_DLL to
point to the libfreetype.so file of the base and the test
versions respectively.
By default, the folders '$(HOME)/base/' and '$(HOME)/test/'
folders are set for FT_TEST_BASE_DIR and FT_TEST_TEST_DIR
respectively. If FT_TEST_XXX_DLL isn't defined, these values
are taken to search for DLL files.
By default, the folders '$(HOME)/base/' and '$(HOME)/test/'
folders are set for FT_TEST_BASE_DIR and FT_TEST_TEST_DIR
respectively. If FT_TEST_XXX_DLL isn't defined, these values
are taken to search for DLL files.
=> Set FT_TEST_FONT_FILE to the path to font files needed.
=> Set FT_TEST_FONT_FILE to the path to font files needed.
=> set FT_TEST_PT_SIZE as a number to denote the font size.
=> set FT_TEST_PT_SIZE as a number to denote the font size.
EXAMPLE: FT_TEST_BASE_DIR=/home/wl/kushal/base \
FT_TEST_TEST_DIR=/home/wl/kushal/test \
FT_TEST_DPI="72 96" \
FT_TEST_FONT_FILE="test.ttf" \
FT_TEST_RENDER_MODE="AA RGB" \
FT_TEST_PT_SIZE="16 20" \
./runme.sh
( The values in the above example denote the default values
for the variables )
EXAMPLE: FT_TEST_BASE_DIR=/home/wl/kushal/base \
FT_TEST_TEST_DIR=/home/wl/kushal/test \
FT_TEST_DPI="72 96" \
FT_TEST_FONT_FILE="test.ttf" \
FT_TEST_RENDER_MODE="AA RGB" \
FT_TEST_PT_SIZE="16 20" \
./runme.sh
( The values in the above example denote the default values
for the variables )
Open ./html/top.html for the web interface.
---------------------------------------------------------------------
FEATURES
Creates an interactive web interface to visualize glyphs.
(html/top.html)
An interactive web interface to visualize glyphs.(html/top.html)
View lists of glyphs in tables in the left iFrame accessed by
selecting values from the drop-box.
( The list consists of all the glyphs whose images rendered on
the two versions of the FreeType library are different. )
NOTE: If there is no visual difference in the two images, this
means that the dimensions of the images rendered aren't
the same for both the versions.
This is because the smaller images are aligned and padded
and then compared.
Subimages in the sprite sheet.
1. 'Base' version's rendering of the glyph.
2. 'Test' version's rendering of the glyph.
3. 'Base' version glyph as Gray
By clicking on the Headers of the respective columns,they can be
arranged (in increasing/decreasing order) based on
@ -85,7 +99,5 @@ FEATURES
Click on the Buttons below the iframe for the animations.
To be Added ...
To pause the animation, click and hold on the image.

View File

@ -43,7 +43,7 @@ HASH_32 * Generate_Hash_x86_32( FT_Bitmap * bitmap,
}
/* This function takes the render mode argument and */
/* returns the corresponding render_mode */
/* returns the corresponding render_mode code */
int Get_Render_Mode(const char* mode){
/* Using -1 as the error code */
int render_mode = -1;

View File

@ -5,6 +5,7 @@
<script type="text/javascript" src ="scripts/top.js" ></script>
<link rel="stylesheet" type="text/css" href="styles/top.css">
</head>
<!-- Division used for animation -->
<div id="animation" class="animation"></div><br>
</body>
</html>

View File

@ -1,3 +1,5 @@
// If any value in the 'select' list(s) changes, the corresponding
// HTML document is loaded in frame_1.
function change() {
var dpi = document.getElementById('dpi').value;
var font = document.getElementById('font').value;
@ -7,7 +9,7 @@ function change() {
var string = "pages/"+dpi+"/"+font+"/"+mode+"/"+size+"/index.html";
frame.src = string;
}
// Function to sort the columns of the table when you click on the header
var people, asc1 = 1,asc2 = 1,asc3 = 1;
function sort_t(tbody, col, asc){
@ -30,7 +32,9 @@ function sort_t(tbody, col, asc){
}
tbody.innerHTML = "<tr>"+arr.join("</tr><tr>")+"</tr>";
}
// Function to change the source of the background image in the iframe
// (frame_2). This function also fits the division according to the
// size of the iframe such that the background image fits in the frame.
function frame_2_source(image){
var path = "url("+image.src+")";
@ -76,7 +80,7 @@ function frame_2_source(image){
div.style.width= div_w/4 + "px";
div.style.height= div_h + "px";
}
// Functions to trigger the corresponding animations.
function class_one_two(){
var div = frame_2.document.getElementById('animation');
div.className = 'animation one_two';
@ -91,7 +95,7 @@ function class_one_four(){
var div = frame_2.document.getElementById('animation');
div.className = 'animation one_four';
}
// Functions for the 'Go to Top button'
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};

View File

@ -1,6 +1,8 @@
/* Font for the whole document */
* {
font-family: "Courier New", Courier, monospace;
}
/* Sprite image in the table */
#sprite {
image-rendering: optimizeSpeed; /* STOP SMOOTHING, GIVE ME SPEED */
image-rendering: -moz-crisp-edges; /* Firefox */
@ -12,6 +14,7 @@
width: 100%;
height: auto;
}
/* Table style for the list view */
table {
border-collapse: collapse;
border: none;
@ -30,10 +33,12 @@ th {
background-color: #C8C8C8;
cursor: pointer;
}
/* Image column in a row */
#image_row{
width: 50%;
height: auto;
}
/* Go to top button */
#myBtn {
display: none;
position: fixed;
@ -47,7 +52,7 @@ th {
color: white;
}
/*Top Page styling begins*/
/* Top Page styling begins */
#frame_1{
width:49%;
height:500px;
@ -58,6 +63,7 @@ th {
height:500px;
align-self: left;
}
/* Animation select buttons*/
#select_animation{
margin-left: 50%;
}
@ -65,6 +71,7 @@ th {
font-size: 16px;
text-align: left;
}
/* Animation div on the right iframe */
.animation {
image-rendering: optimizeSpeed;
image-rendering: -moz-crisp-edges;
@ -79,7 +86,7 @@ th {
background: url("");
background-repeat: no-repeat;
background-size: cover;
/* Nominal Width on load */
width: 120px;
height: 130px;
}
@ -88,6 +95,7 @@ th {
-webkit-animation-play-state: paused;
animation-play-state: paused;
}
/* Transition between 1st and the 2nd sub-image */
.one_two {
-webkit-animation: one_two 2s steps(2) infinite;
-moz-animation: one_two 2s steps(2) infinite;
@ -95,6 +103,7 @@ th {
-o-animation: one_two 2s steps(2) infinite;
animation: one_two 2s steps(2) infinite;
}
/* Transition between 1st and the 2nd sub-image */
.one_three {
-webkit-animation: one_three 2s steps(2) infinite;
-moz-animation: one_three 2s steps(2) infinite;
@ -102,6 +111,7 @@ th {
-o-animation: one_three 2s steps(2) infinite;
animation: one_three 2s steps(2) infinite;
}
/* Transition between 1st and the 2nd sub-image */
.one_four {
-webkit-animation: one_four 2s steps(2) infinite;
-moz-animation: one_four 2s steps(2) infinite;
@ -111,15 +121,15 @@ th {
}
@-webkit-keyframes one_two {
from { background-position: 0px; }
to { background-position: 66.66%; }
to { background-position: 66.66%; } /* Goes to 2nd sub-image */
}
@-webkit-keyframes one_three {
from { background-position: 0px; }
to { background-position: 133.33%; }
to { background-position: 133.33%; } /* Goes to 3rd sub-image */
}
@-webkit-keyframes one_four {
from { background-position: 0px; }
to { background-position: 200%; }
to { background-position: 200%; } /* Goes to 4rd sub-image */
}
@-moz-keyframes one_two {

View File

@ -4,6 +4,7 @@ int main(int argc, char const *argv[])
{
if(argc != 7)
{
/* Not needed coz it is automated using runme.sh */
printf("Not enough arguments. Refer README\n");
return 0;
}

View File

@ -1,8 +1,9 @@
#! /bin/bash
# Remove all the previous files.
rm -rf ./html/pages
rm -f ./html/top.html
#####################################################################
# Setting Default values for the variables if not defined.
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}
@ -17,6 +18,7 @@ FT_TEST_TEST_DLL=${FT_TEST_TEST_DLL:-$FT_TEST_TEST_DIR/objs/.libs/libfreetype.so
mkdir ./html/pages
touch ./html/top.html
#####################################################################
# Generating top.html file
echo "
<!DOCTYPE html>
<head>
@ -33,6 +35,7 @@ echo "
<iframe id=\"frame_1\" name=\"frame_1\" src=\"\" ></iframe>
<iframe id=\"frame_2\" name=\"frame_2\" src=\"diff.html\" ></iframe>">./html/top.html
#####################################################################
# Filling html/top.html file with links to all the index.html files.
for i in $FT_TEST_DPI; do
mkdir ./html/pages/$i
for j in $FT_TEST_FONT_FILE; do
@ -48,6 +51,7 @@ for i in $FT_TEST_DPI; do
done
done
#####################################################################
# Buttons for animation selection
echo '<div id="select_animation">
<button onclick="class_one_two()">One-Two</button>
<button onclick="class_one_three()">One-Three</button>
@ -55,6 +59,7 @@ echo '<div id="select_animation">
</div>
<div class="select">'>>./html/top.html
#####################################################################
# Populating the selection lists with options
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