UNPKG

openfl

Version:

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

238 lines (221 loc) 7.59 kB
// Class: openfl.display.CairoRenderer 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 openfl_display__$internal_CairoBitmapData() {return require("./../../openfl/display/_internal/CairoBitmapData");} function openfl_display__$internal_CairoBitmap() {return require("./../../openfl/display/_internal/CairoBitmap");} function openfl_display__$internal_CairoDisplayObject() {return require("./../../openfl/display/_internal/CairoDisplayObject");} function openfl_display__$internal_CairoDisplayObjectContainer() {return require("./../../openfl/display/_internal/CairoDisplayObjectContainer");} function openfl_display__$internal_CairoSimpleButton() {return require("./../../openfl/display/_internal/CairoSimpleButton");} function openfl_display__$internal_CairoTextField() {return require("./../../openfl/display/_internal/CairoTextField");} function openfl_display__$internal_CairoTilemap() {return require("./../../openfl/display/_internal/CairoTilemap");} function openfl_display__$internal_CairoShape() {return require("./../../openfl/display/_internal/CairoShape");} // Constructor var CairoRenderer = function(cairo) { (openfl_display_DisplayObjectRenderer().default).call(this); } // Meta CairoRenderer.__name__ = "openfl.display.CairoRenderer"; CairoRenderer.__isInterface__ = false; CairoRenderer.__super__ = (openfl_display_DisplayObjectRenderer().default); CairoRenderer.prototype = $extend((openfl_display_DisplayObjectRenderer().default).prototype, { applyMatrix: function(transform,cairo) { if(cairo == null) { cairo = this.cairo; } this.__matrix.copyFrom(transform); if(this.cairo == cairo && this.__worldTransform != null) { this.__matrix.concat(this.__worldTransform); } this.__matrix3[0] = this.__matrix.a; this.__matrix3[1] = this.__matrix.b; this.__matrix3[3] = this.__matrix.c; this.__matrix3[4] = this.__matrix.d; if(this.__roundPixels) { this.__matrix3[6] = Math.round(this.__matrix.tx); this.__matrix3[7] = Math.round(this.__matrix.ty); } else { this.__matrix3[6] = this.__matrix.tx; this.__matrix3[7] = this.__matrix.ty; } cairo.set_matrix(this.__matrix3); }, __clear: function() { if(this.cairo == null) { return; } this.cairo.identityMatrix(); if(this.__stage != null && this.__stage.__clearBeforeRender) { var cacheBlendMode = this.__blendMode; this.__setBlendMode("normal"); this.cairo.setSourceRGB(this.__stage.__colorSplit[0],this.__stage.__colorSplit[1],this.__stage.__colorSplit[2]); this.cairo.paint(); this.__setBlendMode(cacheBlendMode); } }, __popMask: function() { this.cairo.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.cairo.restore(); }, __pushMask: function(mask) { this.cairo.save(); this.applyMatrix(mask.__renderTransform,this.cairo); this.cairo.newPath(); this.__renderDrawableMask(mask); this.cairo.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.cairo.save(); this.applyMatrix(transform,this.cairo); this.cairo.newPath(); this.cairo.rectangle(rect.x,rect.y,rect.width,rect.height); this.cairo.clip(); }, __render: function(object) { if(this.cairo == null) { return; } this.__renderDrawable(object); }, __renderDrawable: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: (openfl_display__$internal_CairoBitmapData().default).renderDrawable(object,this); break; case 2: (openfl_display__$internal_CairoBitmap().default).renderDrawable(object,this); break; case 3: (openfl_display__$internal_CairoDisplayObject().default).renderDrawable(object,this); break; case 4:case 5: (openfl_display__$internal_CairoDisplayObjectContainer().default).renderDrawable(object,this); break; case 6: (openfl_display__$internal_CairoSimpleButton().default).renderDrawable(object,this); break; case 7: (openfl_display__$internal_CairoTextField().default).renderDrawable(object,this); break; case 8: break; case 9: (openfl_display__$internal_CairoTilemap().default).renderDrawable(object,this); break; default: } }, __renderDrawableMask: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: (openfl_display__$internal_CairoBitmapData().default).renderDrawableMask(object,this); break; case 2: (openfl_display__$internal_CairoBitmap().default).renderDrawableMask(object,this); break; case 3: (openfl_display__$internal_CairoShape().default).renderDrawableMask(object,this); break; case 4:case 5: (openfl_display__$internal_CairoDisplayObjectContainer().default).renderDrawableMask(object,this); break; case 6: (openfl_display__$internal_CairoSimpleButton().default).renderDrawableMask(object,this); break; case 7: (openfl_display__$internal_CairoTextField().default).renderDrawableMask(object,this); break; case 8: break; case 9: (openfl_display__$internal_CairoTilemap().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.__setBlendModeCairo(this.cairo,value); }, __setBlendModeCairo: function(cairo,value) { switch(value) { case "add": cairo.setOperator(12); break; case "darken": cairo.setOperator(17); break; case "difference": cairo.setOperator(23); break; case "hardlight": cairo.setOperator(21); break; case "layer": cairo.setOperator(2); break; case "lighten": cairo.setOperator(18); break; case "multiply": cairo.setOperator(14); break; case "overlay": cairo.setOperator(16); break; case "screen": cairo.setOperator(15); break; default: cairo.setOperator(2); } } }); CairoRenderer.prototype.__class__ = CairoRenderer.prototype.constructor = $hxClasses["openfl.display.CairoRenderer"] = CairoRenderer; // Init // Statics CairoRenderer.__meta__ = { fields : { cairo : { SuppressWarnings : ["checkstyle:Dynamic"]}, __matrix3 : { SuppressWarnings : ["checkstyle:Dynamic"]}, applyMatrix : { SuppressWarnings : ["checkstyle:Dynamic"]}, __setBlendModeCairo : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}} // Export exports.default = CairoRenderer;