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(); }
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); }
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; }
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(); }