| 2147 |
this.filterDraw(entity, c); |
this.filterDraw(entity, c); |
| 2148 |
} else { |
} else { |
| 2149 |
entity.draw(c); |
entity.draw(c); |
| 2150 |
} |
if(entity.entities) { |
| 2151 |
if(entity.entities) { |
if(entity.scroll) { |
| 2152 |
if(entity.scroll) { |
c.translate(entity.scroll.x, entity.scroll.y); |
| 2153 |
c.translate(entity.scroll.x, entity.scroll.y); |
} |
| 2154 |
} |
for(var i = 0; i < entity.entities.length; i++) { |
| 2155 |
for(var i = 0; i < entity.entities.length; i++) { |
this.renderEntity(entity.entities[i], c); |
| 2156 |
this.renderEntity(entity.entities[i], c); |
} |
| 2157 |
} |
} |
| 2158 |
} |
} |
| 2159 |
c.restore(); |
c.restore(); |
| 2161 |
}; |
}; |
| 2162 |
Renderer.prototype.renderPure = function (entity, c) { |
Renderer.prototype.renderPure = function (entity, c) { |
| 2163 |
entity.draw(c); |
entity.draw(c); |
| 2164 |
|
if(entity.entities) { |
| 2165 |
|
for(var i = 0; i < entity.entities.length; i++) { |
| 2166 |
|
this.renderEntity(entity.entities[i], c); |
| 2167 |
|
} |
| 2168 |
|
} |
| 2169 |
}; |
}; |
| 2170 |
Renderer.prototype.filterDraw = function (entity, c) { |
Renderer.prototype.filterDraw = function (entity, c) { |
| 2171 |
var buffer = new BufferedRenderer(entity); |
var buffer = new BufferedRenderer(entity); |
| 3021 |
return Filter; |
return Filter; |
| 3022 |
})(); |
})(); |
| 3023 |
ImageFilter.Filter = Filter; |
ImageFilter.Filter = Filter; |
| 3024 |
|
var UniversalTransitionFilter = (function (_super) { |
| 3025 |
|
__extends(UniversalTransitionFilter, _super); |
| 3026 |
|
function UniversalTransitionFilter(image, amount, repeat) { |
| 3027 |
|
_super.call(this); |
| 3028 |
|
this.opt.amount = amount; |
| 3029 |
|
this.opt.image = image; |
| 3030 |
|
this.opt.repeat = repeat; |
| 3031 |
|
} |
| 3032 |
|
UniversalTransitionFilter.prototype.getImageData = function (image, canvas) { |
| 3033 |
|
var context; |
| 3034 |
|
if(!canvas) { |
| 3035 |
|
canvas = window.createCanvas(image.width, image.height); |
| 3036 |
|
context = canvas.getContext("2d"); |
| 3037 |
|
context.drawImage(image, 0, 0); |
| 3038 |
|
} else { |
| 3039 |
|
context = canvas.getContext("2d"); |
| 3040 |
|
} |
| 3041 |
|
return context.getImageData(0, 0, image.width, image.height); |
| 3042 |
|
}; |
| 3043 |
|
UniversalTransitionFilter.prototype.createRuleImage = function () { |
| 3044 |
|
var image = this.opt.image; |
| 3045 |
|
if(image instanceof ImageData) { |
| 3046 |
|
this.ruleImage = image; |
| 3047 |
|
} else if(image instanceof HTMLCanvasElement) { |
| 3048 |
|
this.ruleImage = this.getImageData(image, image); |
| 3049 |
|
} else if(image instanceof HTMLImageElement || image instanceof HTMLVideoElement) { |
| 3050 |
|
this.ruleImage = this.getImageData(image); |
| 3051 |
|
} else { |
| 3052 |
|
var sprite = image.createSprite(); |
| 3053 |
|
this.ruleImage = this.getImageData(sprite.image); |
| 3054 |
|
} |
| 3055 |
|
}; |
| 3056 |
|
UniversalTransitionFilter.prototype.filter = function (pixels) { |
| 3057 |
|
if(!this.ruleImage) { |
| 3058 |
|
this.createRuleImage(); |
| 3059 |
|
} |
| 3060 |
|
var amount = this.getOption("amount", 255); |
| 3061 |
|
var repeat = this.getOption("repeat", false); |
| 3062 |
|
var w = pixels.width; |
| 3063 |
|
var h = pixels.height; |
| 3064 |
|
var w2 = this.ruleImage.width; |
| 3065 |
|
var h2 = this.ruleImage.height; |
| 3066 |
|
var data = pixels.data; |
| 3067 |
|
var data2 = this.ruleImage.data; |
| 3068 |
|
if(w == w2 && h == h2) { |
| 3069 |
|
for(var i = 0, length = data.length; i < length >> 2; i++) { |
| 3070 |
|
var index = i << 2; |
| 3071 |
|
data[index + 3] = Math.round(data[index + 3] / 255 * Math.max(0, data2[index] - amount)); |
| 3072 |
|
} |
| 3073 |
|
} else if(repeat) { |
| 3074 |
|
for(var x = 0; x < w; x++) { |
| 3075 |
|
for(var y = 0; y < h; y++) { |
| 3076 |
|
var x2 = x % w2; |
| 3077 |
|
var y2 = y % h2; |
| 3078 |
|
var index = (x + y * w) * 4; |
| 3079 |
|
var index2 = (x2 + y2 * w2) * 4; |
| 3080 |
|
data[index + 3] = Math.round(data[index + 3] / 255 * Math.max(0, data2[index2] - amount)); |
| 3081 |
|
} |
| 3082 |
|
} |
| 3083 |
|
} else { |
| 3084 |
|
var xPer = w2 / w; |
| 3085 |
|
var yPer = h2 / h; |
| 3086 |
|
for(var x = 0; x < w; x++) { |
| 3087 |
|
for(var y = 0; y < h; y++) { |
| 3088 |
|
var x2 = Math.round(xPer * x); |
| 3089 |
|
var y2 = Math.round(yPer * y); |
| 3090 |
|
var index = (x + y * w) * 4; |
| 3091 |
|
var index2 = (x2 + y2 * w2) * 4; |
| 3092 |
|
data[index + 3] = Math.round(data[index + 3] / 255 * Math.max(0, data2[index2] - amount)); |
| 3093 |
|
} |
| 3094 |
|
} |
| 3095 |
|
} |
| 3096 |
|
}; |
| 3097 |
|
return UniversalTransitionFilter; |
| 3098 |
|
})(Filter); |
| 3099 |
|
ImageFilter.UniversalTransitionFilter = UniversalTransitionFilter; |
| 3100 |
var GreyscaleFilter = (function (_super) { |
var GreyscaleFilter = (function (_super) { |
| 3101 |
__extends(GreyscaleFilter, _super); |
__extends(GreyscaleFilter, _super); |
| 3102 |
function GreyscaleFilter(opacity) { |
function GreyscaleFilter(opacity) { |
| 3105 |
} |
} |
| 3106 |
GreyscaleFilter.prototype.filter = function (pixels) { |
GreyscaleFilter.prototype.filter = function (pixels) { |
| 3107 |
var opacity = this.getOption("opacity", 1); |
var opacity = this.getOption("opacity", 1); |
| 3108 |
var data = data = pixels.data; |
var data = pixels.data; |
| 3109 |
for(var i = 0, length = data.length; i < length >> 2; i++) { |
for(var i = 0, length = data.length; i < length >> 2; i++) { |
| 3110 |
var index = i << 2; |
var index = i << 2; |
| 3111 |
var r = data[index], g = data[index + 1], b = data[index + 2]; |
var r = data[index], g = data[index + 1], b = data[index + 2]; |
| 3126 |
} |
} |
| 3127 |
SepiaFilter.prototype.filter = function (pixels) { |
SepiaFilter.prototype.filter = function (pixels) { |
| 3128 |
var opacity = this.getOption("opacity", 1); |
var opacity = this.getOption("opacity", 1); |
| 3129 |
var data = data = pixels.data; |
var data = pixels.data; |
| 3130 |
for(var i = 0, length = data.length; i < length >> 2; i++) { |
for(var i = 0, length = data.length; i < length >> 2; i++) { |
| 3131 |
var index = i << 2; |
var index = i << 2; |
| 3132 |
var r = data[index], g = data[index + 1], b = data[index + 2]; |
var r = data[index], g = data[index + 1], b = data[index + 2]; |
| 3148 |
TintFilter.prototype.filter = function (pixels) { |
TintFilter.prototype.filter = function (pixels) { |
| 3149 |
var opacity = this.getOption("opacity", 1); |
var opacity = this.getOption("opacity", 1); |
| 3150 |
var color = this.getOption("color", "#f00"); |
var color = this.getOption("color", "#f00"); |
| 3151 |
var data = data = pixels.data; |
var data = pixels.data; |
| 3152 |
var src = parseInt(this.createColor(color), 16); |
var src = parseInt(this.createColor(color), 16); |
| 3153 |
var r2 = (src & 16711680) >> 16, g2 = (src & 65280) >> 8, b2 = (src & 255); |
var r2 = (src & 16711680) >> 16, g2 = (src & 65280) >> 8, b2 = (src & 255); |
| 3154 |
for(var i = 0, length = data.length; i < length >> 2; i++) { |
for(var i = 0, length = data.length; i < length >> 2; i++) { |
| 3635 |
if(this.entity.filter.length == 0) { |
if(this.entity.filter.length == 0) { |
| 3636 |
delete this.entity.filter; |
delete this.entity.filter; |
| 3637 |
} |
} |
| 3638 |
|
this.entity.updated(); |
| 3639 |
}); |
}); |
| 3640 |
} |
} |
| 3641 |
this.target[prop] = { |
this.target[prop] = { |
| 3648 |
if(j == "targetClass" || j == "autoDelete") { |
if(j == "targetClass" || j == "autoDelete") { |
| 3649 |
continue; |
continue; |
| 3650 |
} |
} |
| 3651 |
if(this.props[prop][j].start !== undefined) { |
if(this.props[prop][j].start !== undefined && this.props[prop][j].start != E.prototype.start) { |
| 3652 |
var s = this.props[prop][j].start; |
var s = this.props[prop][j].start; |
| 3653 |
filter.opt[j] = s; |
filter.opt[j] = s; |
| 3654 |
this.origin[prop][j] = s; |
this.origin[prop][j] = s; |
| 4906 |
break; |
break; |
| 4907 |
} |
} |
| 4908 |
} else { |
} else { |
| 4909 |
this.callEffect(effect); |
type.callEffect(effect); |
| 4910 |
} |
} |
| 4911 |
}; |
}; |
| 4912 |
Effect.prototype.callEffect = function (scene) { |
Effect.prototype.callEffect = function (scene) { |
| 5168 |
_this.effected.fire(); |
_this.effected.fire(); |
| 5169 |
}); |
}); |
| 5170 |
}; |
}; |
| 5171 |
|
EffectScene.prototype.universal = function (image, repeat) { |
| 5172 |
|
var _this = this; |
| 5173 |
|
var t = Effect.time; |
| 5174 |
|
this.swapScene(); |
| 5175 |
|
this.sp1.tl().filter(ImageFilter.UniversalTransitionFilter, { |
| 5176 |
|
image: image, |
| 5177 |
|
repeat: repeat, |
| 5178 |
|
amount: { |
| 5179 |
|
start: -255, |
| 5180 |
|
end: 255 |
| 5181 |
|
} |
| 5182 |
|
}, t).removeFromScene(); |
| 5183 |
|
this.sp2.tl().show().delay(t).then(function () { |
| 5184 |
|
_this.effected.fire(); |
| 5185 |
|
}); |
| 5186 |
|
}; |
| 5187 |
|
EffectScene.prototype.universalTwin = function (image, repeat) { |
| 5188 |
|
var _this = this; |
| 5189 |
|
var t = Effect.time; |
| 5190 |
|
this.sp1.tl().filter(ImageFilter.UniversalTransitionFilter, { |
| 5191 |
|
image: image, |
| 5192 |
|
repeat: repeat, |
| 5193 |
|
amount: { |
| 5194 |
|
start: -255, |
| 5195 |
|
end: 255 |
| 5196 |
|
} |
| 5197 |
|
}, t).removeFromScene(); |
| 5198 |
|
this.sp2.tl().show().filter(ImageFilter.UniversalTransitionFilter, { |
| 5199 |
|
image: image, |
| 5200 |
|
repeat: repeat, |
| 5201 |
|
amount: { |
| 5202 |
|
start: 255, |
| 5203 |
|
end: -255 |
| 5204 |
|
} |
| 5205 |
|
}, t).then(function () { |
| 5206 |
|
_this.effected.fire(); |
| 5207 |
|
}); |
| 5208 |
|
}; |
| 5209 |
|
EffectScene.prototype.universalDelay = function (image, repeat, color) { |
| 5210 |
|
var _this = this; |
| 5211 |
|
var t = Effect.time / 2; |
| 5212 |
|
var shape = new Shape(this.sp1.width, this.sp1.height, ShapeStyle.fill, color); |
| 5213 |
|
shape.setDrawOption("globalAlpha", 0); |
| 5214 |
|
this.root.insert(shape, 0); |
| 5215 |
|
this.sp1.tl().filter(ImageFilter.UniversalTransitionFilter, { |
| 5216 |
|
image: image, |
| 5217 |
|
repeat: repeat, |
| 5218 |
|
amount: { |
| 5219 |
|
start: -255, |
| 5220 |
|
end: 255 |
| 5221 |
|
} |
| 5222 |
|
}, t).removeFromScene(); |
| 5223 |
|
shape.tl().fadeIn(t).delay(t).removeFromScene(); |
| 5224 |
|
this.sp2.tl().delay(t).show().filter(ImageFilter.UniversalTransitionFilter, { |
| 5225 |
|
image: image, |
| 5226 |
|
repeat: repeat, |
| 5227 |
|
amount: { |
| 5228 |
|
start: 255, |
| 5229 |
|
end: -255 |
| 5230 |
|
} |
| 5231 |
|
}, t).then(function () { |
| 5232 |
|
_this.effected.fire(); |
| 5233 |
|
}); |
| 5234 |
|
}; |
| 5235 |
EffectScene.prototype.getFilter = function (target) { |
EffectScene.prototype.getFilter = function (target) { |
| 5236 |
if(!target.filter) { |
if(!target.filter) { |
| 5237 |
target.filter = new ImageFilter.FilterChain(); |
target.filter = new ImageFilter.FilterChain(); |