UNPKG

starling-framework

Version:

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

110 lines (92 loc) 3.62 kB
// Class: starling.display.Canvas 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 $import = require("./../../import_stub").default; var $extend = require("./../../extend_stub").default; function starling_display_DisplayObjectContainer() {return require("./../../starling/display/DisplayObjectContainer");} function starling_geom_Polygon() {return require("./../../starling/geom/Polygon");} function starling_rendering_VertexData() {return require("./../../starling/rendering/VertexData");} function starling_rendering_IndexData() {return require("./../../starling/rendering/IndexData");} function starling_display_Mesh() {return require("./../../starling/display/Mesh");} function openfl__$Vector_Vector_$Impl_$() {return require("./../../openfl/_Vector/Vector_Impl_");} // Constructor var Canvas = function() { (starling_display_DisplayObjectContainer().default).call(this); this.__polygons = (openfl__$Vector_Vector_$Impl_$().default)._new(); this.__fillColor = 16777215; this.__fillAlpha = 1.0; this.set_touchGroup(true); } // Meta Canvas.__name__ = ["starling","display","Canvas"]; Canvas.__super__ = (starling_display_DisplayObjectContainer().default); Canvas.prototype = $extend((starling_display_DisplayObjectContainer().default).prototype, { dispose: function() { this.__polygons.length = 0; (starling_display_DisplayObjectContainer().default).prototype.dispose.call(this); }, hitTest: function(localPoint) { if(!this.get_visible() || !this.get_touchable() || !this.hitTestMask(localPoint)) { return null; } var len = this.__polygons.length; var _g1 = 0; var _g = len; while(_g1 < _g) { var i = _g1++; if(this.__polygons[i].containsPoint(localPoint)) { return this; } } return null; }, drawCircle: function(x,y,radius) { this.__appendPolygon((starling_geom_Polygon().default).createCircle(x,y,radius)); }, drawEllipse: function(x,y,width,height) { var radiusX = width / 2.0; var radiusY = height / 2.0; this.__appendPolygon((starling_geom_Polygon().default).createEllipse(x + radiusX,y + radiusY,radiusX,radiusY)); }, drawRectangle: function(x,y,width,height) { this.__appendPolygon((starling_geom_Polygon().default).createRectangle(x,y,width,height)); }, drawPolygon: function(polygon) { this.__appendPolygon(polygon); }, beginFill: function(color,alpha) { if(alpha == null) { alpha = 1.0; } if(color == null) { color = 16777215; } this.__fillColor = color; this.__fillAlpha = alpha; }, endFill: function() { this.__fillColor = 16777215; this.__fillAlpha = 1.0; }, clear: function() { this.removeChildren(0,-1,true); this.__polygons.length = 0; }, __appendPolygon: function(polygon) { var vertexData = new (starling_rendering_VertexData().default)(); var indexData = new (starling_rendering_IndexData().default)(polygon.get_numTriangles() * 3); polygon.triangulate(indexData); polygon.copyToVertexData(vertexData); vertexData.colorize("color",this.__fillColor,this.__fillAlpha); this.addChild(new (starling_display_Mesh().default)(vertexData,indexData)); (openfl__$Vector_Vector_$Impl_$().default).set(this.__polygons,this.__polygons.length,polygon); } }); Canvas.prototype.__class__ = Canvas.prototype.constructor = $hxClasses["starling.display.Canvas"] = Canvas; // Init // Statics // Export exports.default = Canvas;