PBTK2 test

by zahir
♥0 | Line 45 | Modified 2010-06-05 17:01:03 | MIT License
play

ActionScript3 source code

/**
 * Copyright zahir ( http://wonderfl.net/user/zahir )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/rFrX
 */

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   width="465" height="465"
			   creationComplete="init();" >
	<fx:Script>
		<![CDATA[
			/*
			 * http://www.adobe.com/devnet/pixelbender/
			 * PixelBenderToolKit2が公開されていたのでちょっと試してみました。
			 * Parameterのmetadataの種類が倍増しました。
			 * 少し便利になったかな?
			 *
			 * ToolKitも画像入力が4つまで対応(いつになったらバイナリとか対応してくれるんでしょうね?
			 * 相変わらず日本語打てない…
			 * trace的な機能をつけて欲しい…
			 *
			 */
			import mx.utils.Base64Decoder;
			private function init():void{
				var dec:Base64Decoder = new Base64Decoder();
				dec.decode(
					"pQEAAACkCQBOZXdGaWx0ZXKgDG5hbWVzcGFjZQB6YWhpcjE5MjkAoAx2ZW5kb3IAemFoaXIAoAh2" +
					"ZXJzaW9uAAEAoAxkZXNjcmlwdGlvbgB0ZXN0LiBjb3B5cGUgLT4gZ3VpZGUAoQECAAAMX091dENv" +
					"b3JkAKMABHNyYwChAgQBAA9kc3QAoQECAAADY2VudGVyAKIMcGFyYW1ldGVyVHlwZQBwb3NpdGlv" +
					"bgCiAm1pblZhbHVlAAAAAAAAAAAAogJtYXhWYWx1ZQBFAAAARQAAAKICZGVmYXVsdFZhbHVlAEOA" +
					"AABDgAAAogJwcmV2aWV3VmFsdWUARAAAAEQAAACiAnN0ZXBJbnRlcnZhbABBIAAAQaAAAKIMZGlz" +
					"cGxheU5hbWUAdHdpcmwgY2VudGVyAKIMZGVzY3JpcHRpb24AdGhlIGNlbnRlciBvZiB0aGUgdHdp" +
					"cmwgdm9ydGV4AKIMbWluVmFsdWVOYW1lAHVwcGVyIGxlZnQAogxtYXhWYWx1ZU5hbWUAbG93ZXIg" +
					"cmlnaHQAHQIAwQAAEAACAgDBAACwADADAPECABAAHQEA8wMAGwA=" );
				read( new Shader( dec.toByteArray() ).data );
				dec = null;
			}
			private function read( sd:ShaderData ):void{
				if( !sd ) return;
				
				for( var p:String in sd){
					var d:* = sd[p];
					if(d is  ShaderParameter){
						var sp:ShaderParameter = d as ShaderParameter;
						t.text += p + " ( " + sp.type + " )\n";
						for(var _d:String in sp)
							t.text += "\t" + _d + " :: " + sp[_d] + "\n";
						t.text += "\n";
					}else if(d is ShaderInput){
						var si:ShaderInput = d as ShaderInput;
						t.text += p + " ( " + si.channels + " )\n\n"
					}else{
						// metadataは今回は飛ばします
					}
				}
			}
		]]>
	</fx:Script>
	<s:TextArea left="5" right="5" top="30" bottom="5" contentBackgroundColor="#CCCCCC" id="t"/>
	<s:Label text="PixelBenderToolKit2 test" left="5" top="5" fontSize="22" fontWeight="bold" fontFamily="Georgia"/>
</s:Application>