チェンジセット 1150

差分発生行の前後
無視リスト:
コミット日時:
2008/08/27 18:20:24 (5 年前)
コミッタ:
tasuku
ログメッセージ:

r101@poppop (orig r100): tasuku | 2008-08-12 15:27:04 +0900
layer draw now properlly works!

ファイル:

凡例:

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

    r1149 r1150  
    150150  gpCanvas.addEventListener('changeUndoRedo', changeUndoRedoHandler); 
    151151  gpCanvas.rotation = 0; 
    152   gpLayerWindow.layers = gpCanvas.layers; 
     152  gpLayerWindow.canvas = gpCanvas; 
    153153 
    154154  toolCanvas.x = (this.width - toolCanvas.width) / 2; 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/GPCanvas.as

    r1149 r1150  
    2424     
    2525    private var baseSprite:Sprite; // イベント取得・ベース画像 (0) 
    26     private var combinedBitmap:Bitmap; // レイヤーを統合した表示用ビットマップ(1) 
     26    private var combinedLowerBitmap:Bitmap; // 描画レイヤーより下のレイヤーを統合した表示用ビットマップ(1) 
    2727    private var lineShape:Shape; // 描画用 (2) 
    28     private var additionalBox:Shape; // 縦横補助線 (3) 
    29     private var additionalSkew:Shape; // 斜め補助線 (4) 
    30     private var previewShape:Shape; // プレビュー用 (5) 
     28    private var combinedUpperBitmap:Bitmap; // 描画レイヤーより下のレイヤーを統合した表示用ビットマップ(3) 
     29    private var additionalBox:Shape; // 縦横補助線 (4) 
     30    private var additionalSkew:Shape; // 斜め補助線 (5) 
     31    private var previewShape:Shape; // プレビュー用 (6) 
    3132     
    3233    private var additionalNumber:uint = 4; // 補助線の分割数 
     
    7071           
    7172          // レイヤ統合して、そのbitmapDataを保持するbitmapを作る 
    72           combinedBitmap = new Bitmap(); 
     73          combinedLowerBitmap = new Bitmap(); 
     74          combinedUpperBitmap = new Bitmap(); 
    7375      combineLayers(); 
    74       addChildAt(combinedBitmap, 1); 
     76 
     77      addChildAt(combinedLowerBitmap, 1); 
    7578       
    7679      // 描画用shape 
     
    7881      addChildAt(lineShape, 2); 
    7982       
     83      // 上のレイヤ 
     84      addChildAt(combinedUpperBitmap, 3); 
     85 
    8086      // 補助線用shape 
    8187      additionalBox = new Shape(); 
     
    112118        } 
    113119 
    114         private function combineLayers():void { 
    115           combinedBitmap.bitmapData = _layers.combinedBitmapData; 
     120        public function combineLayers():void { 
     121          var a:Array = _layers.combinedDrawBitmapData; 
     122          combinedLowerBitmap.bitmapData = a[0]; 
     123          combinedUpperBitmap.bitmapData = a[1]; 
    116124        } 
    117125         
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/GPLayerWindowControlScript.as

    r1149 r1150  
     1import gunyarapaint.controls.GPCanvas; 
    12import gunyarapaint.entities.GPLayerArray; 
    23 
     
    1011public static const LAYER_ACTION_SWAP:uint = 5; 
    1112 
    12  
     13private var _canvas:GPCanvas; 
    1314private var _layers:GPLayerArray; 
    1415 
     
    3435} 
    3536 
    36 // GPCanvasで作ったlayersをもらってくる 
    37 public function set layers(l:GPLayerArray):void { 
    38   _layers = l; 
     37// GPCanvasをもらい、GPCanvasとそれが保持するGPLayersをローカル保存 
     38public function set canvas(can:GPCanvas):void { 
     39  _canvas = can; 
     40  _layers = can.layers; 
    3941  this.enabled = true; 
    4042  update(); 
     43  layerDataGrid.selectedIndex = 0; 
    4144  /* 
    4245  [ 
     
    4851private function itemFocusHandler(evt:mx.events.DataGridEvent):void { 
    4952  _layers.targetIndex = evt.currentTarget.selectedItem.index; 
     53  _canvas.combineLayers(); 
    5054} 
    5155 
    5256private function update():void { 
    53   layerDataGrid.dataProvider = _layers.layersForDaraProvider;   
     57  layerDataGrid.dataProvider = _layers.layersForDaraProvider; 
     58  _canvas.combineLayers(); 
    5459} 
    5560 
     
    5762  _layers.pushBlank(); 
    5863  update(); 
     64  layerDataGrid.selectedIndex = 0; 
    5965} 
    6066 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/entities/GPLayerArray.as

    r1149 r1150  
    8686    } 
    8787 
     88    // 現在描画しているレイヤ以下のレイヤ群と、それを超えるレイヤ群とをそれぞれ返す。 
     89    // 描画用graphicの上と下に重ねる 
     90    public function get combinedDrawBitmapData():Array { 
     91      var i:uint; 
     92      var b1:BitmapData = new BitmapData(_width, _height, true, 0x0000000); 
     93      var b2:BitmapData = new BitmapData(_width, _height, true, 0x0000000); 
     94      for (i = 0; i <= _targetIndex; i++) { 
     95        _a[i].drawDest(b1);         
     96      } 
     97      for (; i < _a.length; i++) { 
     98        _a[i].drawDest(b2); 
     99      } 
     100      return [b1, b2]; 
     101    } 
     102 
    88103    // レイヤ統合したbitmapDataを出す。 
    89104    public function get combinedBitmapData():BitmapData { 
    90       var b:BitmapData = new BitmapData(_width, _height); 
     105      var b:BitmapData = new BitmapData(_width, _height, true, 0x00000000); 
    91106      for (var i:String in _a) { 
    92107        _a[i].drawDest(b); 
     
    151166    public function get layersForDaraProvider():Array { 
    152167      var ret:Array = new Array(); 
    153       for (var i:String in _a) { 
     168      for (var i:int = _a.length - 1; i >= 0; i--) { 
    154169        ret.push({ 
    155170          index: _a[i].index,