Created
February 20, 2013 18:18
-
-
Save gonchar/4997713 to your computer and use it in GitHub Desktop.
Readback screenshot in Chrome PPAPI Flash Player Plugin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.realaxy.utils { | |
import alternativa.engine3d.core.Camera3D; | |
import flash.display.BitmapData; | |
import flash.display.Stage3D; | |
import flash.events.TimerEvent; | |
import flash.utils.Timer; | |
/** | |
* Readback screenshot in Chrome PPAPI Flash Player Plugin | |
*/ | |
public class ScreenshotGrabber { | |
private var oldW : Number; | |
private var oldH : Number; | |
private var timer : Timer = new Timer(1); | |
private var camera : Camera3D; | |
private var stage3D : Stage3D; | |
private var callback : Function; | |
public function ScreenshotGrabber(camera3D : Camera3D, stage3D : Stage3D) { | |
camera = camera3D; | |
this.stage3D = stage3D; | |
timer.addEventListener(TimerEvent.TIMER, onTimer); | |
} | |
public function grab(width : Number, height : Number, callbackFunction : Function) : void { | |
oldW = camera.view.width; | |
oldH = camera.view.height; | |
camera.view.width = width; | |
camera.view.height = height; | |
camera.view.renderToBitmap = true; | |
callback = callbackFunction; | |
timer.start(); | |
} | |
private function onTimer(event : TimerEvent) : void { | |
timer.stop(); | |
camera.render(stage3D); | |
var bmd : BitmapData = camera.view.canvas.clone(); | |
camera.view.renderToBitmap = false; | |
camera.view.width = oldW; | |
camera.view.height = oldH; | |
if (callback) callback(bmd); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment