Skip to content

Instantly share code, notes, and snippets.

@illuzor
Last active August 29, 2015 14:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save illuzor/11064959 to your computer and use it in GitHub Desktop.
Save illuzor/11064959 to your computer and use it in GitHub Desktop.
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Point;
import flash.geom.Rectangle;
import starling.core.RenderSupport;
import starling.core.Starling;
import starling.display.DisplayObject;
public class StarlingTool {
public static function drawToBitmap(displayObject:DisplayObject):Bitmap {
var stageWidth:Number = Starling.current.stage.stageWidth;
var stageHeight:Number = Starling.current.stage.stageHeight;
var support:RenderSupport = new RenderSupport();
RenderSupport.clear();
support.setOrthographicProjection(0, 0, stageWidth, stageHeight);
support.applyBlendMode(true);
var stageBitmapData:BitmapData = new BitmapData(stageWidth, stageHeight, true, 0x0);
support.blendMode = displayObject.blendMode;
displayObject.render(support, 1.0);
support.finishQuadBatch();
Starling.context.drawToBitmapData(stageBitmapData);
var cropBounds:Rectangle = new Rectangle(0, 0, displayObject.width / displayObject.scaleX, displayObject.height / displayObject.scaleY);
var resultBitmapData:BitmapData = new BitmapData(cropBounds.width, cropBounds.height, true, 0x0);
resultBitmapData.copyPixels(stageBitmapData, cropBounds, new Point());
var resultBitmap:Bitmap = new Bitmap(resultBitmapData);
resultBitmap.scaleX = displayObject.scaleX;
resultBitmap.scaleY = displayObject.scaleY;
return resultBitmap;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment