/// <summary>
        ///		Loads a resource.  Resource will be subclasses of Resource.
        /// </summary>
        /// <param name="resource">Resource to load.</param>
        /// <param name="priority"></param>
        public virtual void Load(Resource resource, int priority)
        {
            // load and touch the resource
            resource.Load();
            resource.Touch();

            // cache the resource
            Add(resource);
        }
        /// <summary>
        ///		Gets a material with the specified name.
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public Resource LoadExisting(string name)
        {
            //get the resource
            Resource resource = GetByName(name);

            //ensure that it exists
            if (resource == null)
            {
                throw new ArgumentException("There is no resource with the name '{0}' that already exists.", name);
            }
            //ensure that it is loaded
            resource.Load();
            return(resource);
        }
        /// <summary>
        ///		Loads a resource.  Resource will be subclasses of Resource.
        /// </summary>
        /// <param name="resource">Resource to load.</param>
        /// <param name="priority"></param>
        public virtual void Load(Resource resource, int priority)
        {
            // load and touch the resource
            resource.Load();
            resource.Touch();

            // cache the resource
            Add(resource);
        }