aboutsummaryrefslogtreecommitdiff
path: root/src/library_sdl.js
diff options
context:
space:
mode:
authorFelix H. Dahlke <fhd@ubercode.de>2013-03-30 22:24:15 +0100
committerFelix H. Dahlke <fhd@ubercode.de>2013-03-30 22:24:15 +0100
commit703422829c0b8de54016ed32e4905a4d51b9f7dc (patch)
tree4f2c672c66dc3b966e612226115588dca0e215d1 /src/library_sdl.js
parent255d0f838de04a1716c1d53632ce911412262471 (diff)
Support rotozoomSurface
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r--src/library_sdl.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 42207f23..71ab2277 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -1032,6 +1032,19 @@ var LibrarySDL = {
return ret;
},
+ rotozoomSurface: function(src, angle, zoom, smooth) {
+ var srcData = SDL.surfaces[src];
+ var w = srcData.width * zoom;
+ var h = srcData.height * zoom;
+ var diagonal = Math.ceil(Math.sqrt(Math.pow(w, 2) + Math.pow(h, 2)));
+ var ret = SDL.makeSurface(diagonal, diagonal, srcData.flags, false, 'rotozoomSurface');
+ var dstData = SDL.surfaces[ret];
+ dstData.ctx.translate(diagonal / 2, diagonal / 2);
+ dstData.ctx.rotate(angle * Math.PI / 180);
+ dstData.ctx.drawImage(srcData.canvas, -w / 2, -h / 2, w, h);
+ return ret;
+ },
+
SDL_SetAlpha: function(surf, flag, alpha) {
SDL.surfaces[surf].alpha = alpha;
},