UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

239 lines (222 loc) 8.62 kB
// Class: openfl.display.CanvasRenderer var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../hxClasses_stub").default; var $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; var $extend = require("./../../extend_stub").default; function openfl_display_DisplayObjectRenderer() {return require("./../../openfl/display/DisplayObjectRenderer");} function Std() {return require("./../../Std");} function openfl_display__$internal_CanvasBitmapData() {return require("./../../openfl/display/_internal/CanvasBitmapData");} function openfl_display__$internal_CanvasBitmap() {return require("./../../openfl/display/_internal/CanvasBitmap");} function openfl_display__$internal_CanvasDisplayObject() {return require("./../../openfl/display/_internal/CanvasDisplayObject");} function openfl_display__$internal_CanvasDisplayObjectContainer() {return require("./../../openfl/display/_internal/CanvasDisplayObjectContainer");} function openfl_display__$internal_CanvasSimpleButton() {return require("./../../openfl/display/_internal/CanvasSimpleButton");} function openfl_display__$internal_CanvasTextField() {return require("./../../openfl/display/_internal/CanvasTextField");} function openfl_display__$internal_CanvasVideo() {return require("./../../openfl/display/_internal/CanvasVideo");} function openfl_display__$internal_CanvasTilemap() {return require("./../../openfl/display/_internal/CanvasTilemap");} function openfl_geom_Matrix() {return require("./../../openfl/geom/Matrix");} // Constructor var CanvasRenderer = function(context) { (openfl_display_DisplayObjectRenderer().default).call(this); this.context = context; this.__tempMatrix = new (openfl_geom_Matrix().default)(); this.__type = "canvas"; } // Meta CanvasRenderer.__name__ = "openfl.display.CanvasRenderer"; CanvasRenderer.__isInterface__ = false; CanvasRenderer.__super__ = (openfl_display_DisplayObjectRenderer().default); CanvasRenderer.prototype = $extend((openfl_display_DisplayObjectRenderer().default).prototype, { applySmoothing: function(context,value) { context.imageSmoothingEnabled = value; }, setTransform: function(transform,context) { if(context == null) { context = this.context; } else if(this.context == context && this.__worldTransform != null) { this.__tempMatrix.copyFrom(transform); this.__tempMatrix.concat(this.__worldTransform); transform = this.__tempMatrix; } if(this.__roundPixels) { context.setTransform(transform.a,transform.b,transform.c,transform.d,(Std().default).int(transform.tx),(Std().default).int(transform.ty)); } else { context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty); } }, __clear: function() { if(this.__stage != null) { var cacheBlendMode = this.__blendMode; this.__blendMode = null; this.__setBlendMode("normal"); this.context.setTransform(1,0,0,1,0,0); this.context.globalAlpha = 1; if(!this.__stage.__transparent && this.__stage.__clearBeforeRender) { this.context.fillStyle = this.__stage.__colorString; this.context.fillRect(0,0,this.__stage.stageWidth * this.__stage.window.get_scale(),this.__stage.stageHeight * this.__stage.window.get_scale()); } else if(this.__stage.__transparent && this.__stage.__clearBeforeRender) { this.context.clearRect(0,0,this.__stage.stageWidth * this.__stage.window.get_scale(),this.__stage.stageHeight * this.__stage.window.get_scale()); } this.__setBlendMode(cacheBlendMode); } }, __popMask: function() { this.context.restore(); }, __popMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(!object.__isCacheBitmapRender && object.__mask != null) { this.__popMask(); } if(handleScrollRect && object.__scrollRect != null) { this.__popMaskRect(); } }, __popMaskRect: function() { this.context.restore(); }, __pushMask: function(mask) { this.context.save(); this.setTransform(mask.__renderTransform,this.context); this.context.beginPath(); this.__renderDrawableMask(mask); this.context.closePath(); this.context.clip(); }, __pushMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(handleScrollRect && object.__scrollRect != null) { this.__pushMaskRect(object.__scrollRect,object.__renderTransform); } if(!object.__isCacheBitmapRender && object.__mask != null) { this.__pushMask(object.__mask); } }, __pushMaskRect: function(rect,transform) { this.context.save(); this.setTransform(transform,this.context); this.context.beginPath(); this.context.rect(rect.x,rect.y,rect.width,rect.height); this.context.clip(); }, __render: function(object) { this.__renderDrawable(object); }, __renderDrawable: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: (openfl_display__$internal_CanvasBitmapData().default).renderDrawable(object,this); break; case 2: (openfl_display__$internal_CanvasBitmap().default).renderDrawable(object,this); break; case 3: (openfl_display__$internal_CanvasDisplayObject().default).renderDrawable(object,this); break; case 4:case 5: (openfl_display__$internal_CanvasDisplayObjectContainer().default).renderDrawable(object,this); break; case 6: (openfl_display__$internal_CanvasSimpleButton().default).renderDrawable(object,this); break; case 7: (openfl_display__$internal_CanvasTextField().default).renderDrawable(object,this); break; case 8: (openfl_display__$internal_CanvasVideo().default).renderDrawable(object,this); break; case 9: (openfl_display__$internal_CanvasTilemap().default).renderDrawable(object,this); break; default: } }, __renderDrawableMask: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: (openfl_display__$internal_CanvasBitmapData().default).renderDrawableMask(object,this); break; case 2: (openfl_display__$internal_CanvasBitmap().default).renderDrawableMask(object,this); break; case 3: (openfl_display__$internal_CanvasDisplayObject().default).renderDrawableMask(object,this); break; case 4:case 5: (openfl_display__$internal_CanvasDisplayObjectContainer().default).renderDrawableMask(object,this); break; case 6: (openfl_display__$internal_CanvasSimpleButton().default).renderDrawableMask(object,this); break; case 7: (openfl_display__$internal_CanvasTextField().default).renderDrawableMask(object,this); break; case 8: (openfl_display__$internal_CanvasVideo().default).renderDrawableMask(object,this); break; case 9: (openfl_display__$internal_CanvasTilemap().default).renderDrawableMask(object,this); break; default: } }, __setBlendMode: function(value) { if(this.__overrideBlendMode != null) { value = this.__overrideBlendMode; } if(this.__blendMode == value) { return; } this.__blendMode = value; this.__setBlendModeContext(this.context,value); }, __setBlendModeContext: function(context,value) { switch(value) { case "add": context.globalCompositeOperation = "lighter"; break; case "darken": context.globalCompositeOperation = "darken"; break; case "difference": context.globalCompositeOperation = "difference"; break; case "hardlight": context.globalCompositeOperation = "hard-light"; break; case "lighten": context.globalCompositeOperation = "lighten"; break; case "multiply": context.globalCompositeOperation = "multiply"; break; case "overlay": context.globalCompositeOperation = "overlay"; break; case "screen": context.globalCompositeOperation = "screen"; break; default: context.globalCompositeOperation = "source-over"; } } }); CanvasRenderer.prototype.__class__ = CanvasRenderer.prototype.constructor = $hxClasses["openfl.display.CanvasRenderer"] = CanvasRenderer; // Init // Statics CanvasRenderer.__meta__ = { fields : { context : { SuppressWarnings : ["checkstyle:Dynamic"]}, applySmoothing : { SuppressWarnings : ["checkstyle:Dynamic"]}, setTransform : { SuppressWarnings : ["checkstyle:Dynamic"]}, __setBlendModeContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}} // Export exports.default = CanvasRenderer;