CountMipMaps() static private method

static private CountMipMaps ( int width, int height ) : int
width int
height int
return int
Esempio n. 1
0
        public void GenerateMipMaps(int minMipWidth = 1, int minMipHeight = 1)
        {
            int mipCount = DdsHeader.CountMipMaps(Width, Height);

            int mipWidth  = Width;
            int mipHeight = Height;

            MipMaps = new List <DdsMipMap> {
                new DdsMipMap(Width, Height, largestMipMap)
            };

            for (int mipLoop = 1; mipLoop < mipCount; mipLoop++)
            {
                if (mipWidth > minMipWidth)
                {
                    mipWidth /= 2;
                }
                if (mipHeight > minMipHeight)
                {
                    mipHeight /= 2;
                }

                DdsMipMap writeSize = new DdsMipMap(mipWidth, mipHeight);

                WriteableBitmap mipMap = new WriteableBitmap(BitmapSource);

                writeSize.MipMap = mipMap.ResizeHighQuality(writeSize.Width, writeSize.Height).ConvertToRgba();

                MipMaps.Add(writeSize);
            }
        }