示例#1
0
        private void _RefreshQueueNewArea(RefreshQueueAreaAddedEventArgs e)
        {
            // set refresh to Queue if no refresh required
            if (refreshNeeded == MatrixesRefreshType.None)
            {
                refreshNeeded = MatrixesRefreshType.Queue;
            }

            // if matrix that added Tile to queue is visible...
            if (e.layer.Visible == true)
            {
                // refresh all other visible matrixes
                for (int i = _visibleLayers.Count - 1; i >= 0; i--)
                {
                    GridPointMatrix otherMatrix = _visibleLayers[i];

                    // refresh other matrixes; no need to do the calling one again
                    if (e.layer != otherMatrix)
                    {
                        // only refresh e.tileAdded.DrawLocationRefresh rectangle; do not raise cascading events
                        otherMatrix.RefreshQueue.AddPixelRangeToRefreshQueue(e.area, false);
                    }
                }
            }
        }
示例#2
0
        public void ClearLayer(GridPointMatrix matrix)
        {
            _matrixes.Remove(matrix);
            OnGridPointMatrixRemoved(matrix);

            // rediscover the list of visible arrays
            _SetVisibleLayersArray();

            refreshNeeded = MatrixesRefreshType.All;
        }
示例#3
0
        public void ClearLayer(int matrix)
        {
            GridPointMatrix grid = this[matrix];

            _matrixes.Remove(grid);
            OnGridPointMatrixRemoved(grid);
            grid = null;

            // rediscover the list of visible arrays
            _SetVisibleLayersArray();

            refreshNeeded = MatrixesRefreshType.All;
        }
示例#4
0
        public GridPointMatrix AddLayer(GridPointMatrix matrix)
        {
            _matrixes.Add(matrix);
            int newIdx = _matrixes.Count - 1;

            OnGridPointMatrixAdded(this[newIdx]);

            // rediscover the list of visible arrays
            _SetVisibleLayersArray();

            refreshNeeded = MatrixesRefreshType.All;

            return(this[newIdx]);
        }
示例#5
0
        public void ClearAllLayers()
        {
            // raise "remove" event for each grid
            foreach (GridPointMatrix grid in this)
            {
                OnGridPointMatrixRemoved(grid);
            }

            _matrixes.Clear();

            // rediscover the list of visible arrays
            _SetVisibleLayersArray();

            refreshNeeded = MatrixesRefreshType.All;
        }
示例#6
0
        private void _RefreshQueueNewArea(RefreshQueueAreaAddedEventArgs e)
        {
            // set refresh to Queue if no refresh required
            if (refreshNeeded == MatrixesRefreshType.None)
                refreshNeeded = MatrixesRefreshType.Queue;

            // if matrix that added Tile to queue is visible...
            if (e.layer.Visible == true)
            {
                // refresh all other visible matrixes
                for (int i = _visibleLayers.Count - 1; i >= 0; i--)
                {
                    GridPointMatrix otherMatrix = _visibleLayers[i];

                    // refresh other matrixes; no need to do the calling one again
                    if (e.layer != otherMatrix)
                        // only refresh e.tileAdded.DrawLocationRefresh rectangle; do not raise cascading events
                        otherMatrix.RefreshQueue.AddPixelRangeToRefreshQueue(e.area, false);
                }
            }
        }
示例#7
0
 private void _MatrixVisibleChanged(VisibleChangedEventArgs e)
 {
     // redraw entire Backbuffer
     refreshNeeded = MatrixesRefreshType.All;
     _SetVisibleLayersArray();
 }
示例#8
0
 private void _MatrixColRowChanged(SourceGridPointChangedEventArgs e)
 {
     // shifting at least one Layer, so redraw entire Backbuffer
     refreshNeeded = MatrixesRefreshType.All;
 }
示例#9
0
 private void _GridPointSizeChanged(GridPointSizeChangedEventArgs e)
 {
     refreshNeeded = MatrixesRefreshType.All;
 }
示例#10
0
        public void ClearLayer(GridPointMatrix matrix)
        {
            _matrixes.Remove(matrix);
            OnGridPointMatrixRemoved(matrix);

            // rediscover the list of visible arrays
            _SetVisibleLayersArray();

            refreshNeeded = MatrixesRefreshType.All;
        }
示例#11
0
        public void ClearLayer(int matrix)
        {
            GridPointMatrix grid = this[matrix];
            _matrixes.Remove(grid);
            OnGridPointMatrixRemoved(grid);
            grid = null;

            // rediscover the list of visible arrays
            _SetVisibleLayersArray();

            refreshNeeded = MatrixesRefreshType.All;
        }
示例#12
0
        public void ClearAllLayers()
        {
            // raise "remove" event for each grid
            foreach (GridPointMatrix grid in this)
                OnGridPointMatrixRemoved(grid);

            _matrixes.Clear();

            // rediscover the list of visible arrays
            _SetVisibleLayersArray();

            refreshNeeded = MatrixesRefreshType.All;
        }
示例#13
0
        public GridPointMatrix AddLayer(GridPointMatrix matrix)
        {
            _matrixes.Add(matrix);
            int newIdx = _matrixes.Count - 1;
            OnGridPointMatrixAdded(this[newIdx]);

            // rediscover the list of visible arrays
            _SetVisibleLayersArray();

            refreshNeeded = MatrixesRefreshType.All;

            return this[newIdx];
        }
示例#14
0
 private void _GridPointMatrixWrappingChanged(GridPointMatrixWrappingChangedEventArgs e)
 {
     refreshNeeded = MatrixesRefreshType.All;
 }
示例#15
0
 private void _MatrixVisibleChanged(VisibleChangedEventArgs e)
 {
     // redraw entire Backbuffer
     refreshNeeded = MatrixesRefreshType.All;
     _SetVisibleLayersArray();
 }
示例#16
0
 private void _MatrixColRowChanged(SourceGridPointChangedEventArgs e)
 {
     // shifting at least one Layer, so redraw entire Backbuffer
     refreshNeeded = MatrixesRefreshType.All;
 }