this._loadbalancingServerURL = {};
this._textureAssetsCache = {};
this.loadbalancing = false;
+ this._masks = [];
if (this.fluidbook.settings.hosting_loadbalancer) {
this.loadbalancing = ['s1.lb.fluidbook.com'];
}
$this.loadbalancing = [];
$.each(data, function (i, server) {
$.ajax('https://' + server.h + '/status.txt', {
- dataType: 'text',
- timeout: 5000
+ dataType: 'text', timeout: 5000
}).done(function (data) {
if (data == '1') {
for (let i = 0; i < server.w; i++) {
var $this = this;
var $_callback;
+ this.loadMask(page);
$_callback = function () {
$this.loadTexture(page, function () {
}
},
+ loadMask: function (page) {
+ if (this._masks[page] !== undefined) {
+ return;
+ }
+ let masks = [];
+ $.each(this.fluidbook.settings.masks, function (k, mask) {
+ if (mask.page !== page) {
+ return;
+ }
+ masks.push(mask.area);
+ });
+ if (masks.length === 0) {
+ this._masks[page] = false;
+ return;
+ }
+
+ let dim = this.fluidbook.settings.pagesDimensions[page];
+ let w = (dim[0] / this.fluidbook.settings.cssScale);
+ let h = (dim[1] / this.fluidbook.settings.cssScale);
+
+ let canvas = $('<canvas class="mask_canvas" id="mask_canvas_' + page + '" width="' + Math.floor(w) + '" height="' + Math.floor(h) + '" aria-hidden="true"></canvas>');
+ $("body").append(canvas);
+ let c = canvas.get(0);
+ let ctx = c.getContext("2d");
+ ctx.fillStyle = "#ffffff";
+ ctx.fillRect(0, 0, c.width, c.height);
+ $.each(masks, function (k, mask) {
+ ctx.clearRect(mask.x, mask.y, mask.width, mask.height);
+ });
+ this._masks[page] = c.toDataURL();
+ $("#mask_canvas_" + page).remove();
+ },
+
preloadAround: function (page) {
if (this.numPreload == 0) {
- //this.cleanPreloaded();
return;
}
} else {
$(t).append(this.texts[pageNr]);
}
+
+ if (this._masks[pageNr]) {
+ t.css('mask-image', 'url("' + this._masks[pageNr] + '")');
+ }
callback();
},