/// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        /// <param name="numMipMaps"></param>
        /// <param name="gamma"></param>
        /// <param name="priority"></param>
        /// <returns></returns>
        public Texture Load(string name, TextureType type, int numMipMaps, float gamma, bool isAlpha)
        {
            // does this texture exist already?
            Texture texture = GetByName(name);

            if (texture == null)
            {
                // create a new texture
                texture             = (Texture)Create(name);
                texture.TextureType = type;
                if (numMipMaps == -1)
                {
                    texture.NumMipMaps = defaultNumMipMaps;
                }
                else
                {
                    texture.NumMipMaps = numMipMaps;
                }

                // set bit depth and gamma
                texture.Gamma = gamma;
                if (isAlpha)
                {
                    texture.Format = PixelFormat.A8;
                }
                texture.Enable32Bit(is32Bit);
            }
            // The old code called the base class load method, but now we just call texture.Load()
            // base.Load(texture, 1);
            texture.Load();

            return(texture);
        }
        /// <summary>
        ///		Loads a pre-existing image into the texture.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="image">the image to load, or null to return an empty texture</param>
        /// <param name="numMipMaps"></param>
        /// <param name="gamma"></param>
        /// <param name="priority"></param>
        /// <returns></returns>
        public Texture LoadImage(string name, Image image, TextureType texType, int numMipMaps, float gamma, bool isAlpha)
        {
            // create a new texture
            Texture texture = (Texture)Create(name, true);

            texture.TextureType = texType;
            // set the number of mipmaps to use for this texture
            if (numMipMaps == -1)
            {
                texture.NumMipMaps = defaultNumMipMaps;
            }
            else
            {
                texture.NumMipMaps = numMipMaps;
            }

            // set bit depth and gamma
            texture.Gamma = gamma;
            if (isAlpha)
            {
                texture.Format = PixelFormat.A8;
            }
            texture.Enable32Bit(is32Bit);

            if (image != null)
            {
                // load image data
                texture.LoadImage(image);
            }

            return(texture);
        }
        /// <summary>
        ///    Method for creating a new blank texture.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="texType"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="numMipMaps"></param>
        /// <param name="format"></param>
        /// <param name="usage"></param>
        /// <returns></returns>
        public Texture CreateManual(string name, TextureType texType, int width, int height, int depth, int numMipmaps, PixelFormat format, TextureUsage usage)
        {
            Texture ret = (Texture)Create(name, true);

            ret.TextureType = texType;
            ret.Width       = width;
            ret.Height      = height;
            ret.Depth       = depth;
            ret.NumMipMaps  = (numMipmaps == -1) ? defaultNumMipMaps : numMipmaps;
            ret.Format      = format;
            ret.Usage       = usage;
            ret.Enable32Bit(is32Bit);
            ret.CreateInternalResources();
            return(ret);
        }