Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        public void CanReadDdsTextures()
        {
            InstalledFilesTestData.ReadFiles(".dds", _output, entry =>
            {
                var ddsFile = DdsFile.FromFileSystemEntry(entry);

                Assert.True(ddsFile.MipMaps.Length > 1);
            });
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
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();
            }
        }
Ejemplo n.º 6
0
        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();
            }
        }
Ejemplo n.º 7
0
        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);
            }
        }