Пример #1
0
        public static void CopyToVolume(OpsContext context, VolumeTexture newTexture, string srcArg, Filter filter)
        {
            if (srcArg == null || srcArg.Length == 0)
            {
                return;
            }

            ArrayList srcList = context.FindTextures(srcArg);

            if (srcList == null || srcList.Count == 0)
            {
                throw new OpsException("Could not find source texture: " + srcArg);
            }

            if (((OpsTexture)srcList[0]).Texture is VolumeTexture)
            {
                VolumeLoader.FromVolume(newTexture.GetVolumeLevel(0), ((VolumeTexture)((OpsTexture)srcList[0]).Texture).GetVolumeLevel(0), filter, 0);
            }
            else
            {
                for (int i = 0; i < srcList.Count; i++)
                {
                    OpsTexture src = srcList[i] as OpsTexture;

                    if (!(src.Texture is Texture))
                    {
                        throw new OpsException("Source texture pattern is not 1 volume texture or all 2D textures: " + srcArg);
                    }

                    OpsTextureHelper.LoadVolumeSliceFromSurface(newTexture, 0, i, filter, ((Texture)src.Texture).GetSurfaceLevel(0));
                }
            }

            newTexture.GenerateMipSubLevels();
        }
Пример #2
0
        public static VolumeTexture CloneVolume(VolumeTexture oldTexture, int width, int height, int depth, int mips, Format format, Usage usage, Filter filter, Pool pool)
        {
            VolumeTexture newTexture = new VolumeTexture(oldTexture.Device, width, height, depth, mips, usage, format, pool);

            VolumeLoader.FromVolume(newTexture.GetVolumeLevel(0), oldTexture.GetVolumeLevel(0), filter, 0);
            return(newTexture);
        }
Пример #3
0
 public static VolumeTexture CloneVolume( VolumeTexture oldTexture, int width, int height, int depth, int mips, Format format, Usage usage, Filter filter, Pool pool )
 {
     VolumeTexture newTexture = new VolumeTexture(oldTexture.Device, width, height, depth, mips, usage, format, pool);
     VolumeLoader.FromVolume(newTexture.GetVolumeLevel(0), oldTexture.GetVolumeLevel(0), filter, 0);
     return newTexture;
 }
Пример #4
0
        public static void CopyToVolume(OpsContext context, VolumeTexture newTexture, string srcArg, Filter filter )
        {
            if(srcArg == null || srcArg.Length == 0)
                return;

            ArrayList srcList = context.FindTextures(srcArg);
                
            if(srcList == null || srcList.Count == 0)
                throw new OpsException("Could not find source texture: "+srcArg );
            
            if(((OpsTexture)srcList[0]).Texture is VolumeTexture )
            {
                VolumeLoader.FromVolume(newTexture.GetVolumeLevel(0), ((VolumeTexture)((OpsTexture)srcList[0]).Texture).GetVolumeLevel(0), filter, 0);    
            }
            else
            {
                for( int i = 0; i < srcList.Count; i++)
                {
                    OpsTexture src = srcList[i] as OpsTexture;

                    if(!(src.Texture is Texture))
                        throw new OpsException("Source texture pattern is not 1 volume texture or all 2D textures: "+srcArg);

                    OpsTextureHelper.LoadVolumeSliceFromSurface(newTexture, 0, i, filter, ((Texture)src.Texture).GetSurfaceLevel(0) );
                }
            }

            newTexture.GenerateMipSubLevels();
        }