Some rearrangement.

Fucking A.
It seems to default back to the size of the last snapshot taken
even if that snapshot was affected by the bug. When you quit and
then come back in, it is "stuck" to the last size. There's
no way to know what this size is.

Right now: logging everything, doing no adjustment.
Let's see if other people have problems, or what.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@751 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
Ray Greenwell
2009-01-09 02:24:11 +00:00
parent a0204eb35b
commit ff31994909
@@ -16,6 +16,7 @@ import flash.media.Video;
import flash.text.TextField;
import com.threerings.util.Log;
import com.threerings.util.MethodQueue;
// TODO: use PreferredCamera?
@@ -84,7 +85,7 @@ public class CameraSnapshotter extends Sprite
removeChild(_video);
}
_bitmap = null;
_video = null;
detachVideo();
}
_camera = camera;
@@ -108,8 +109,9 @@ public class CameraSnapshotter extends Sprite
{
clearSnapshot();
removeChild(_video);
_camera.setMode(width, height, fps, favorArea);
detachVideo();
_camera.setMode(width, height, fps, favorArea);
attachVideo();
}
@@ -125,13 +127,13 @@ public class CameraSnapshotter extends Sprite
// than leaving everything alone, which mostly didn't work. But then again,
// this code is specifically saying: "fuck up the scale", so if Adobe fixes their
// bug in the future, this will cause broken behavior.
_bitmap.bitmapData.draw(_video,
new Matrix(_camera.width / 160, 0, 0, _camera.height / 120));
// com.threerings.util.Log.testing("Camera stuff",
// "camera.width", _camera.width, "camera.height", _camera.height,
// "video.width", _video.width, "video.height", _video.height,
// "videoWidth", _video.videoWidth, "videoHeight", _video.videoHeight,
// "bitmap.width", _bitmap.width, "bitmap.height", _bitmap.height);
_bitmap.bitmapData.draw(_video);
//new Matrix(_camera.width / 160, 0, 0, _camera.height / 120));
Log.getLog(this).debug("Camera snapshotted",
"camera.width", _camera.width, "camera.height", _camera.height,
"video.width", _video.width, "video.height", _video.height,
"videoWidth", _video.videoWidth, "videoHeight", _video.videoHeight,
"bitmap.width", _bitmap.width, "bitmap.height", _bitmap.height);
if (_video.parent != null) {
removeChild(_video);
@@ -162,10 +164,8 @@ public class CameraSnapshotter extends Sprite
protected function attachVideo () :void
{
if (_video != null) {
// shut down the old video
_video.attachCamera(null);
}
// detach any old first
detachVideo();
_video = new Video(_camera.width, _camera.height);
// the constructor args don't seem to do dick, so we set the values again...
@@ -176,6 +176,14 @@ public class CameraSnapshotter extends Sprite
_bitmap = new Bitmap(new BitmapData(_camera.width, _camera.height, false));
}
protected function detachVideo () :void
{
if (_video != null) {
_video.attachCamera(null);
_video = null;
}
}
protected var _camera :Camera;
protected var _video :Video;