描画を計ろう

レンダリングにかかる時間を計測して、パフォーマンスをチューニング

/** 
* @mxmlc -default-size 640 480 -incremental=true 
*/ 

package {
	import	flash.display.*;
	import	flash.geom.*;
	import	flash.events.*;
	import	flash.utils.*;

	public	class Main extends Sprite {
		[Embed(source='sofi.jpg')]
		private var imageClass:Class;
		private var bData:Bitmap	= new imageClass();

		private	var g:Glib01	= new Glib01( 640, 480 );
		private	var	po:Array;
		private	var	uv:Array;
		//-------------------------------------
		//
		public	function	Main(){
			addChild( new Bitmap( g.GetBitmapData() ) );

			po	=	new Array( 4 );
			uv	=	new Array( 4 );
			po[ 0 ]	= new Point( 100,  50 );
			po[ 1 ]	= new Point( 350,  80 );
			po[ 2 ]	= new Point( 400, 300 );
			po[ 3 ]	= new Point(  50, 350 );
			
			uv[ 0 ]	= new Point(  0,    0 );
			uv[ 1 ]	= new Point( 256,   0 );
			uv[ 2 ]	= new Point( 256, 256 );
			uv[ 3 ]	= new Point(   0, 256 );

			var	timer:Timer=new Timer(32,0);
			timer.addEventListener(TimerEvent.TIMER,onTick);
			timer.start();
		}
		//-------------------------------------
		//
		private function onTick( evt:TimerEvent ):void
		{
			var ti:int;
			ti		= getTimer();
			
			g.Cls(0x8080ff);
			g.DrawBitmapPolygon3( bData.bitmapData, uv[ 0 ], uv[ 1 ], uv[ 2 ], po[ 0 ], po[ 1 ], po[ 2 ] );
			g.DrawBitmapPolygon3( bData.bitmapData, uv[ 0 ], uv[ 2 ], uv[ 3 ], po[ 0 ], po[ 2 ], po[ 3 ] );
			g.Print( 200, 50, "DrawTime="+(getTimer()-ti));
		}
	}
}

ゲームを作っていると、最後に高速化が必要になってきます。時間の計測できれば大体はパフォーマンスチェックできるようになるので「getTimer();」を使って数値を計測。
FLASHでこれ以上細かい精度の数値は取得できないので、大雑把なプロファイルにしかなりませんが・・・・

■画面解像度の指定。
ソースの頭に、この3行を足すと、画面解像度を指定できます。今回は640X480で

/** 
* @mxmlc -default-size 640 480 -incremental=true 
*/ 

ナルニア
六本木ヒルズナルニア第2章を見に行きました、昼間まなので、すいててラクチン