チェンジセット 3834

差分発生行の前後
無視リスト:
コミット日時:
2010/04/22 23:51:16 (3 年前)
コミッタ:
hkrn
ログメッセージ:

removed LayerBitmapCollection#addLayer? and #load and #save in Painter are now in LayerBitmapCollection?

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/gunyarapaint.mxml

    r3823 r3834  
    159159                bitmapData.setPixels(new Rectangle(0, 0, w, h), bitmapBytes); 
    160160                dataBytes.readBytes(m_bytes); 
    161                 m_recorder.load(bitmapData, metadata); 
     161                m_recorder.layers.load(bitmapData, metadata); 
    162162                m_bytes.position = m_bytes.length; 
    163163                m_module.reset(); 
     
    174174                var metadata:Object = {}; 
    175175                var rect:Rectangle = bitmapData.rect; 
    176                 m_recorder.save(bitmapData, metadata); 
     176                m_recorder.layers.save(bitmapData, metadata); 
    177177                bytes.endian = Endian.BIG_ENDIAN; 
    178178                bytes.writeObject(m_bytes); 
  • as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/LayerBitmapCollection.as

    r3833 r3834  
    88    import flash.events.Event; 
    99    import flash.events.IEventDispatcher; 
     10    import flash.geom.Point; 
     11    import flash.geom.Rectangle; 
    1012     
    1113    import org.libspark.gunyarapaint.framework.errors.AddLayerError; 
     
    4143            layer.name = TranslatorRegistry.tr("Background"); 
    4244            composited = new BitmapData(width, height, true, 0x0); 
    43             addLayer(layer); 
     45            m_layers.push(layer); 
     46            m_sprite.addChild(layer.displayObject); 
    4447        } 
    4548         
     
    6366            compositeAll(); 
    6467            resetLayersIndex(); 
    65         } 
    66          
    67         /** 
    68          * レイヤーオブジェクトを追加する 
    69          *  
    70          * @param layer レイヤーオブジェクト 
    71          */ 
    72         public function addLayer(layer:LayerBitmap):void 
    73         { 
    74             if (m_layers.length >= MAX) 
    75                 throw new AddLayerError(MAX); 
    76             m_layers.push(layer); 
    77             m_sprite.addChild(layer.displayObject); 
    7868        } 
    7969         
     
    245235        } 
    246236         
     237        /** 
     238         * 連結されたレイヤー画像とメタデータから復元する 
     239         *  
     240         * @param layerBitmaps 縦に連結されたレイヤー画像 
     241         * @param metadata メタデータ 
     242         */ 
     243        public function load(layerBitmap:BitmapData, metadata:Object):void 
     244        { 
     245            var width:uint = metadata.width; 
     246            var height:uint = metadata.height; 
     247            var layersInfo:Array = metadata.layer_infos; 
     248            var layerCount:uint = layerBitmap.height / height; 
     249            var destination:Point = new Point(0, 0); 
     250            var rectangle:Rectangle = new Rectangle(0, 0, width, height); 
     251            clear(); 
     252            for (var i:uint = 0; i < layerCount; i++) { 
     253                var bitmapData:BitmapData = new BitmapData(width, height); 
     254                rectangle.y = i * height; 
     255                bitmapData.copyPixels(layerBitmap, rectangle, destination); 
     256                var layer:LayerBitmap = new LayerBitmap(bitmapData); 
     257                layer.fromJSON(layersInfo[i]); 
     258                m_layers.push(layer); 
     259                m_sprite.addChild(layer.displayObject); 
     260            } 
     261        } 
     262         
     263        /** 
     264         * 連結されたレイヤー画像とメタデータを保存する 
     265         *  
     266         * @param layerBitmaps 縦に連結されたレイヤー画像 
     267         * @param metadata メタデータ 
     268         */ 
     269        public function save(layerBitmap:BitmapData, metadata:Object):void 
     270        { 
     271            var layersInfo:Array = []; 
     272            var layerCount:uint = layerBitmap.height / height; 
     273            var rectangle:Rectangle = new Rectangle(0, 0, width, height); 
     274            var destination:Point = new Point(0, 0); 
     275            layerBitmap.lock(); 
     276            for (var i:uint = 0; i < layerCount; i++) { 
     277                var layer:LayerBitmap = m_layers[i]; 
     278                destination.y = i * height; 
     279                layerBitmap.copyPixels(layer.bitmapData, rectangle, destination); 
     280                layersInfo.push(layer.toJSON()); 
     281            } 
     282            layerBitmap.unlock(); 
     283            metadata.width = width; 
     284            metadata.height = height; 
     285            metadata.layer_infos = layersInfo; 
     286        } 
     287         
    247288        public function addEventListener(type:String, 
    248289                                         listener:Function, 
  • as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/Painter.as

    r3832 r3834  
    130130         
    131131        /** 
    132          * 連結されたレイヤー画像とメタデータから復元する 
    133          *  
    134          * @param layerBitmaps 縦に連結されたレイヤー画像 
    135          * @param metadata メタデータ 
    136          */ 
    137         public function load(layerBitmap:BitmapData, metadata:Object):void 
    138         { 
    139             var width:uint = metadata.width; 
    140             var height:uint = metadata.height; 
    141             var layersInfo:Array = metadata.layer_infos; 
    142             var layerCount:uint = layerBitmap.height / height; 
    143             var destination:Point = new Point(0, 0); 
    144             var rectangle:Rectangle = new Rectangle(0, 0, width, height); 
    145             m_layers.clear(); 
    146             for (var i:uint = 0; i < layerCount; i++) { 
    147                 var bitmapData:BitmapData = new BitmapData(width, height); 
    148                 rectangle.y = i * height; 
    149                 bitmapData.copyPixels(layerBitmap, rectangle, destination); 
    150                 var layer:LayerBitmap = new LayerBitmap(bitmapData); 
    151                 layer.fromJSON(layersInfo[i]); 
    152                 m_layers.addLayer(layer); 
    153             } 
    154         } 
    155          
    156         /** 
    157          * 連結されたレイヤー画像とメタデータを保存する 
    158          *  
    159          * @param layerBitmaps 縦に連結されたレイヤー画像 
    160          * @param metadata メタデータ 
    161          */ 
    162         public function save(layerBitmap:BitmapData, metadata:Object):void 
    163         { 
    164             var layersInfo:Array = []; 
    165             var layerCount:uint = layerBitmap.height / height; 
    166             var rectangle:Rectangle = new Rectangle(0, 0, width, height); 
    167             var destination:Point = new Point(0, 0); 
    168             layerBitmap.lock(); 
    169             for (var i:uint = 0; i < layerCount; i++) { 
    170                 var layer:LayerBitmap = m_layers.at(i); 
    171                 destination.y = i * height; 
    172                 layerBitmap.copyPixels(layer.bitmapData, rectangle, destination); 
    173                 layersInfo.push(layer.toJSON()); 
    174             } 
    175             layerBitmap.unlock(); 
    176             metadata.width = width; 
    177             metadata.height = height; 
    178             metadata.layer_infos = layersInfo; 
    179         } 
    180          
    181         /** 
    182132         * 現在位置を変更する 
    183133         *  
  • as3/gunyarapaint/branches/gunyarapaint/test/src/org/libspark/gunyarapaint/framework/LayerBitmapContainerTest.as

    r3781 r3834  
    9191         
    9292        [Test(expects="org.libspark.gunyarapaint.framework.errors.AddLayerError")] 
    93         public function 規定数以上のレイヤーを追加すると例外を送出する():void 
    94         { 
    95             var lc:LayerBitmapCollection = layerContainer; 
    96             var max:uint = LayerBitmapCollection.MAX; 
    97             for (var i:uint = 0; i < max; i++) { 
    98                 var layer:LayerBitmap = new LayerBitmap(new BitmapData(WIDTH, HEIGHT)); 
    99                 lc.addLayer(layer); 
    100             } 
    101         } 
    102          
    103         [Test(expects="org.libspark.gunyarapaint.framework.errors.AddLayerError")] 
    10493        public function 規定数以上のレイヤーをコピーすると例外を送出する():void 
    10594        { 
  • as3/gunyarapaint/branches/gunyarapaint/test/src/org/libspark/gunyarapaint/framework/PainterTest.as

    r3832 r3834  
    102102            var src:LayerBitmap = painter.layers.at(2); 
    103103            var layers:BitmapData = painter.newLayerBitmapData; 
    104             painter.save(layers, metadata); 
     104            painter.layers.save(layers, metadata); 
    105105            Assert.assertEquals(metadata.width, painter.width); 
    106106            Assert.assertEquals(metadata.height, painter.height); 
    107107            Assert.assertEquals(3, metadata.layer_infos.length); 
    108108            var painter2:Painter = new Painter(3, 1, Painter.PAINTER_LOG_VERSION, new FakePaintEngine()); 
    109             painter2.load(layers, metadata); 
     109            painter2.layers.load(layers, metadata); 
    110110            Assert.assertEquals(3, painter2.layers.count); 
    111111            var dst:LayerBitmap = painter2.layers.at(2);