示例#1
0
        /// <summary>
        /// Clears the scene.
        /// </summary>
        /// <param name="clearResources">Clear all resources too?</param>
        internal void Clear(bool clearResources)
        {
            // Clear all layers
            for (int loop = 0; loop < m_sceneLayers.Count; loop++)
            {
                SceneLayer actLayer = m_sceneLayers[loop];
                actLayer.ClearObjects();

                if (actLayer.Name != DEFAULT_LAYER_NAME)
                {
                    m_sceneLayers.RemoveAt(loop);
                    loop--;
                }
            }

            // Clears all 2D drawing layers
            m_drawing2DLayers.Clear();

            // Clear all resources
            if (clearResources)
            {
                foreach (ResourceDictionary actDictionary in m_registeredResourceDicts)
                {
                    actDictionary.Clear();
                }
                m_renderParameters.Clear();

                for (int loop = 0; loop < m_sceneLayers.Count; loop++)
                {
                    SceneLayer actLayer = m_sceneLayers[loop];
                    actLayer.ClearResources();
                }
            }
        }
示例#2
0
        /// <summary>
        /// Clears the given layer.
        /// </summary>
        /// <param name="layer">The layer to be cleared.</param>
        internal void ClearLayer(SceneLayer layer)
        {
            layer.EnsureNotNull(nameof(layer));

            if (layer == null)
            {
                throw new ArgumentNullException("layer");
            }
            if (layer.Scene != this)
            {
                throw new ArgumentException("Given layer does not belong to this scene!", "layer");
            }

            layer.ClearObjects();
        }