Im building an iOS AIR app using AS3/Flash builder.
The app grabs the camera stream into a video object and then draws that to a BitmapData. The camera stream is 1280x720px and the container is 2208x1242px (iPhone 7+) so I need to scale the footage. I also need to rotate it around the center point:
mat.identity(); mat.translate(-video.width/2,-video.height/2); mat.rotate(Math.PI/2); mat.translate(video.height/2,video.width/2); mat.scale(deviceSize.height/cam.width,deviceSize.width/cam.height);
I have timed the drawing operation with matrix:
And without matrix:
Clearly the transformation is slowing me down. Is there a faster way to do this? Maybe drawing first, then applying the matrix somehow? Pre-rotating something? Leveraging native scaling/rotation? Can I skip using the video object somehow? Accessing the camera data in a more raw form?
I see no difference using render mode GPU vs CPU.