starling-framework
Version:
A fast, productive library for 2D cross-platform development.
110 lines (92 loc) • 3.62 kB
JavaScript
// 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;