UNPKG

openfl

Version:

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

1,291 lines (1,282 loc) 56.4 kB
// Class: openfl.display.BitmapData 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_IBitmapDrawable() {return require("./../../openfl/display/IBitmapDrawable");} function lime_graphics_ImageChannel() {return require("./../../lime/graphics/ImageChannel");} function openfl_display_DisplayObject() {return require("./../../openfl/display/DisplayObject");} function js_Boot() {return require("./../../js/Boot");} function openfl_geom_Matrix() {return require("./../../openfl/geom/Matrix");} function openfl_geom_ColorTransform() {return require("./../../openfl/geom/ColorTransform");} function openfl_Lib() {return require("./../../openfl/Lib");} function lime_app_Application() {return require("./../../lime/app/Application");} function openfl_display_OpenGLRenderer() {return require("./../../openfl/display/OpenGLRenderer");} function openfl_geom_Rectangle() {return require("./../../openfl/geom/Rectangle");} function lime__$internal_graphics_ImageCanvasUtil() {return require("./../../lime/_internal/graphics/ImageCanvasUtil");} function openfl_display_CanvasRenderer() {return require("./../../openfl/display/CanvasRenderer");} function openfl_utils_ByteArrayData() {return require("./../../openfl/utils/ByteArrayData");} function openfl_display_PNGEncoderOptions() {return require("./../../openfl/display/PNGEncoderOptions");} function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return require("./../../openfl/utils/_ByteArray/ByteArray_Impl_");} function lime_graphics_ImageFileFormat() {return require("./../../lime/graphics/ImageFileFormat");} function openfl_display_JPEGEncoderOptions() {return require("./../../openfl/display/JPEGEncoderOptions");} function lime_utils__$Float32Array_Float32Array_$Impl_$() {return require("./../../lime/utils/_Float32Array/Float32Array_Impl_");} function lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$() {return require("./../../lime/graphics/cairo/_CairoImageSurface/CairoImageSurface_Impl_");} function lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$() {return require("./../../lime/graphics/cairo/_CairoSurface/CairoSurface_Impl_");} function openfl_display3D_textures_TextureBase() {return require("./../../openfl/display3D/textures/TextureBase");} function Std() {return require("./../../Std");} function _$UInt_UInt_$Impl_$() {return require("./../../_UInt/UInt_Impl_");} function openfl__$Vector_Vector_$Impl_$() {return require("./../../openfl/_Vector/Vector_Impl_");} function openfl_display_Bitmap() {return require("./../../openfl/display/Bitmap");} function openfl_geom_Point() {return require("./../../openfl/geom/Point");} function openfl_display__$internal_PerlinNoise() {return require("./../../openfl/display/_internal/PerlinNoise");} function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");} function openfl_errors_Error() {return require("./../../openfl/errors/Error");} function openfl_utils__$Endian_Endian_$Impl_$() {return require("./../../openfl/utils/_Endian/Endian_Impl_");} function openfl__$Vector_VectorIterator() {return require("./../../openfl/_Vector/VectorIterator");} function lime_graphics_Image() {return require("./../../lime/graphics/Image");} function lime_app_Future() {return require("./../../lime/app/Future");} function lime_math_Vector2() {return require("./../../lime/math/Vector2");} // Constructor var BitmapData = function(width,height,transparent,fillColor) { if(fillColor == null) { fillColor = -1; } if(transparent == null) { transparent = true; } this.__drawableType = 0; this.transparent = transparent; width = width == null ? 0 : width; height = height == null ? 0 : height; width = width < 0 ? 0 : width; height = height < 0 ? 0 : height; this.width = width; this.height = height; this.rect = new (openfl_geom_Rectangle().default)(0,0,width,height); this.__textureWidth = width; this.__textureHeight = height; if(width > 0 && height > 0) { if(transparent) { if((fillColor & -16777216) == 0) { fillColor = 0; } } else { fillColor = -16777216 | fillColor & 16777215; } fillColor = fillColor << 8 | fillColor >>> 24 & 255; this.image = new (lime_graphics_Image().default)(null,0,0,width,height,fillColor); this.image.set_transparent(transparent); this.__isValid = true; this.readable = true; } this.__renderTransform = new (openfl_geom_Matrix().default)(); this.__worldAlpha = 1; this.__worldTransform = new (openfl_geom_Matrix().default)(); this.__worldColorTransform = new (openfl_geom_ColorTransform().default)(); this.__renderable = true; } // Meta BitmapData.__name__ = "openfl.display.BitmapData"; BitmapData.__isInterface__ = false; BitmapData.__interfaces__ = [(openfl_display_IBitmapDrawable().default)]; BitmapData.prototype = { applyFilter: function(sourceBitmapData,sourceRect,destPoint,filter) { if(!this.readable || sourceBitmapData == null || !sourceBitmapData.readable) { return; } var needSecondBitmapData = filter.__needSecondBitmapData; var needCopyOfOriginal = filter.__preserveObject; var bitmapData2 = null; var bitmapData3 = null; if(needSecondBitmapData) { bitmapData2 = new BitmapData(this.width,this.height,true,0); } else { bitmapData2 = this; } if(needCopyOfOriginal) { bitmapData3 = new BitmapData(this.width,this.height,true,0); } if(filter.__preserveObject) { bitmapData3.copyPixels(this,this.rect,destPoint); } var lastBitmap = filter.__applyFilter(bitmapData2,this,sourceRect,destPoint); if(filter.__preserveObject) { lastBitmap.draw(bitmapData3,null,null); } if(needSecondBitmapData && lastBitmap == bitmapData2) { bitmapData2.image.version = this.image.version; this.image = bitmapData2.image; } this.image.dirty = true; this.image.version++; }, clone: function() { var bitmapData; if(!this.__isValid) { bitmapData = new BitmapData(this.width,this.height,this.transparent,0); } else if(!this.readable && this.image == null) { bitmapData = new BitmapData(0,0,this.transparent,0); bitmapData.width = this.width; bitmapData.height = this.height; bitmapData.__textureWidth = this.__textureWidth; bitmapData.__textureHeight = this.__textureHeight; bitmapData.rect.copyFrom(this.rect); bitmapData.__framebuffer = this.__framebuffer; bitmapData.__framebufferContext = this.__framebufferContext; bitmapData.__texture = this.__texture; bitmapData.__textureContext = this.__textureContext; bitmapData.__isValid = true; } else { bitmapData = BitmapData.fromImage(this.image.clone(),this.transparent); } bitmapData.__worldTransform.copyFrom(this.__worldTransform); bitmapData.__renderTransform.copyFrom(this.__renderTransform); return bitmapData; }, colorTransform: function(rect,colorTransform) { if(!this.readable) { return; } this.image.colorTransform(rect.__toLimeRectangle(),colorTransform.__toLimeColorMatrix()); }, compare: function(otherBitmapData) { if(otherBitmapData == this) { return 0; } else if(otherBitmapData == null) { return -1; } else if(this.readable == false || otherBitmapData.readable == false) { return -2; } else if(this.width != otherBitmapData.width) { return -3; } else if(this.height != otherBitmapData.height) { return -4; } if(this.image != null && otherBitmapData.image != null && this.image.get_format() == otherBitmapData.image.get_format()) { var bytes = this.image.get_data(); var otherBytes = otherBitmapData.image.get_data(); var equal = true; var _g = 0; var _g1 = bytes.length; while(_g < _g1) { var i = _g++; if(bytes[i] != otherBytes[i]) { equal = false; break; } } if(equal) { return 0; } } var bitmapData = null; var foundDifference = false; var pixel; var otherPixel; var comparePixel; var _g2 = 0; var _g11 = this.height; while(_g2 < _g11) { var y = _g2++; var _g3 = 0; var _g12 = this.width; while(_g3 < _g12) { var x = _g3++; foundDifference = false; pixel = this.getPixel32(x,y); otherPixel = otherBitmapData.getPixel32(x,y); comparePixel = 0; if(pixel != otherPixel) { var r = (pixel >>> 16 & 255) - (otherPixel >>> 16 & 255); var g = (pixel >>> 8 & 255) - (otherPixel >>> 8 & 255); var b = (pixel & 255) - (otherPixel & 255); if(r < 0) { r *= -1; } if(g < 0) { g *= -1; } if(b < 0) { b *= -1; } if(r == 0 && g == 0 && b == 0) { var a = (pixel >>> 24 & 255) - (otherPixel >>> 24 & 255); if(a != 0) { comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | 16711680 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | 65280 | comparePixel & 255 & 255; comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | 255; comparePixel = (a & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; foundDifference = true; } } else { comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (r & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (g & 255) << 8 | comparePixel & 255 & 255; comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | b & 255; comparePixel = -16777216 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; foundDifference = true; } } if(foundDifference) { if(bitmapData == null) { bitmapData = new BitmapData(this.width,this.height,this.transparent || otherBitmapData.transparent,0); } bitmapData.setPixel32(x,y,comparePixel); } } } if(bitmapData == null) { return 0; } return bitmapData; }, copyChannel: function(sourceBitmapData,sourceRect,destPoint,sourceChannel,destChannel) { if(!this.readable) { return; } var sourceChannel1; switch(sourceChannel) { case 1: sourceChannel1 = (lime_graphics_ImageChannel().default).RED; break; case 2: sourceChannel1 = (lime_graphics_ImageChannel().default).GREEN; break; case 4: sourceChannel1 = (lime_graphics_ImageChannel().default).BLUE; break; case 8: sourceChannel1 = (lime_graphics_ImageChannel().default).ALPHA; break; default: return; } var destChannel1; switch(destChannel) { case 1: destChannel1 = (lime_graphics_ImageChannel().default).RED; break; case 2: destChannel1 = (lime_graphics_ImageChannel().default).GREEN; break; case 4: destChannel1 = (lime_graphics_ImageChannel().default).BLUE; break; case 8: destChannel1 = (lime_graphics_ImageChannel().default).ALPHA; break; default: return; } this.image.copyChannel(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),sourceChannel1,destChannel1); }, copyPixels: function(sourceBitmapData,sourceRect,destPoint,alphaBitmapData,alphaPoint,mergeAlpha) { if(mergeAlpha == null) { mergeAlpha = false; } if(!this.readable || sourceBitmapData == null) { return; } if(alphaPoint != null) { BitmapData.__tempVector.x = alphaPoint.x; BitmapData.__tempVector.y = alphaPoint.y; } this.image.copyPixels(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),alphaBitmapData != null ? alphaBitmapData.image : null,alphaPoint != null ? BitmapData.__tempVector : null,mergeAlpha); }, dispose: function() { this.image = null; this.width = 0; this.height = 0; this.rect = null; this.__isValid = false; this.readable = false; this.__surface = null; this.__vertexBuffer = null; this.__framebuffer = null; this.__framebufferContext = null; this.__texture = null; this.__textureContext = null; }, disposeImage: function() { this.readable = false; }, draw: function(source,matrix,colorTransform,blendMode,clipRect,smoothing) { if(smoothing == null) { smoothing = false; } if(source == null) { return; } var wasVisible = true; var sourceAsDisplayObject = null; if(((source) instanceof (openfl_display_DisplayObject().default))) { sourceAsDisplayObject = (js_Boot().default).__cast(source , (openfl_display_DisplayObject().default)); if(!sourceAsDisplayObject.get_visible()) { wasVisible = false; sourceAsDisplayObject.set_visible(true); } } source.__update(false,true); var transform = (openfl_geom_Matrix().default).__pool.get(); transform.copyFrom(source.__renderTransform); transform.invert(); if(matrix != null) { transform.concat(matrix); } var clipMatrix = null; if(clipRect != null) { clipMatrix = (openfl_geom_Matrix().default).__pool.get(); clipMatrix.copyFrom(transform); clipMatrix.invert(); } var _colorTransform = new (openfl_geom_ColorTransform().default)(); _colorTransform.__copyFrom(source.__worldColorTransform); _colorTransform.__invert(); if(!this.readable && (openfl_Lib().default).get_current().stage.context3D != null) { if(this.__textureContext == null) { this.__textureContext = (lime_app_Application().default).current.get_window().context; } if(colorTransform != null) { _colorTransform.__combine(colorTransform); } var renderer = new (openfl_display_OpenGLRenderer().default)((openfl_Lib().default).get_current().stage.context3D,this); renderer.__allowSmoothing = smoothing; renderer.__pixelRatio = (openfl_Lib().default).get_current().stage.window.get_scale(); renderer.__overrideBlendMode = blendMode; renderer.__worldTransform = transform; renderer.__worldAlpha = 1 / source.__worldAlpha; renderer.__worldColorTransform = _colorTransform; renderer.__resize(this.width,this.height); if(clipRect != null) { renderer.__pushMaskRect(clipRect,clipMatrix); } this.__drawGL(source,renderer); if(clipRect != null) { renderer.__popMaskRect(); (openfl_geom_Matrix().default).__pool.release(clipMatrix); } } else { if(colorTransform != null) { var bounds = (openfl_geom_Rectangle().default).__pool.get(); var boundsMatrix = (openfl_geom_Matrix().default).__pool.get(); source.__getBounds(bounds,boundsMatrix); var width = Math.ceil(bounds.width); var height = Math.ceil(bounds.height); boundsMatrix.tx = -bounds.x; boundsMatrix.ty = -bounds.y; var copy = new BitmapData(width,height,true,0); copy.draw(source,boundsMatrix); copy.colorTransform(copy.rect,colorTransform); copy.__renderTransform.identity(); copy.__renderTransform.tx = bounds.x; copy.__renderTransform.ty = bounds.y; copy.__renderTransform.concat(source.__renderTransform); copy.__worldAlpha = source.__worldAlpha; copy.__worldColorTransform.__copyFrom(source.__worldColorTransform); source = copy; (openfl_geom_Rectangle().default).__pool.release(bounds); (openfl_geom_Matrix().default).__pool.release(boundsMatrix); } (lime__$internal_graphics_ImageCanvasUtil().default).convertToCanvas(this.image); var renderer1 = new (openfl_display_CanvasRenderer().default)(this.image.buffer.__srcContext); renderer1.__allowSmoothing = smoothing; renderer1.__overrideBlendMode = blendMode; renderer1.__worldTransform = transform; renderer1.__worldAlpha = 1 / source.__worldAlpha; renderer1.__worldColorTransform = _colorTransform; if(clipRect != null) { renderer1.__pushMaskRect(clipRect,clipMatrix); } this.__drawCanvas(source,renderer1); if(clipRect != null) { renderer1.__popMaskRect(); (openfl_geom_Matrix().default).__pool.release(clipMatrix); } } (openfl_geom_Matrix().default).__pool.release(transform); if(sourceAsDisplayObject != null && !wasVisible) { sourceAsDisplayObject.set_visible(false); } }, drawWithQuality: function(source,matrix,colorTransform,blendMode,clipRect,smoothing,quality) { if(smoothing == null) { smoothing = false; } this.draw(source,matrix,colorTransform,blendMode,clipRect,quality != "low" && smoothing); }, encode: function(rect,compressor,byteArray) { if(!this.readable || rect == null) { byteArray = null; return byteArray; } if(byteArray == null) { var this1 = new (openfl_utils_ByteArrayData().default)(0); byteArray = this1; } var image = this.image; if(!rect.equals(this.rect)) { var matrix = (openfl_geom_Matrix().default).__pool.get(); matrix.tx = Math.round(-rect.x); matrix.ty = Math.round(-rect.y); var bitmapData = new BitmapData(Math.ceil(rect.width),Math.ceil(rect.height),true,0); bitmapData.draw(this,matrix); image = bitmapData.image; (openfl_geom_Matrix().default).__pool.release(matrix); } if(((compressor) instanceof (openfl_display_PNGEncoderOptions().default))) { byteArray.writeBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(image.encode((lime_graphics_ImageFileFormat().default).PNG)),0,0); return byteArray; } else if(((compressor) instanceof (openfl_display_JPEGEncoderOptions().default))) { byteArray.writeBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(image.encode((lime_graphics_ImageFileFormat().default).JPEG,((js_Boot().default).__cast(compressor , (openfl_display_JPEGEncoderOptions().default))).quality)),0,0); return byteArray; } byteArray = null; return byteArray; }, fillRect: function(rect,color) { this.__fillRect(rect,color,true); }, floodFill: function(x,y,color) { if(!this.readable) { return; } this.image.floodFill(x,y,color,1); }, generateFilterRect: function(sourceRect,filter) { return sourceRect.clone(); }, getIndexBuffer: function(context,scale9Grid) { var gl = context.gl; if(this.__indexBuffer == null || this.__indexBufferContext != context.__context || scale9Grid != null && this.__indexBufferGrid == null || this.__indexBufferGrid != null && !this.__indexBufferGrid.equals(scale9Grid)) { this.__indexBufferContext = context.__context; this.__indexBuffer = null; if(scale9Grid != null) { if(this.__indexBufferGrid == null) { this.__indexBufferGrid = new (openfl_geom_Rectangle().default)(); } this.__indexBufferGrid.copyFrom(scale9Grid); var centerX = scale9Grid.width; var centerY = scale9Grid.height; if(centerX != 0 && centerY != 0) { var array = null; var view = null; var buffer = null; var len = null; var this1 = new Uint16Array(54); this.__indexBufferData = this1; this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBufferData[6] = 4; this.__indexBufferData[7] = 0; this.__indexBufferData[8] = 5; this.__indexBufferData[9] = 5; this.__indexBufferData[10] = 0; this.__indexBufferData[11] = 2; this.__indexBufferData[12] = 6; this.__indexBufferData[13] = 4; this.__indexBufferData[14] = 7; this.__indexBufferData[15] = 7; this.__indexBufferData[16] = 4; this.__indexBufferData[17] = 5; this.__indexBufferData[18] = 8; this.__indexBufferData[19] = 9; this.__indexBufferData[20] = 0; this.__indexBufferData[21] = 0; this.__indexBufferData[22] = 9; this.__indexBufferData[23] = 1; this.__indexBufferData[24] = 10; this.__indexBufferData[25] = 8; this.__indexBufferData[26] = 4; this.__indexBufferData[27] = 4; this.__indexBufferData[28] = 8; this.__indexBufferData[29] = 0; this.__indexBufferData[30] = 11; this.__indexBufferData[31] = 10; this.__indexBufferData[32] = 6; this.__indexBufferData[33] = 6; this.__indexBufferData[34] = 10; this.__indexBufferData[35] = 4; this.__indexBufferData[36] = 12; this.__indexBufferData[37] = 13; this.__indexBufferData[38] = 8; this.__indexBufferData[39] = 8; this.__indexBufferData[40] = 13; this.__indexBufferData[41] = 9; this.__indexBufferData[42] = 14; this.__indexBufferData[43] = 12; this.__indexBufferData[44] = 10; this.__indexBufferData[45] = 10; this.__indexBufferData[46] = 12; this.__indexBufferData[47] = 8; this.__indexBufferData[48] = 15; this.__indexBufferData[49] = 14; this.__indexBufferData[50] = 11; this.__indexBufferData[51] = 11; this.__indexBufferData[52] = 14; this.__indexBufferData[53] = 10; this.__indexBuffer = context.createIndexBuffer(54); } else if(centerX == 0 && centerY != 0) { var array1 = null; var view1 = null; var buffer1 = null; var len1 = null; var this2 = new Uint16Array(18); this.__indexBufferData = this2; this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBufferData[6] = 4; this.__indexBufferData[7] = 5; this.__indexBufferData[8] = 0; this.__indexBufferData[9] = 0; this.__indexBufferData[10] = 5; this.__indexBufferData[11] = 1; this.__indexBufferData[12] = 6; this.__indexBufferData[13] = 7; this.__indexBufferData[14] = 4; this.__indexBufferData[15] = 4; this.__indexBufferData[16] = 7; this.__indexBufferData[17] = 5; this.__indexBuffer = context.createIndexBuffer(18); } else if(centerX != 0 && centerY == 0) { var array2 = null; var view2 = null; var buffer2 = null; var len2 = null; var this3 = new Uint16Array(18); this.__indexBufferData = this3; this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBufferData[6] = 4; this.__indexBufferData[7] = 0; this.__indexBufferData[8] = 5; this.__indexBufferData[9] = 5; this.__indexBufferData[10] = 0; this.__indexBufferData[11] = 2; this.__indexBufferData[12] = 6; this.__indexBufferData[13] = 4; this.__indexBufferData[14] = 7; this.__indexBufferData[15] = 7; this.__indexBufferData[16] = 4; this.__indexBufferData[17] = 5; this.__indexBuffer = context.createIndexBuffer(18); } } else { this.__indexBufferGrid = null; } if(this.__indexBuffer == null) { var array3 = null; var view3 = null; var buffer3 = null; var len3 = null; var this4 = new Uint16Array(6); this.__indexBufferData = this4; this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBuffer = context.createIndexBuffer(6); } this.__indexBuffer.uploadFromTypedArray(this.__indexBufferData); } return this.__indexBuffer; }, getVertexBuffer: function(context,scale9Grid,targetObject) { var gl = context.gl; if(this.__vertexBuffer == null || this.__vertexBufferContext != context.__context || scale9Grid != null && this.__vertexBufferGrid == null || this.__vertexBufferGrid != null && !this.__vertexBufferGrid.equals(scale9Grid) || targetObject != null && (this.__vertexBufferWidth != targetObject.get_width() || this.__vertexBufferHeight != targetObject.get_height() || this.__vertexBufferScaleX != targetObject.get_scaleX() || this.__vertexBufferScaleY != targetObject.get_scaleY())) { this.__uvRect = new (openfl_geom_Rectangle().default)(0,0,this.width,this.height); var uvWidth = 1; var uvHeight = 1; this.__vertexBufferContext = context.__context; this.__vertexBuffer = null; if(targetObject != null) { this.__vertexBufferWidth = targetObject.get_width(); this.__vertexBufferHeight = targetObject.get_height(); this.__vertexBufferScaleX = targetObject.get_scaleX(); this.__vertexBufferScaleY = targetObject.get_scaleY(); } if(scale9Grid != null && targetObject != null) { if(this.__vertexBufferGrid == null) { this.__vertexBufferGrid = new (openfl_geom_Rectangle().default)(); } this.__vertexBufferGrid.copyFrom(scale9Grid); this.__vertexBufferWidth = targetObject.get_width(); this.__vertexBufferHeight = targetObject.get_height(); this.__vertexBufferScaleX = targetObject.get_scaleX(); this.__vertexBufferScaleY = targetObject.get_scaleY(); var centerX = scale9Grid.width; var centerY = scale9Grid.height; if(centerX != 0 && centerY != 0) { var array = null; var view = null; var buffer = null; var len = null; var this1 = new Float32Array(224); this.__vertexBufferData = this1; var left = scale9Grid.x; var top = scale9Grid.y; var right = this.width - centerX - left; var bottom = this.height - centerY - top; var uvLeft = left / this.width; var uvTop = top / this.height; var uvCenterX = centerX / this.width; var uvCenterY = centerY / this.height; var uvRight = right / this.width; var uvBottom = bottom / this.height; var renderedLeft = left / targetObject.get_scaleX(); var renderedTop = top / targetObject.get_scaleY(); var renderedRight = right / targetObject.get_scaleX(); var renderedBottom = bottom / targetObject.get_scaleY(); var renderedCenterX = targetObject.get_width() / targetObject.get_scaleX() - renderedLeft - renderedRight; var renderedCenterY = targetObject.get_height() / targetObject.get_scaleY() - renderedTop - renderedBottom; this.__vertexBufferData[0] = renderedLeft; this.__vertexBufferData[1] = renderedTop; this.__vertexBufferData[3] = uvWidth * uvLeft; this.__vertexBufferData[4] = uvHeight * uvTop; this.__vertexBufferData[15] = renderedTop; this.__vertexBufferData[18] = uvHeight * uvTop; this.__vertexBufferData[28] = renderedLeft; this.__vertexBufferData[31] = uvWidth * uvLeft; this.__vertexBufferData[56] = renderedLeft + renderedCenterX; this.__vertexBufferData[57] = renderedTop; this.__vertexBufferData[59] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[60] = uvHeight * uvTop; this.__vertexBufferData[70] = renderedLeft + renderedCenterX; this.__vertexBufferData[73] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[84] = this.width; this.__vertexBufferData[85] = renderedTop; this.__vertexBufferData[87] = uvWidth; this.__vertexBufferData[88] = uvHeight * uvTop; this.__vertexBufferData[98] = this.width; this.__vertexBufferData[101] = uvWidth; this.__vertexBufferData[112] = renderedLeft; this.__vertexBufferData[113] = renderedTop + renderedCenterY; this.__vertexBufferData[115] = uvWidth * uvLeft; this.__vertexBufferData[116] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[127] = renderedTop + renderedCenterY; this.__vertexBufferData[130] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[140] = renderedLeft + renderedCenterX; this.__vertexBufferData[141] = renderedTop + renderedCenterY; this.__vertexBufferData[143] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[144] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[154] = this.width; this.__vertexBufferData[155] = renderedTop + renderedCenterY; this.__vertexBufferData[157] = uvWidth; this.__vertexBufferData[158] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[168] = renderedLeft; this.__vertexBufferData[169] = this.height; this.__vertexBufferData[171] = uvWidth * uvLeft; this.__vertexBufferData[172] = uvHeight; this.__vertexBufferData[183] = this.height; this.__vertexBufferData[186] = uvHeight; this.__vertexBufferData[196] = renderedLeft + renderedCenterX; this.__vertexBufferData[197] = this.height; this.__vertexBufferData[199] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[200] = uvHeight; this.__vertexBufferData[210] = this.width; this.__vertexBufferData[211] = this.height; this.__vertexBufferData[213] = uvWidth; this.__vertexBufferData[214] = uvHeight; this.__vertexBuffer = context.createVertexBuffer(16,14); } else if(centerX == 0 && centerY != 0) { var array1 = null; var view1 = null; var buffer1 = null; var len1 = null; var this2 = new Float32Array(112); this.__vertexBufferData = this2; var top1 = scale9Grid.y; var bottom1 = this.height - centerY - top1; var uvTop1 = top1 / this.height; var uvCenterY1 = centerY / this.height; var uvBottom1 = bottom1 / this.height; var renderedTop1 = top1 / targetObject.get_scaleY(); var renderedBottom1 = bottom1 / targetObject.get_scaleY(); var renderedCenterY1 = targetObject.get_height() / targetObject.get_scaleY() - renderedTop1 - renderedBottom1; var renderedWidth = targetObject.get_width() / targetObject.get_scaleX(); this.__vertexBufferData[0] = renderedWidth; this.__vertexBufferData[1] = renderedTop1; this.__vertexBufferData[3] = uvWidth; this.__vertexBufferData[4] = uvHeight * uvTop1; this.__vertexBufferData[15] = renderedTop1; this.__vertexBufferData[18] = uvHeight * uvTop1; this.__vertexBufferData[28] = renderedWidth; this.__vertexBufferData[31] = uvWidth; this.__vertexBufferData[56] = renderedWidth; this.__vertexBufferData[57] = renderedTop1 + renderedCenterY1; this.__vertexBufferData[59] = uvWidth; this.__vertexBufferData[60] = uvHeight * (uvTop1 + uvCenterY1); this.__vertexBufferData[71] = renderedTop1 + renderedCenterY1; this.__vertexBufferData[74] = uvHeight * (uvTop1 + uvCenterY1); this.__vertexBufferData[84] = renderedWidth; this.__vertexBufferData[85] = this.height; this.__vertexBufferData[87] = uvWidth; this.__vertexBufferData[88] = uvHeight; this.__vertexBufferData[99] = this.height; this.__vertexBufferData[102] = uvHeight; this.__vertexBuffer = context.createVertexBuffer(8,14); } else if(centerY == 0 && centerX != 0) { var array2 = null; var view2 = null; var buffer2 = null; var len2 = null; var this3 = new Float32Array(112); this.__vertexBufferData = this3; var left1 = scale9Grid.x; var right1 = this.width - centerX - left1; var uvLeft1 = left1 / this.width; var uvCenterX1 = centerX / this.width; var uvRight1 = right1 / this.width; var renderedLeft1 = left1 / targetObject.get_scaleX(); var renderedRight1 = right1 / targetObject.get_scaleX(); var renderedCenterX1 = targetObject.get_width() / targetObject.get_scaleX() - renderedLeft1 - renderedRight1; var renderedHeight = targetObject.get_height() / targetObject.get_scaleY(); this.__vertexBufferData[0] = renderedLeft1; this.__vertexBufferData[1] = renderedHeight; this.__vertexBufferData[3] = uvWidth * uvLeft1; this.__vertexBufferData[4] = uvHeight; this.__vertexBufferData[15] = renderedHeight; this.__vertexBufferData[18] = uvHeight; this.__vertexBufferData[28] = renderedLeft1; this.__vertexBufferData[31] = uvWidth * uvLeft1; this.__vertexBufferData[56] = renderedLeft1 + renderedCenterX1; this.__vertexBufferData[57] = renderedHeight; this.__vertexBufferData[59] = uvWidth * (uvLeft1 + uvCenterX1); this.__vertexBufferData[60] = uvHeight; this.__vertexBufferData[70] = renderedLeft1 + renderedCenterX1; this.__vertexBufferData[73] = uvWidth * (uvLeft1 + uvCenterX1); this.__vertexBufferData[84] = this.width; this.__vertexBufferData[85] = renderedHeight; this.__vertexBufferData[87] = uvWidth; this.__vertexBufferData[88] = uvHeight; this.__vertexBufferData[98] = this.width; this.__vertexBufferData[101] = uvWidth; this.__vertexBuffer = context.createVertexBuffer(8,14); } } else { this.__vertexBufferGrid = null; } if(this.__vertexBuffer == null) { var array3 = null; var view3 = null; var buffer3 = null; var len3 = null; var this4 = new Float32Array(56); this.__vertexBufferData = this4; this.__vertexBufferData[0] = this.width; this.__vertexBufferData[1] = this.height; this.__vertexBufferData[3] = uvWidth; this.__vertexBufferData[4] = uvHeight; this.__vertexBufferData[15] = this.height; this.__vertexBufferData[18] = uvHeight; this.__vertexBufferData[28] = this.width; this.__vertexBufferData[31] = uvWidth; this.__vertexBuffer = context.createVertexBuffer(3,14); } this.__vertexBuffer.uploadFromTypedArray((lime_utils__$Float32Array_Float32Array_$Impl_$().default).toArrayBufferView(this.__vertexBufferData)); } return this.__vertexBuffer; }, getColorBoundsRect: function(mask,color,findColor) { if(findColor == null) { findColor = true; } if(!this.readable) { return new (openfl_geom_Rectangle().default)(0,0,this.width,this.height); } if(!this.transparent || (mask >> 24 & 255) > 0) { var color1 = color; if((color1 >>> 24 & 255) == 0) { color1 = 0; } } var rect = this.image.getColorBoundsRect(mask,color,findColor,1); return new (openfl_geom_Rectangle().default)(rect.x,rect.y,rect.width,rect.height); }, getPixel: function(x,y) { if(!this.readable) { return 0; } return this.image.getPixel(x,y,1); }, getPixel32: function(x,y) { if(!this.readable) { return 0; } return this.image.getPixel32(x,y,1); }, getPixels: function(rect) { if(!this.readable) { return null; } if(rect == null) { rect = this.rect; } var byteArray = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(this.image.getPixels(rect.__toLimeRectangle(),1)); byteArray.set_endian("bigEndian"); return byteArray; }, getSurface: function() { if(!this.readable) { return null; } if(this.__surface == null) { this.__surface = (lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$().default).fromImage(this.image); } return this.__surface; }, getTexture: function(context) { if(!this.__isValid) { return null; } if(this.__texture == null || this.__textureContext != context.__context) { this.__textureContext = context.__context; this.__texture = context.createRectangleTexture(this.width,this.height,"bgra",false); this.__textureVersion = -1; } (lime__$internal_graphics_ImageCanvasUtil().default).sync(this.image,false); if(this.image != null && this.image.version > this.__textureVersion) { if(this.__surface != null) { (lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$().default).flush(this.__surface); } var textureImage = this.image; if(!(openfl_display3D_textures_TextureBase().default).__supportsBGRA && textureImage.get_format() != 0) { textureImage = textureImage.clone(); textureImage.set_format(0); } this.__texture.__uploadFromImage(textureImage); this.__textureVersion = this.image.version; this.__textureWidth = textureImage.buffer.width; this.__textureHeight = textureImage.buffer.height; } if(!this.readable && this.image != null) { this.__surface = null; this.image = null; } return this.__texture; }, getVector: function(rect) { var pixels = this.getPixels(rect); var length = (Std().default).int((_$UInt_UInt_$Impl_$().default).toFloat((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(pixels)) / (_$UInt_UInt_$Impl_$().default).toFloat(4)); var result = (openfl__$Vector_Vector_$Impl_$().default)._new(length,true); var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; (openfl__$Vector_Vector_$Impl_$().default).set(result,i,pixels.readUnsignedInt()); } return result; }, histogram: function(hRect) { var rect = hRect != null ? hRect : new (openfl_geom_Rectangle().default)(0,0,this.width,this.height); var pixels = this.getPixels(rect); var _g = []; var _g1 = []; var _g2 = 0; while(_g2 < 256) { var j = _g2++; _g1.push(0); } _g.push(_g1); var _g11 = []; var _g21 = 0; while(_g21 < 256) { var j1 = _g21++; _g11.push(0); } _g.push(_g11); var _g12 = []; var _g22 = 0; while(_g22 < 256) { var j2 = _g22++; _g12.push(0); } _g.push(_g12); var _g13 = []; var _g23 = 0; while(_g23 < 256) { var j3 = _g23++; _g13.push(0); } _g.push(_g13); var result = _g; var _g14 = 0; var _g24 = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(pixels); while(_g14 < _g24) { var i = _g14++; var result1 = result[i % 4]; ++result1[pixels.readUnsignedByte()]; } return result; }, hitTest: function(firstPoint,firstAlphaThreshold,secondObject,secondBitmapDataPoint,secondAlphaThreshold) { if(secondAlphaThreshold == null) { secondAlphaThreshold = 1; } if(!this.readable) { return false; } if(((secondObject) instanceof (openfl_display_Bitmap().default))) { secondObject = ((js_Boot().default).__cast(secondObject , (openfl_display_Bitmap().default))).__bitmapData; } if(((secondObject) instanceof (openfl_geom_Point().default))) { var secondPoint = secondObject; var x = (Std().default).int(secondPoint.x - firstPoint.x); var y = (Std().default).int(secondPoint.y - firstPoint.y); if(this.rect.contains(x,y)) { var pixel = this.getPixel32(x,y); if((pixel >> 24 & 255) > firstAlphaThreshold) { return true; } } } else if(((secondObject) instanceof BitmapData)) { var secondBitmapData = secondObject; var x1; var y1; if(secondBitmapDataPoint == null) { x1 = 0; y1 = 0; } else { x1 = Math.round(secondBitmapDataPoint.x - firstPoint.x); y1 = Math.round(secondBitmapDataPoint.y - firstPoint.y); } var hitRect = (openfl_geom_Rectangle().default).__pool.get(); hitRect.setTo(x1,y1,secondBitmapData.width,secondBitmapData.height); if(this.rect.intersects(hitRect)) { if(x1 < 0) { hitRect.x = 0; hitRect.width = Math.min(secondBitmapData.width + x1,this.width); } else { hitRect.width = Math.min(secondBitmapData.width,this.width - x1); } if(y1 < 0) { hitRect.y = 0; hitRect.height = Math.min(secondBitmapData.height + y1,this.height); } else { hitRect.height = Math.min(secondBitmapData.height,this.height - y1); } var pixels = this.getPixels(hitRect); hitRect.x = x1 < 0 ? -x1 : 0; hitRect.y = y1 < 0 ? -y1 : 0; var testPixels = secondBitmapData.getPixels(hitRect); var length = (Std().default).int(hitRect.width * hitRect.height); var pixel1; var testPixel; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; pixel1 = pixels.readUnsignedInt(); testPixel = testPixels.readUnsignedInt(); if((_$UInt_UInt_$Impl_$().default).gt(pixel1 >>> 24 & 255,firstAlphaThreshold) && (_$UInt_UInt_$Impl_$().default).gt(testPixel >>> 24 & 255,secondAlphaThreshold)) { (openfl_geom_Rectangle().default).__pool.release(hitRect); return true; } } } (openfl_geom_Rectangle().default).__pool.release(hitRect); } else if(((secondObject) instanceof (openfl_geom_Rectangle().default))) { var secondRectangle = (openfl_geom_Rectangle().default).__pool.get(); secondRectangle.copyFrom(secondObject); secondRectangle.offset(-firstPoint.x,-firstPoint.y); secondRectangle.__contract(0,0,this.width,this.height); if(secondRectangle.width > 0 && secondRectangle.height > 0) { var pixels1 = this.getPixels(secondRectangle); var length1 = (Std().default).int((_$UInt_UInt_$Impl_$().default).toFloat((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(pixels1)) / (_$UInt_UInt_$Impl_$().default).toFloat(4)); var pixel2; var _g2 = 0; var _g11 = length1; while(_g2 < _g11) { var i1 = _g2++; pixel2 = pixels1.readUnsignedInt(); if((_$UInt_UInt_$Impl_$().default).gt(pixel2 >>> 24 & 255,firstAlphaThreshold)) { (openfl_geom_Rectangle().default).__pool.release(secondRectangle); return true; } } } (openfl_geom_Rectangle().default).__pool.release(secondRectangle); } return false; }, lock: function() { }, merge: function(sourceBitmapData,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) { if(!this.readable || sourceBitmapData == null || !sourceBitmapData.readable || sourceRect == null || destPoint == null) { return; } this.image.merge(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); }, noise: function(randomSeed,low,high,channelOptions,grayScale) { if(grayScale == null) { grayScale = false; } if(channelOptions == null) { channelOptions = 7; } if(high == null) { high = 255; } if(low == null) { low = 0; } if(!this.readable) { return; } var func = function() { randomSeed = randomSeed * 1103515245 + 12345; return (Std().default).int(Math.abs(randomSeed / 65536)) % 32768; }; var rand = func; rand(); var range = high - low; var redChannel = (channelOptions & 1) == 1; var greenChannel = (channelOptions & 2) >> 1 == 1; var blueChannel = (channelOptions & 4) >> 2 == 1; var alphaChannel = (channelOptions & 8) >> 3 == 1; var _g = 0; var _g1 = this.height; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g11 = this.width; while(_g2 < _g11) { var x = _g2++; var red = 0; var blue = 0; var green = 0; var alpha = 255; if(grayScale) { blue = low + rand() % range; green = blue; red = green; alpha = 255; } else { if(redChannel) { red = low + rand() % range; } if(greenChannel) { green = low + rand() % range; } if(blueChannel) { blue = low + rand() % range; } if(alphaChannel) { alpha = low + rand() % range; } } var rgb = alpha; rgb = (rgb << 8) + red; rgb = (rgb << 8) + green; rgb = (rgb << 8) + blue; this.setPixel32(x,y,rgb); } } }, paletteMap: function(sourceBitmapData,sourceRect,destPoint,redArray,greenArray,blueArray,alphaArray) { var sw = (Std().default).int(sourceRect.width); var sh = (Std().default).int(sourceRect.height); var pixels = sourceBitmapData.getPixels(sourceRect); var pixelValue; var r; var g; var b; var a; var color; var _g = 0; var _g1 = sh * sw; while(_g < _g1) { var i = _g++; pixelValue = pixels.readUnsignedInt(); a = alphaArray == null ? pixelValue & -16777216 : alphaArray[pixelValue >> 24 & 255]; r = redArray == null ? pixelValue & 16711680 : redArray[pixelValue >> 16 & 255]; g = greenArray == null ? pixelValue & 65280 : greenArray[pixelValue >> 8 & 255]; b = blueArray == null ? pixelValue & 255 : blueArray[pixelValue & 255]; color = a + r + g + b; pixels.position = i * 4; pixels.writeUnsignedInt(color); } pixels.position = 0; var destRect = (openfl_geom_Rectangle().default).__pool.get(); destRect.setTo(destPoint.x,destPoint.y,sw,sh); this.setPixels(destRect,pixels); (openfl_geom_Rectangle().default).__pool.release(destRect); }, perlinNoise: function(baseX,baseY,numOctaves,randomSeed,stitch,fractalNoise,channelOptions,grayScale,offsets) { if(grayScale == null) { grayScale = false; } if(channelOptions == null) { channelOptions = 7; } if(!this.readable) { return; } var noise = new (openfl_display__$internal_PerlinNoise().default)(randomSeed,numOctaves,channelOptions,grayScale,0.5,stitch,0.15); noise.fill(this,baseX,baseY,0); }, scroll: function(x,y) { if(!this.readable) { return; } this.image.scroll(x,y); }, setPixel: function(x,y,color) { if(!this.readable) { return; } this.image.setPixel(x,y,color,1); }, setPixel32: function(x,y,color) { if(!this.readable) { return; } this.image.setPixel32(x,y,color,1); }, setPixels: function(rect,byteArray) { if(!this.readable || rect == null) { return; } var length = rect.width * rect.height * 4; if((_$UInt_UInt_$Impl_$().default).toFloat(byteArray.get_bytesAvailable()) < length) { throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("End of file was encountered.",2030)); } this.image.setPixels(rect.__toLimeRectangle(),(openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytePointer(byteArray),1,(openfl_utils__$Endian_Endian_$Impl_$().default).toLimeEndian(byteArray.get_endian())); }, setVector: function(rect,inputVector) { var this1 = new (openfl_utils_ByteArrayData().default)(0); var byteArray = this1; (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).set_length(byteArray,inputVector.get_length() * 4); var color = new (openfl__$Vector_VectorIterator().default)(inputVector); while(color.hasNext()) { var color1 = color.next(); byteArray.writeUnsignedInt(color1); } byteArray.position = 0; this.setPixels(rect,byteArray); }, threshold: function(sourceBitmapData,sourceRect,destPoint,operation,threshold,color,mask,copySource) { if(copySource == null) { copySource = false; } if(mask == null) { mask = -1; } if(color == null) { color = 0; } if(sourceBitmapData == null || sourceRect == null || destPoint == null || sourceRect.x > sourceBitmapData.width || sourceRect.y > sourceBitmapData.height || destPoint.x > this.width || destPoint.y > this.height) { return 0; } return this.image.threshold(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),operation,threshold,color,mask,copySource,1); }, unlock: function(changeRect) { }, __applyAlpha: function(alpha) { (lime__$internal_graphics_ImageCanvasUtil().default).convertToCanvas(this.image); (lime__$internal_graphics_ImageCanvasUtil().default).createImageData(this.image); var data = this.image.buffer.data; var _g = 0; var _g1 = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(alpha); while(_g < _g1) { var i = _g++; data[i * 4 + 3] = alpha.readUnsignedByte(); } this.image.version++; }, __drawCairo: function(source,renderer) { }, __drawCanvas: function(source,renderer) { var buffer = this.image.buffer; if(!renderer.__allowSmoothing) { renderer.applySmoothing(buffer.__srcContext,false); } renderer.__render(source); if(!renderer.__allowSmoothing) { renderer.applySmoothing(buffer.__srcContext,true); } buffer.__srcContext.setTransform(1,0,0,1,0,0); buffer.__srcImageData = null; buffer.data = null; this.image.dirty = true; this.image.version++; }, __drawGL: function(source,renderer) { var context = renderer.__context3D; var cacheRTT = context.__state.renderToTexture; var cacheRTTDepthStencil = context.__state.renderToTextureDepthStencil; var cacheRTTAntiAlias = context.__state.renderToTextureAntiAlias; var cacheRTTSurfaceSelector = context.__state.renderToTextureSurfaceSelector; context.setRenderToTexture(this.getTexture(context),true); renderer.__render(source); if(cacheRTT != null) { context.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector); } else { context.setRenderToBackBuffer(); } }, __fillRect: function(rect,color,allowFramebuffer) { if(rect == null) { return; } if(this.transparent && (color & -16777216) == 0) { color = 0; } if(allowFramebuffer && this.__texture != null && this.__texture.__glFramebuffer != null && (openfl_Lib().default).get_current().stage.__renderer.__type == "opengl") { var renderer = (openfl_Lib().default).get_current().stage.__renderer; var context = renderer.__context3D; var color1 = color; var useScissor = !this.rect.equals(rect); var cacheRTT = context.__state.renderToTexture; var cacheRTTDepthStencil = context.__state.renderToTextureDepthStencil; var cacheRTTAntiAlias = context.__state.renderToTextureAntiAlias; var cacheRTTSurfaceSelector = context.__state.renderToTextureSurfaceSelector; context.setRenderToTexture(this.__texture); if(useScissor) { context.setScissorRectangle(rect); } context.clear((color1 >>> 16 & 255) / 255,(color1 >>> 8 & 255) / 255,(color1 & 255) / 255,this.transparent ? (color1 >>> 24 & 255) / 255 : 1,0,0,1); if(useScissor) { context.setScissorRectangle(null); } if(cacheRTT != null) { context.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector); } else { context.setRenderToBackBuffer(); } } else if(this.readable) { this.image.fillRect(rect.__toLimeRectangle(),color,1); } }, __fromBase64: function(base64,type) { var image = (lime_graphics_Image().default).fromBase64(base64,type); this.__fromImage(image); }, __fromBytes: function(bytes,rawAlpha) { var image = (lime_graphics_Image().default).fromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes)); this.__fromImage(image); if(rawAlpha != null) { this.__applyAlpha(rawAlpha); } }, __fromFile: function(path) { var image = (lime_graphics_Image().default).fromFile(path); this.__fromImage(image); }, __fromImage: function(image) { if(image != null