Пример #1
0
        private MipMapChain CreateMipMapChain(ImageID imageID, int imageNum, int faceNum)
        {
            IL.BindImage(imageID);
            if (!IL.ActiveImage(imageNum))
            {
                return(null);
            }
            if (!IL.ActiveFace(faceNum))
            {
                return(null);
            }

            //Get total number of mipmaps (including base face)
            int         mipMapCount = IL.ilGetInteger(ILDefines.IL_NUM_MIPMAPS) + 1;
            MipMapChain mipMapChain = new MipMapChain();

            //Get the first mipmap and every other, when we hit a null, we break
            for (int i = 0; i < mipMapCount; i++)
            {
                ImageData data = ImageData.Load(new Subimage(imageID, imageNum, faceNum, 0, i));
                if (data == null)
                {
                    break;
                }
                mipMapChain.Add(data);
            }
            mipMapChain.TrimExcess();
            return(mipMapChain);
        }
Пример #2
0
        private MipMapChain CreateMipMapChain(ImageID imageID, int imageNum, int faceNum)
        {
            IL.BindImage(imageID);
            if (!IL.ActiveImage(imageNum))
            {
                return((MipMapChain)null);
            }
            if (!IL.ActiveFace(faceNum))
            {
                return((MipMapChain)null);
            }
            int         num         = IL.ilGetInteger(3570U) + 1;
            MipMapChain mipMapChain = new MipMapChain();

            for (int mipMapIndex = 0; mipMapIndex < num; ++mipMapIndex)
            {
                ImageData imageData = ImageData.Load(new Subimage(imageID, imageNum, faceNum, 0, mipMapIndex));
                if (imageData != null)
                {
                    mipMapChain.Add(imageData);
                }
                else
                {
                    break;
                }
            }
            mipMapChain.TrimExcess();
            return(mipMapChain);
        }
Пример #3
0
 public ImageData GetImageData(int mipmapIndex)
 {
     if (!this.IsValid || mipmapIndex < 0)
     {
         return((ImageData)null);
     }
     return(ImageData.Load(new Subimage(this.m_id, 0, 0, 0, mipmapIndex)));
 }
Пример #4
0
 public ImageData GetImageData(int imageIndex, int faceIndex, int layerIndex, int mipmapIndex)
 {
     if (!this.IsValid || imageIndex < 0 || (faceIndex < 0 || layerIndex < 0) || mipmapIndex < 0)
     {
         return((ImageData)null);
     }
     return(ImageData.Load(new Subimage(this.m_id, imageIndex, faceIndex, layerIndex, mipmapIndex)));
 }
Пример #5
0
        public ImageData GetImageData(int mipmapIndex)
        {
            if (!IsValid || mipmapIndex < 0)
            {
                return(null);
            }

            Subimage subimage = new Subimage(m_id, 0, 0, 0, mipmapIndex);

            return(ImageData.Load(subimage));
        }
Пример #6
0
        public ImageData GetImageData(int imageIndex, int faceIndex, int layerIndex, int mipmapIndex)
        {
            if (!IsValid || imageIndex < 0 || faceIndex < 0 || layerIndex < 0 || mipmapIndex < 0)
            {
                return(null);
            }

            Subimage subimage = new Subimage(m_id, imageIndex, faceIndex, layerIndex, mipmapIndex);

            return(ImageData.Load(subimage));
        }
Пример #7
0
        public ImageData GetImageData(CubeMapFace cubeMapFace, int mipmapIndex)
        {
            if (!this.IsValid || mipmapIndex < 0)
            {
                return((ImageData)null);
            }
            int faceCount = this.FaceCount;

            for (int index = 0; index < faceCount; ++index)
            {
                this.Bind();
                IL.ActiveFace(index);
                if ((CubeMapFace)IL.ilGetInteger(3581U) == cubeMapFace)
                {
                    return(ImageData.Load(new Subimage(this.m_id, 0, index, 0, mipmapIndex)));
                }
            }
            return((ImageData)null);
        }
Пример #8
0
        public ImageData GetImageData(CubeMapFace cubeMapFace, int mipmapIndex)
        {
            if (!IsValid || mipmapIndex < 0)
            {
                return(null);
            }

            int faceCount = FaceCount;

            for (int i = 0; i < faceCount; i++)
            {
                Bind();
                IL.ActiveFace(i);
                CubeMapFace face = (CubeMapFace)IL.ilGetInteger(ILDefines.IL_IMAGE_CUBEFLAGS);

                if (face == cubeMapFace)
                {
                    return(ImageData.Load(new Subimage(m_id, 0, i, 0, mipmapIndex)));
                }
            }

            return(null);
        }