Esempio n. 1
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();
            }
        }
Esempio n. 2
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();
            }
        }
Esempio n. 3
0
        private Control CreateControl(FileSystemEntry entry)
        {
            switch (Path.GetExtension(entry.FilePath).ToLower())
            {
            case ".ani":
            case ".cur":
                return(new AniView(entry, _getGame()));

            case ".bmp":
                return(new BmpView(entry));

            case ".dds":
                if (!DdsFile.IsDdsFile(entry))
                {
                    goto case ".tga";
                }
                return(new DdsView(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));

            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 ".w3d":
                return(new W3dView(entry, _getGame()));

            case ".wnd":
                return(new WndView(entry, _getGame()));

            default:
                return(null);
            }
        }
Esempio n. 4
0
        public void CanReadDdsTextures()
        {
            InstalledFilesTestData.ReadFiles(".dds", _output, entry =>
            {
                if (!DdsFile.IsDdsFile(entry))
                {
                    return;
                }

                var ddsFile = DdsFile.FromFileSystemEntry(entry);

                Assert.True(ddsFile.MipMaps.Length > 0);
            });
        }
Esempio 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();
            }
        }
Esempio n. 6
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);
            }
        }