private Texture LoadImpl(FileSystemEntry entry, GraphicsDevice graphicsDevice) { switch (Path.GetExtension(entry.FilePath).ToLowerInvariant()) { case ".dds": if (!DdsFile.IsDdsFile(entry)) { goto case ".tga"; } var ddsFile = DdsFile.FromFileSystemEntry(entry); return(CreateTextureFromDds(ddsFile, graphicsDevice)); case ".tga": var tgaFile = TgaFile.FromFileSystemEntry(entry); return(CreateTextureFromTga(tgaFile, graphicsDevice)); case ".jpg": using (var stream = entry.Open()) { var jpgFile = new ImageSharpTexture(stream); return(CreateFromImageSharpTexture(jpgFile, graphicsDevice)); } default: throw new InvalidOperationException(); } }
protected override Texture LoadEntry(FileSystemEntry entry, ContentManager contentManager, Game game, LoadOptions loadOptions) { var generateMipMaps = (loadOptions as TextureLoadOptions)?.GenerateMipMaps ?? true; Texture applyDebugName(Texture texture) { texture.Name = entry.FilePath; return(texture); } switch (Path.GetExtension(entry.FilePath).ToLower()) { case ".dds": if (!DdsFile.IsDdsFile(entry)) { goto case ".tga"; } var ddsFile = DdsFile.FromFileSystemEntry(entry); return(applyDebugName(CreateTextureFromDds( contentManager.GraphicsDevice, ddsFile))); case ".tga": var tgaFile = TgaFile.FromFileSystemEntry(entry); return(applyDebugName(CreateTextureFromTga( contentManager.GraphicsDevice, tgaFile, generateMipMaps))); default: throw new InvalidOperationException(); } }
public void CanReadDdsTextures() { InstalledFilesTestData.ReadFiles(".dds", _output, entry => { var ddsFile = DdsFile.FromFileSystemEntry(entry); Assert.True(ddsFile.MipMaps.Length > 1); }); }
public DdsView(FileSystemEntry entry) { _ddsFile = DdsFile.FromFileSystemEntry(entry); var mipMaps = _ddsFile.MipMaps .Select((x, i) => new DdsMipMapInfo($"MipMap {i}", i, x)) .ToList(); _listBox = new ListBox(); _listBox.Width = 150; _listBox.ItemTextBinding = Binding.Property((DdsMipMapInfo v) => v.Name); _listBox.SelectedValueChanged += OnSelectedValueChanged; _listBox.DataStore = mipMaps; Panel1 = _listBox; _listBox.SelectedIndex = 0; }
private Texture LoadImpl(FileSystemEntry entry, FileSystem fileSystem, GraphicsDevice graphicsDevice) { switch (Path.GetExtension(entry.FilePath).ToLowerInvariant()) { case ".dds": if (!DdsFile.IsDdsFile(entry)) { goto case ".tga"; } var ddsFile = DdsFile.FromFileSystemEntry(entry); return(CreateTextureFromDds(ddsFile, graphicsDevice)); case ".tga": var tgaFile = TgaFile.FromFileSystemEntry(entry); return(CreateTextureFromTga(tgaFile, graphicsDevice)); case ".jpg": return(CreateTextureFromJpg(entry, fileSystem, graphicsDevice)); default: throw new InvalidOperationException(); } }
protected override Texture LoadEntry(FileSystemEntry entry, ContentManager contentManager, ResourceUploadBatch uploadBatch) { switch (Path.GetExtension(entry.FilePath).ToLower()) { case ".dds": var ddsFile = DdsFile.FromFileSystemEntry(entry); return(CreateTextureFromDds( contentManager.GraphicsDevice, uploadBatch, ddsFile)); case ".tga": var tgaFile = TgaFile.FromFileSystemEntry(entry); return(CreateTextureFromTga( contentManager.GraphicsDevice, uploadBatch, tgaFile, true)); // TODO: Don't need to generate mipmaps for GUI textures. default: throw new InvalidOperationException(); } }
private Control CreateControlForFileSystemEntry(FileSystemEntry entry) { Game getGame(IntPtr windowHandle) { _game = GameFactory.CreateGame( _getInstallation(), _getFileSystem(), () => OpenSage.Platform.CurrentPlatform.CreateWindow(windowHandle)); return(_game); } switch (Path.GetExtension(entry.FilePath).ToLower()) { case ".ani": case ".cur": return(new AniView(entry, getGame)); case ".apt": return(new AptView(entry, getGame)); case ".bmp": return(new BmpView(entry)); case ".dds": if (!DdsFile.IsDdsFile(entry)) { goto case ".tga"; } return(new DdsView(DdsFile.FromFileSystemEntry(entry))); case ".const": return(new ConstView(entry)); case ".csf": return(new CsfView(entry)); case ".ini": return(new IniView(entry, getGame)); case ".manifest": return(new ManifestView(entry, _getInstallation, _getFileSystem)); case ".map": return(new MapView(entry, getGame)); case ".ru": return(new RuView(entry, getGame)); case ".tga": return(new TgaView(entry)); case ".txt": return(new TxtView(entry)); case ".wav": return(new WavView(entry, getGame)); case ".w3d": return(new W3dView(entry, getGame)); case ".wnd": return(new WndView(entry, getGame)); default: return(null); } }