import Base from '../core/Base';
import vendor from '../core/vendor';
import createCompositor from '../createCompositor';
/**
* @constructor clay.loader.FX
* @extends clay.core.Base
*/
var FXLoader = Base.extend(/** @lends clay.loader.FX# */ {
/**
* @type {string}
*/
rootPath: '',
/**
* @type {string}
*/
textureRootPath: '',
/**
* @type {string}
*/
shaderRootPath: '',
/**
* @type {clay.Scene}
*/
scene: null,
/**
* @type {clay.Camera}
*/
camera: null
},
/** @lends clay.loader.FX.prototype */
{
/**
* @param {string} url
*/
load: function(url) {
var self = this;
if (!this.rootPath) {
this.rootPath = url.slice(0, url.lastIndexOf('/'));
}
vendor.request.get({
url: url,
onprogress: function(percent, loaded, total) {
self.trigger('progress', percent, loaded, total);
},
onerror: function(e) {
self.trigger('error', e);
},
responseType: 'text',
onload: function (data) {
createCompositor(JSON.parse(data), {
textureRootPath: this.textureRootPath || this.rootPath,
camera: this.camera,
scene: this.scene
});
}
});
}
});
export default FXLoader;