コード例 #1
0
ファイル: ImagePacker.cs プロジェクト: ylyking/Medusa
        public static void Pack(PublishTarget target)
        {
            if (target.IsOptimzed)
            {
                Optimze();
            }


            Logger.LogInfoLine("Packing:");
            var merger = new ImageMerger();

            foreach (var imageGroup in ImageGroups)
            {
                if (imageGroup.Value.Count > 1 || PublishTarget.Current.IsPVR)
                {
                    var resultImages = merger.Generate(imageGroup.Key, imageGroup.Value);
                    foreach (var resultImage in resultImages)
                    {
                        resultImage.Key.Save();
                        resultImage.Key.TryConvertSelfToPVR();

                        uint id = FileSystemGenerator.AddFileAndTag(resultImage.Key);
                        if (id != uint.MaxValue)
                        {
                            foreach (var subImage in resultImage.Value.UsedImages)
                            {
                                FileSystemGenerator.AddImageTagItem(subImage, id);
                            }
                        }
                    }
                }
                else
                {
                    if (imageGroup.Value.Count > 0)
                    {
                        imageGroup.Value[0].IsPacked = false;
                    }
                    //FileSystemGenerator.AddFileAndTag(imageGroup.Value[0]);
                }

                OnPackingProgressEvent(1);
            }


            foreach (var image in Images)
            {
                if (!image.Key.IsPacked)
                {
                    FileSystemGenerator.CopyFileToOutput(image.Key);
                }
                else
                {
                    if (!PublishTarget.Current.IsPack)
                    {
                        Logger.LogErrorLine("Lose file:{0}", image.Key.FileInfo.FullName);
                    }
                }
            }
        }
コード例 #2
0
ファイル: ImagePacker.cs プロジェクト: whztt07/Medusa
        public static void Pack(PublishTarget target)
        {
            if (target.IsOptimzed)
            {
                Optimze();
            }

            Logger.LogInfoLine("Packing:");
            var merger = new ImageMerger();
            foreach (var imageGroup in ImageGroups)
            {
                if (imageGroup.Value.Count>1||PublishTarget.Current.IsPVR)
                {
                    var resultImages = merger.Generate(imageGroup.Key, imageGroup.Value);
                    foreach (var resultImage in resultImages)
                    {
                        resultImage.Key.Save();
                        resultImage.Key.TryConvertSelfToPVR();

                        uint id=FileSystemGenerator.AddFileAndTag(resultImage.Key);
                        if (id!=uint.MaxValue)
                        {
                            foreach (var subImage in resultImage.Value.UsedImages)
                            {
                                FileSystemGenerator.AddImageTagItem(subImage,id);
                            }
                        }

                    }
                }
                else
                {
                    if (imageGroup.Value.Count>0)
                    {
                        imageGroup.Value[0].IsPacked = false;
                    }
                    //FileSystemGenerator.AddFileAndTag(imageGroup.Value[0]);

                }

                OnPackingProgressEvent(1);
            }

            foreach (var image in Images)
            {
                if (!image.Key.IsPacked)
                {
                    FileSystemGenerator.CopyFileToOutput(image.Key);
                }
                else
                {
                    if (!PublishTarget.Current.IsPack)
                    {
                        Logger.LogErrorLine("Lose file:{0}",image.Key.FileInfo.FullName);
                    }

                }
            }
        }