]> _ Git - fluidbook-html5.git/commitdiff
wip #6800 @0.25
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 20 Mar 2024 15:47:54 +0000 (16:47 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 20 Mar 2024 15:47:54 +0000 (16:47 +0100)
js/libs/fluidbook/fluidbook.loader.js

index b84761c0acd67c94ccb73e522f130a8c2ab56a3b..754df3d8df22c68a7ecbf029213ac8b6489f5c0f 100644 (file)
@@ -857,8 +857,6 @@ FluidbookLoader.prototype = {
                 }
 
 
-
-
             } else {
                 callback();
             }
@@ -1026,47 +1024,56 @@ FluidbookLoader.prototype = {
             return;
         }
         var $this = this;
+        let canvas = $this.prepareCanvas(1);
 
-        $('canvas[data-page]:not(.thick)').each(function () {
-            if ($this.fluidbook.zoom.zoom === 1 && $(this).hasClass('z')) {
-                return;
-            }
-            let c = $this.prepareCanvas($(this), this.fluidbook.settings.svgToCanvasUpscale !== undefined ? parseFloat(this.fluidbook.settings.svgToCanvasUpscale) : 1);
-            if (!c.changed) {
-                return;
-            }
-            var ctx = c.canvas.getContext("2d");
-
-            var img = $this.texts[c.page];
-            if (img !== undefined && img !== null) {
-                img = img.get(0);
-                if (img.width === 0) {
-                    $this.deletePage(c.page);
-                    $this._preloadPage(c.page, function () {
+        let callback = function (c) {
+            $('#currentDoublePage .page[data-page="' + c.page + '"] .texts canvas').hide();
+            $(c.canvas).show();
+        }
 
-                    });
-                    return;
-                }
-                ctx.drawImage(img, 0, 0, img.width - 2, img.height - 2, 0, 0, c.cw, c.ch);
+        $.each(canvas, function (k, c) {
+            if (c.render) {
+                $this.renderSVGToCanvas(c.page, c.canvas.get(0).getContext("2d"), c.cw, c.ch, function () {
+                    callback(c);
+                });
+            } else {
+                callback(c);
             }
+        });
+    },
 
+    renderSVGToCanvas: function (page, ctx, cw, ch, callback) {
+        let $this = this;
+        var img = this.texts[page];
+        if (img !== undefined && img !== null) {
+            img = img.get(0);
+            if (img.width === 0) {
+                $this.deletePage(c.page);
+                $this._preloadPage(c.page, function () {
 
-            let textThickness = parseFloat($this.fluidbook.settings.textsThickness);
-
-            if (!$(this).hasClass('z') && $this.fluidbook.settings.textsThickness > 1 && $this.fluidbook.settings.textsThicknessPages.indexOf(page) >= 0) {
-                $('canvas:not(.z)[data-page=' + page + '].thick').remove();
-                var clone;
-                for (var i = 1; i <= textThickness; i++) {
-                    clone = $this._cloneCanvas($(this).get(0));
-                    $(clone).insertBefore($(this));
-                }
-                var lastOpacity = $this.fluidbook.settings.textsThickness - Math.floor($this.fluidbook.settings.textsThickness);
-                if (lastOpacity > 0) {
-                    $(clone).css('opacity', lastOpacity);
-                }
+                });
+                return;
             }
-
-        });
+            ctx.drawImage(img, 0, 0, img.width - 2, img.height - 2, 0, 0, cw, ch);
+        }
+        if (callback !== undefined) {
+            callback();
+        }
+        //
+        // let textThickness = parseFloat($this.fluidbook.settings.textsThickness);
+        //
+        // if (!$(this).hasClass('z') && $this.fluidbook.settings.textsThickness > 1 && $this.fluidbook.settings.textsThicknessPages.indexOf(page) >= 0) {
+        //     $('canvas:not(.z)[data-page=' + page + '].thick').remove();
+        //     var clone;
+        //     for (var i = 1; i <= textThickness; i++) {
+        //         clone = $this._cloneCanvas($(this).get(0));
+        //         $(clone).insertBefore($(this));
+        //     }
+        //     var lastOpacity = $this.fluidbook.settings.textsThickness - Math.floor($this.fluidbook.settings.textsThickness);
+        //     if (lastOpacity > 0) {
+        //         $(clone).css('opacity', lastOpacity);
+        //     }
+        // }
     },
 
     _cloneCanvas: function (source) {