Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(438)

Unified Diff: chrome/test/data/third_party/spaceport/js/sprites/sources/spriteSheet.js

Issue 10134041: Add test data for spaceport benchmark. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/third_party/spaceport/js/sprites/sources/spriteSheet.js
diff --git a/chrome/test/data/third_party/spaceport/js/sprites/sources/spriteSheet.js b/chrome/test/data/third_party/spaceport/js/sprites/sources/spriteSheet.js
new file mode 100644
index 0000000000000000000000000000000000000000..c60dd9c075aad72b2d4fb47073343752d42149b0
--- /dev/null
+++ b/chrome/test/data/third_party/spaceport/js/sprites/sources/spriteSheet.js
@@ -0,0 +1,85 @@
+define([ 'util/ensureCallback' ], function (ensureCallback) {
+ var IMAGE_SRC = 'assets/monstro-fada.png';
+
+ var FRAME_WIDTH = 37 * 3;
+ var FRAME_HEIGHT = 58 * 3;
+
+ var FRAMES_HORIZ = 6;
+ var FRAMES_VERT = 1;
+
+ var TOTAL_FRAMES = FRAMES_HORIZ * FRAMES_VERT;
+
+ function ImageSource(img) {
+ this.img = img;
+
+ var canvas = document.createElement('canvas');
+ canvas.width = FRAME_WIDTH;
+ canvas.height = FRAME_HEIGHT;
+
+ var context = canvas.getContext('2d');
+ context.globalCompositeOperation = 'copy';
+
+ this.frameImages = [ ];
+ this.frameInfos = [ ];
+ var x, y;
+ for (y = 0; y < FRAMES_VERT; ++y) {
+ for (x = 0; x < FRAMES_HORIZ; ++x) {
+ var px = x * FRAME_WIDTH;
+ var py = y * FRAME_WIDTH;
+
+ context.drawImage(
+ img,
+ px, py,
+ FRAME_WIDTH, FRAME_HEIGHT,
+ 0, 0,
+ FRAME_WIDTH, FRAME_HEIGHT
+ );
+
+ var frameImage = new window.Image();
+ frameImage.src = canvas.toDataURL();
+
+ this.frameInfos.push({
+ x: px,
+ y: py,
+ width: FRAME_WIDTH,
+ height: FRAME_HEIGHT,
+ image: frameImage,
+ sheetImage: img
+ });
+ }
+ }
+
+ // TODO Cycle frameInfos
+ }
+
+ ImageSource.prototype.getImage = function getImage(frameIndex) {
+ return this.frameInfos[frameIndex % TOTAL_FRAMES].image;
+ };
+
+ ImageSource.prototype.drawToCanvas = function drawToCanvas(context, dx, dy, frameIndex) {
+ var frameInfo = this.frameInfos[frameIndex % TOTAL_FRAMES];
+
+ context.drawImage(
+ frameInfo.sheetImage,
+ frameInfo.x, frameInfo.y,
+ frameInfo.width, frameInfo.height,
+ dx, dy,
+ frameInfo.width, frameInfo.height
+ );
+ };
+
+ ImageSource.prototype.getFrameInfo = function getFrameInfo(frameIndex) {
+ return this.frameInfos[frameIndex % TOTAL_FRAMES];
+ };
+
+ return function spriteSheet(callback) {
+ callback = ensureCallback(callback);
+
+ var img = new window.Image();
+ img.onload = function () {
+ var imageSource = new ImageSource(img);
+ callback(null, imageSource);
+ };
+ img.src = IMAGE_SRC;
+ };
+});

Powered by Google App Engine
This is Rietveld 408576698