summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--js/api/gallery.js7
-rw-r--r--js/api/set.js4
-rw-r--r--js/image.js4
-rw-r--r--js/render.js26
4 files changed, 30 insertions, 11 deletions
diff --git a/js/api/gallery.js b/js/api/gallery.js
index e8af7f1..ae50dc9 100644
--- a/js/api/gallery.js
+++ b/js/api/gallery.js
@@ -53,7 +53,14 @@ function run_shader(shader_object){
console.log(shader_object)
shader_id_root = shader_object.shader_id
if ($("#persist-image:checked").length) {
+ var new_w = parseInt(shader_object.width,10)
+ var new_h = parseInt(shader_object.width,10)
$("#url").val( shader_object.image_url )
+ if (new_w && new_h) {
+ preserve_dimensions = true
+ w = new_w
+ h = new_h
+ }
load()
}
$("#shader").val(shader_object.script)
diff --git a/js/api/set.js b/js/api/set.js
index 088edbc..3446134 100644
--- a/js/api/set.js
+++ b/js/api/set.js
@@ -6,7 +6,9 @@ function save_shader(){
image_url: $("#url").val(),
username: user.username,
name: $("#shader-name").val() || "",
- shader_id: shader_id_root
+ shader_id: shader_id_root,
+ width: $("#width").int() || "",
+ height: $("#height").int() || ""
}
var thumb = make_thumbnail()
diff --git a/js/image.js b/js/image.js
index 3138299..9ac1290 100644
--- a/js/image.js
+++ b/js/image.js
@@ -17,14 +17,14 @@ function loadImage(imageURL, callback) {
// gif.on("error", tryToLoadNextImage);
// gif.on("rendered", trackLoadTime);
gif.on("rendered", callback);
- return gif.render();
+ gif.render();
}
else {
window.img = new Image();
// img.addEventListener("error", tryToLoadNextImage);
img.addEventListener("load", callback);
img.crossOrigin = "anonymous";
- return img.src = imageURL;
+ img.src = imageURL;
}
}
diff --git a/js/render.js b/js/render.js
index ac26eec..68554cb 100644
--- a/js/render.js
+++ b/js/render.js
@@ -2,6 +2,7 @@ var frame, img_frame;
var timeout, raf_id, start_t = 0, old_t = 0, pause_t = 0
var paused = false, dragging = false, rendering = false, scrolling = false, deferring = false, scrollTimeout = null
var fps = 30
+var preserve_dimensions = true;
function choose (){
loading = true
@@ -24,26 +25,35 @@ function ready(){
status("")
if (window.gif) {
frame = gif.frames[0]
- actual_w = w = cc.canvas.width = frame.ctx.canvas.width
- actual_h = h = cc.canvas.height = frame.ctx.canvas.height
+ cc.canvas.width = frame.ctx.canvas.width
+ cc.canvas.height = frame.ctx.canvas.height
+ if (preserve_dimensions) {
+ actual_w = w = cc.canvas.width
+ actual_h = h = cc.canvas.height
+ }
for (var i=0, f; f=gif.frames[i]; i++){
- f.cloneData = f.ctx.getImageData(0,0,w,h)
+ f.cloneData = f.ctx.getImageData(0,0,cc.canvas.width,cc.canvas.height)
}
}
else if (window.img) {
fc = cq(img.width, img.height)
fc.drawImage(img, 0, 0)
frame = img_frame = { ctx: fc.context }
- actual_w = w = cc.canvas.width = frame.ctx.canvas.width
- actual_h = h = cc.canvas.height = frame.ctx.canvas.height
- frame.cloneData = frame.ctx.getImageData(0,0,w,h)
+ cc.canvas.width = frame.ctx.canvas.width
+ cc.canvas.height = frame.ctx.canvas.height
+ if (preserve_dimensions) {
+ actual_w = w = cc.canvas.width
+ actual_h = h = cc.canvas.height
+ }
+ frame.cloneData = frame.ctx.getImageData(0,0,cc.canvas.width,cc.canvas.height)
}
else {
- cc.canvas.width = w
- cc.canvas.height = h
+ cc.canvas.width = actual_w = w
+ cc.canvas.height = actual_h = h
shader_build()
}
displayWidthHeight(w, h)
+ preserve_dimensions = false;
}
function displayWidthHeight(width, height){