예제 #1
0
        protected void PostponedRender(object sender, EventArgs e)
        {
            Wait.SubStart();
            Wait.Message = "Building Preview";
            SimPe.Plugin.GeometryDataContainerExt ext = ((sender as PackageInfo).RenderData) as SimPe.Plugin.GeometryDataContainerExt;
            Ambertation.Scenes.Scene scn = ext.GetScene(new SimPe.Plugin.Gmdc.ElementOrder(SimPe.Plugin.Gmdc.ElementSorting.Preview));
            nfo.RenderedImage = Get3dPreview(scn);
            scn.Dispose();

            ext.Gmdc.Dispose();
            ext.Dispose();
            Wait.SubStop();
        }
예제 #2
0
        protected void PostponedRender(object sender, EventArgs e)
        {
            Wait.SubStart();
            Wait.Message = "Building Preview";
            PackageInfo nfo = sender as PackageInfo;

            object[] data = nfo.RenderData as object[];
            tmppkg = SimPe.Packages.GeneratableFile.LoadFromFile(data[1].ToString());
            if (tmppkg == null)
            {
                return;
            }

            SimPe.Interfaces.Scenegraph.IScenegraphFileIndex fii = SimPe.Plugin.DownloadsToolFactory.TeleportFileIndex.AddNewChild();
            SimPe.Plugin.MmatWrapper mmat = data[0] as SimPe.Plugin.MmatWrapper;

            mmat.ProcessData(mmat.FileDescriptor, tmppkg);
            if (mmat != null)
            {
                fii.AddIndexFromPackage(mmat.Package, true);
                try
                {
                    Ambertation.Scenes.Scene scn = SimPe.Plugin.PreviewForm.RenderScene(mmat);
                    nfo.RenderedImage = Downloads.DefaultTypeHandler.Get3dPreview(scn);
                    scn.Dispose();
                    mmat.Dispose();
                }
                catch {}
            }


            fii.CloseAssignedPackages();
            SimPe.Plugin.DownloadsToolFactory.TeleportFileIndex.RemoveChild(fii);

            this.DisposeTmpPkg();
            Wait.SubStop();
        }