openfl
Version:
A fast, productive library for 2D cross-platform development.
87 lines (70 loc) • 3.42 kB
JavaScript
// Class: openfl.display._internal.DOMTilemap
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;
function openfl_display__$internal_DOMDisplayObject() {return require("./../../../openfl/display/_internal/DOMDisplayObject");}
function openfl_geom_Matrix() {return require("./../../../openfl/geom/Matrix");}
function openfl_display__$internal_CanvasDisplayObject() {return require("./../../../openfl/display/_internal/CanvasDisplayObject");}
function openfl_display__$internal_CanvasTilemap() {return require("./../../../openfl/display/_internal/CanvasTilemap");}
function openfl_display__$internal_DOMBitmap() {return require("./../../../openfl/display/_internal/DOMBitmap");}
// Constructor
var DOMTilemap = function(){}
// Meta
DOMTilemap.__name__ = "openfl.display._internal.DOMTilemap";
DOMTilemap.__isInterface__ = false;
DOMTilemap.prototype = {
};
DOMTilemap.prototype.__class__ = DOMTilemap.prototype.constructor = $hxClasses["openfl.display._internal.DOMTilemap"] = DOMTilemap;
// Init
// Statics
DOMTilemap.clear = function(tilemap,renderer) {
(openfl_display__$internal_DOMDisplayObject().default).clear(tilemap,renderer);
if(tilemap.__canvas != null) {
renderer.element.removeChild(tilemap.__canvas);
tilemap.__canvas = null;
tilemap.__style = null;
}
}
DOMTilemap.render = function(tilemap,renderer) {
if(tilemap.stage != null && tilemap.__worldVisible && tilemap.__renderable && tilemap.__group.__tiles.length > 0) {
if(tilemap.__canvas == null) {
tilemap.__canvas = window.document.createElement("canvas");
tilemap.__context = tilemap.__canvas.getContext("2d");
renderer.__initializeElement(tilemap,tilemap.__canvas);
}
tilemap.__canvas.width = tilemap.__width;
tilemap.__canvas.height = tilemap.__height;
renderer.__canvasRenderer.context = tilemap.__context;
var cacheRenderTransform = tilemap.__renderTransform;
tilemap.__renderTransform = (openfl_geom_Matrix().default).__identity;
(openfl_display__$internal_CanvasDisplayObject().default).render(tilemap,renderer.__canvasRenderer);
(openfl_display__$internal_CanvasTilemap().default).render(tilemap,renderer.__canvasRenderer);
tilemap.__renderTransform = cacheRenderTransform;
renderer.__canvasRenderer.context = null;
renderer.__updateClip(tilemap);
renderer.__applyStyle(tilemap,true,false,true);
} else {
DOMTilemap.clear(tilemap,renderer);
}
}
DOMTilemap.renderDrawable = function(tilemap,renderer) {
renderer.__updateCacheBitmap(tilemap,false);
if(tilemap.__cacheBitmap != null && !tilemap.__isCacheBitmapRender) {
renderer.__renderDrawableClear(tilemap);
tilemap.__cacheBitmap.stage = tilemap.stage;
(openfl_display__$internal_DOMBitmap().default).render(tilemap.__cacheBitmap,renderer);
} else {
DOMTilemap.render(tilemap,renderer);
}
renderer.__renderEvent(tilemap);
}
DOMTilemap.renderDrawableClear = function(tilemap,renderer) {
DOMTilemap.clear(tilemap,renderer);
}
DOMTilemap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}
// Export
exports.default = DOMTilemap;