summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKushal K S V S <kkushal32@gmail.com>2017-08-27 12:44:54 -0700
committerKushal K S V S <kkushal32@gmail.com>2018-03-18 20:40:45 +0530
commit13d3b701f0a4c8d9a21ecdad970a62748e098521 (patch)
treea6ecec93454446c87844eb31211c0e6fd996b05b
parent8f99ece4ef296350f6b86643f0ce2284a99162b0 (diff)
downloadfreetype2-13d3b701f0a4c8d9a21ecdad970a62748e098521.tar.gz
Adding 3 Sprite Animations and adding DLL locations
-rw-r--r--tests/make_png/README18
-rw-r--r--tests/make_png/bitmap.c10
-rw-r--r--tests/make_png/html/diff.html52
-rwxr-xr-xtests/make_png/html/scripts/jquery.animateSprite.js227
-rw-r--r--tests/make_png/html/scripts/top.js17
-rw-r--r--tests/make_png/html/styles/top.css113
-rwxr-xr-xtests/make_png/runme.sh28
7 files changed, 154 insertions, 311 deletions
diff --git a/tests/make_png/README b/tests/make_png/README
index a878e8332..91c4d340d 100644
--- a/tests/make_png/README
+++ b/tests/make_png/README
@@ -74,16 +74,18 @@ FEATURES
View lists of glyphs in tables in the left iFrame accessed by
selecting values from the drop-box.
- By clicking on the Headers of the respective columns,they can be
- arranged (in increasing/decreasing order) based on
- -> Glyph-Index
- -> Name
- -> Difference Metric
+ By clicking on the Headers of the respective columns,they can be
+ arranged (in increasing/decreasing order) based on
+ -> Glyph-Index
+ -> Name
+ -> Difference Metric
- When clicked on any image in the table, a detailed visualization
- page for the glyph is shown in the right iFrame.
+ When clicked on any image in the table, a detailed visualization
+ page for the glyph is shown in the right iFrame.
- To be ADDED ...
+ Click on the Buttons below the iframe for the animations.
+
+ To be Added ...
diff --git a/tests/make_png/bitmap.c b/tests/make_png/bitmap.c
index 6773b7de8..5fa1f2bb3 100644
--- a/tests/make_png/bitmap.c
+++ b/tests/make_png/bitmap.c
@@ -664,16 +664,20 @@ void Print_Head( FILE* fp ){
</head>\n\
<body>\n\
<table>\n\
+ <colgroup>\n\
+ <col span=\"3\" style=\"background-color:white\">\n\
+ <col style=\"width:50%%\">\n\
+ </colgroup>\n\
<thead>\n\
<tr>\n\
<th onclick=\"sort_t(data,0,asc1);asc1*=-1;asc2=1;asc3=1;\">\n\
- <a href=\"#\">Glyph Index</a>\n\
+ <a href=\"#\">Index</a>\n\
</th>\n\
<th onclick=\"sort_t(data,1,asc2);asc2*=-1;asc3=1;asc1=1;\">\n\
- <a href=\"#\">Glyph Name</a>\n\
+ <a href=\"#\">Name</a>\n\
</th>\n\
<th onclick=\"sort_t(data,2,asc3);asc3*=-1;asc1=1;asc2=1;\">\n\
- <a href=\"#\">Difference</a>\n\
+ <a href=\"#\">Diff</a>\n\
</th>\n\
<th>\n\
Images\n\
diff --git a/tests/make_png/html/diff.html b/tests/make_png/html/diff.html
index 2d187a06f..0702fa3df 100644
--- a/tests/make_png/html/diff.html
+++ b/tests/make_png/html/diff.html
@@ -2,62 +2,10 @@
<html id="body">
<head>
<title>Detailed Comparison</title>
- <script type="text/javascript" src ="scripts/jquery-3.2.1.js"></script>
- <script type="text/javascript" src ="scripts/jquery.animateSprite.js"></script>
<script type="text/javascript" src ="scripts/top.js" ></script>
<link rel="stylesheet" type="text/css" href="styles/top.css">
</head>
- <p id="demo"></p>
<div id="animation" class="animation"></div><br>
-
- <button id="start">Start</button>
- <button id="play">Play</button>
- <button id="stop">Stop</button>
- <button id="changeFPS">Change FPS</button><br>
-
- <script>
- /* global $ */
- var currentFps = 1;
- var animationSettings = {
- fps: currentFps,
- loop: true,
- autoplay: false,
- animations: {
- walkRight: [0, 3]
- }
- };
-
- $(document).ready(function(){
- $("#start").click(function(){
-
- $('.animation').animateSprite(animationSettings);
-
- var play = function(){
- $('.animation').animateSprite('play');
- }
-
- $('#play').on('click', play);
-
- $('#stop').on('click', function(){
- $('.animation').animateSprite('stop');
- });
-
- $('#changeFPS').on('click', function(){
- currentFps = (currentFps === 2) ? 1 : 2;
- $('.animation').animateSprite('fps', currentFps);
- });
-
- $('body').on('keydown', function(ev){
- if (ev.keyCode === 39){
- goRight();
- } else if (ev.keyCode === 37) {
- goLeft();
- }
- console.log('ev', ev.keyCode);
- });
- });
-});
- </script>
</body>
</html>
diff --git a/tests/make_png/html/scripts/jquery.animateSprite.js b/tests/make_png/html/scripts/jquery.animateSprite.js
deleted file mode 100755
index 0ef4fe885..000000000
--- a/tests/make_png/html/scripts/jquery.animateSprite.js
+++ /dev/null
@@ -1,227 +0,0 @@
-/*! jqueryanimatesprite - v1.3.5 - 2014-10-17
-* http://blaiprat.github.io/jquery.animateSprite/
-* Copyright (c) 2014 blai Pratdesaba; Licensed MIT */
-(function ($, window, undefined) {
-
- 'use strict';
- var init = function (options) {
-
- return this.each(function () {
- var $this = $(this),
- data = $this.data('animateSprite');
-
- // ASYNC
- // If we don't specify the columns, we
- // can discover using the background size
- var discoverColumns = function (cb) {
- var imageSrc = $this.css('background-image').replace(/url\((['"])?(.*?)\1\)/gi, '$2');
- var image = new Image();
-
- image.onload = function () {
- var width = image.width,
- height = image.height;
- cb(width, height);
- };
- image.src = imageSrc;
- };
-
- if (!data) {
- $this.data('animateSprite', {
- settings: $.extend({
- width: $this.width(),
- height: $this.height(),
- totalFrames: false,
- columns: false,
- fps: 12,
- complete: function () {},
- loop: false,
- autoplay: true
- }, options),
- currentFrame: 0,
- controlAnimation: function () {
-
- var checkLoop = function (currentFrame, finalFrame) {
- currentFrame++;
- if (currentFrame >= finalFrame) {
- if (this.settings.loop === true) {
- currentFrame = 0;
- data.controlTimer();
- } else {
- this.settings.complete();
- }
- } else {
- data.controlTimer();
- }
- return currentFrame;
- };
-
- if (this.settings.animations === undefined) {
- $this.animateSprite('frame', this.currentFrame);
- this.currentFrame = checkLoop.call(this, this.currentFrame, this.settings.totalFrames);
-
- } else {
- if (this.currentAnimation === undefined) {
- for (var k in this.settings.animations) {
- this.currentAnimation = this.settings.animations[k];
- break;
- }
- }
- var newFrame = this.currentAnimation[this.currentFrame];
-
- $this.animateSprite('frame', newFrame);
- this.currentFrame = checkLoop.call(this, this.currentFrame, this.currentAnimation.length);
-
- }
-
- },
- controlTimer: function () {
- // duration overrides fps
- var speed = 1000 / data.settings.fps;
-
- if (data.settings.duration !== undefined) {
- speed = data.settings.duration / data.settings.totalFrames;
- }
-
- data.interval = setTimeout(function () {
- data.controlAnimation();
- }, speed);
-
- }
- });
-
-
- data = $this.data('animateSprite');
-
- // Setting up columns and total frames
- if (!data.settings.columns) {
- // this is an async function
- discoverColumns(function (width, height) {
- // getting amount of columns
- data.settings.columns = Math.round(width / data.settings.width);
- // if totalframes are not specified
- if (!data.settings.totalFrames) {
- // total frames is columns times rows
- var rows = Math.round(height / data.settings.height);
- data.settings.totalFrames = data.settings.columns * rows;
- }
- if (data.settings.autoplay) {
- data.controlTimer();
- }
- });
- } else {
-
- // if everything is already set up
- // we start the interval
- if (data.settings.autoplay) {
- data.controlTimer();
- }
- }
-
-
- }
-
- });
-
- };
-
- var frame = function (frameNumber) {
- // frame: number of the frame to be displayed
- return this.each(function () {
- if ($(this).data('animateSprite') !== undefined) {
- var $this = $(this),
- data = $this.data('animateSprite'),
- row = Math.floor(frameNumber / data.settings.columns),
- column = frameNumber % data.settings.columns;
-
- $this.css('background-position', (-data.settings.width * column) + 'px ' + (-data.settings.height * row) + 'px');
- }
- });
- };
-
- var stop = function () {
- return this.each(function () {
- var $this = $(this),
- data = $this.data('animateSprite');
- clearTimeout(data.interval);
- });
- };
-
- var resume = function () {
- return this.each(function () {
- var $this = $(this),
- data = $this.data('animateSprite');
-
- // always st'op animation to prevent overlapping intervals
- $this.animateSprite('stopAnimation');
- data.controlTimer();
- });
- };
-
- var restart = function () {
- return this.each(function () {
- var $this = $(this),
- data = $this.data('animateSprite');
-
- $this.animateSprite('stopAnimation');
-
- data.currentFrame = 0;
- data.controlTimer();
- });
- };
-
- var play = function (animationName) {
- return this.each(function () {
- var $this = $(this),
- data = $this.data('animateSprite');
-
- if (typeof animationName === 'string') {
-
- $this.animateSprite('stopAnimation');
- if (data.settings.animations[animationName] !== data.currentAnimation) {
- data.currentFrame = 0;
- data.currentAnimation = data.settings.animations[animationName];
- }
- data.controlTimer();
- } else {
- $this.animateSprite('stopAnimation');
- data.controlTimer();
- }
-
- });
- };
-
- var fps = function (val) {
- return this.each(function () {
- var $this = $(this),
- data = $this.data('animateSprite');
- // data.fps
- data.settings.fps = val;
- });
- };
-
- var methods = {
- init: init,
- frame: frame,
- stop: stop,
- resume: resume,
- restart: restart,
- play: play,
- stopAnimation: stop,
- resumeAnimation: resume,
- restartAnimation: restart,
- fps: fps
- };
-
- $.fn.animateSprite = function (method) {
-
- if (methods[method]) {
- return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
- } else if (typeof method === 'object' || ! method) {
- return methods.init.apply(this, arguments);
- } else {
- $.error('Method ' + method + ' does not exist on jQuery.animateSprite');
- }
-
- };
-
-})(jQuery, window);
diff --git a/tests/make_png/html/scripts/top.js b/tests/make_png/html/scripts/top.js
index adc269c71..b3fabf8c0 100644
--- a/tests/make_png/html/scripts/top.js
+++ b/tests/make_png/html/scripts/top.js
@@ -49,7 +49,7 @@ function frame_2_source(image){
//Using dimensions of the iFrame
var win_w = window.innerWidth;
- var win_h = window.innerHeight-60;
+ var win_h = window.innerHeight-40;
// r_w and r_j represent the maximum times that the width or the
// height can be multiplied so that we get the maximum image size
@@ -77,3 +77,18 @@ function frame_2_source(image){
div.style.height= div_h + "px";
}
+function class_one_two(){
+ var div = frame_2.document.getElementById('animation');
+ div.className = 'animation one_two';
+}
+
+function class_one_three(){
+ var div = frame_2.document.getElementById('animation');
+ div.className = 'animation one_three';
+}
+
+function class_one_four(){
+ var div = frame_2.document.getElementById('animation');
+ div.className = 'animation one_four';
+}
+
diff --git a/tests/make_png/html/styles/top.css b/tests/make_png/html/styles/top.css
index c69b6981e..c2c0029a0 100644
--- a/tests/make_png/html/styles/top.css
+++ b/tests/make_png/html/styles/top.css
@@ -1,3 +1,6 @@
+* {
+ font-family: "Courier New", Courier, monospace;
+}
#sprite {
image-rendering: optimizeSpeed; /* STOP SMOOTHING, GIVE ME SPEED */
image-rendering: -moz-crisp-edges; /* Firefox */
@@ -6,13 +9,14 @@
image-rendering: pixelated; /* Chrome */
image-rendering: optimize-contrast; /* CSS3 Proposed */
-ms-interpolation-mode: nearest-neighbor; /* IE8+ */
- width: 70%;
+ width: 100%;
height: auto;
}
table {
border-collapse: collapse;
border: none;
position: relative;
+ width: 100%;
}
th,
td {
@@ -26,19 +30,25 @@ th {
background-color: #C8C8C8;
cursor: pointer;
}
+#image_row{
+ width: 50%;
+ height: auto;
+}
/*Top Page styling begins*/
#frame_1{
- width:49%;
- height:500px;
- align-self: right;
+ width:49%;
+ height:500px;
+ align-self: right;
}
#frame_2{
- width:49%;
- height:500px;
- align-self: left;
+ width:49%;
+ height:500px;
+ align-self: left;
+}
+#select_animation{
+ margin-left: 50%;
}
.select {
- font-family: "Courier New", Courier, monospace;
font-size: 16px;
text-align: left;
}
@@ -53,13 +63,96 @@ th {
margin: auto;
display: block;
-
- background: url("braceleft.png");
+ background: url("");
background-repeat: no-repeat;
background-size: cover;
width: 120px;
height: 130px;
}
+/*Animations*/
+.one_two {
+ -webkit-animation: one_two 2s steps(2) infinite;
+ -moz-animation: one_two 2s steps(2) infinite;
+ -ms-animation: one_two 2s steps(2) infinite;
+ -o-animation: one_two 2s steps(2) infinite;
+ animation: one_two 2s steps(2) infinite;
+}
+.one_three {
+ -webkit-animation: one_three 2s steps(2) infinite;
+ -moz-animation: one_three 2s steps(2) infinite;
+ -ms-animation: one_three 2s steps(2) infinite;
+ -o-animation: one_three 2s steps(2) infinite;
+ animation: one_three 2s steps(2) infinite;
+}
+.one_four {
+ -webkit-animation: one_four 2s steps(2) infinite;
+ -moz-animation: one_four 2s steps(2) infinite;
+ -ms-animation: one_four 2s steps(2) infinite;
+ -o-animation: one_four 2s steps(2) infinite;
+ animation: one_four 2s steps(2) infinite;
+}
+@-webkit-keyframes one_two {
+ from { background-position: 0px; }
+ to { background-position: 66.66%; }
+}
+@-webkit-keyframes one_three {
+ from { background-position: 0px; }
+ to { background-position: 133.33%; }
+}
+@-webkit-keyframes one_four {
+ from { background-position: 0px; }
+ to { background-position: 200%; }
+}
+
+@-moz-keyframes one_two {
+ from { background-position: 0px; }
+ to { background-position: 66.66%; }
+}
+@-moz-keyframes one_three {
+ from { background-position: 0px; }
+ to { background-position: 133.33%; }
+}@-moz-keyframes one_four {
+ from { background-position: 0px; }
+ to { background-position: 200%; }
+}
+@-ms-keyframes one_two {
+ from { background-position: 0px; }
+ to { background-position: 66.66%; }
+}
+@-ms-keyframes one_three {
+ from { background-position: 0px; }
+ to { background-position: 133.33%; }
+}
+@-ms-keyframes one_four {
+ from { background-position: 0px; }
+ to { background-position: 200%; }
+}
+
+@-o-keyframes one_two {
+ from { background-position: 0px; }
+ to { background-position: 66.66%; }
+}
+@-o-keyframes one_three {
+ from { background-position: 0px; }
+ to { background-position: 133.33%; }
+}
+@-o-keyframes one_four {
+ from { background-position: 0px; }
+ to { background-position: 200%; }
+}
+
+@keyframes one_two {
+ from { background-position: 0px; }
+ to { background-position: 66.66%; }
+}
+@keyframes one_three {
+ from { background-position: 0px; }
+ to { background-position: 133.33%; }
+}
+@keyframes one_four {
+ from { background-position: 0px; }
+ to { background-position: 200%; }
+}
diff --git a/tests/make_png/runme.sh b/tests/make_png/runme.sh
index 0133dd420..f67695fdf 100755
--- a/tests/make_png/runme.sh
+++ b/tests/make_png/runme.sh
@@ -17,20 +17,21 @@ FT_TEST_TEST_DLL=${FT_TEST_TEST_DLL:-$FT_TEST_TEST_DIR/objs/.libs/libfreetype.so
mkdir ./html/pages
touch ./html/top.html
#####################################################################
-echo '
+echo "
<!DOCTYPE html>
<head>
- <script type="text/javascript" src ="scripts/jquery-3.2.1.js"></script>
- <script type="text/javascript" src ="scripts/jquery.animateSprite.js"></script>
- <script type="text/javascript" src ="scripts/top.js" ></script>
- <link rel="stylesheet" type="text/css" href="styles/top.css">
+ <script type=\"text/javascript\" src =\"scripts/top.js\" ></script>
+ <link rel=\"stylesheet\" type=\"text/css\" href=\"styles/top.css\">
</head>
<html>
- <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
+ <body onload=\"change()\">
+ <div id=\"top_info\">
+ <p>Base Version: $FT_TEST_BASE_DLL<br>
+ Test Version: $FT_TEST_TEST_DLL
+ </p>
+ </div>
+ <iframe id=\"frame_1\" name=\"frame_1\" src=\"\" ></iframe>
+ <iframe id=\"frame_2\" name=\"frame_2\" src=\"diff.html\" ></iframe>">./html/top.html
#####################################################################
for i in $FT_TEST_DPI; do
mkdir ./html/pages/$i
@@ -47,6 +48,13 @@ for i in $FT_TEST_DPI; do
done
done
#####################################################################
+echo '<div id="select_animation">
+ <button onclick="class_one_two()">One-Two</button>
+ <button onclick="class_one_three()">One-Three</button>
+ <button onclick="class_one_four()">One-Four</button>
+ </div>
+ <div class="select">'>>./html/top.html
+#####################################################################
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