예제 #1
0
 public override RenderThread CreateRenderThread(int threadIndex, IntersectionEngine intersectionDevice, RayEngineScene scene, 
     IImageFilm flm,IFrameManager manager, SamplingContext samplingContext)
 {
     if (this.film == null)
         film = flm;
     return new SpectralRenderThread(threadIndex, intersectionDevice, scene, samplingContext.LowLatency, this.film, samplingContext, manager,sceneManager);
 }
예제 #2
0
        private void InitDevices(int renderThreadCount, int width, int height, IFrameManager fM)
        {
            engine.LowLatencySampling = false;

            this.IntersectionDevice =
                //new MCOpenClIntersectionDevice(scene, true, 0);
                //new DadeCudaIntersectionDevice(scene, null);
                new OptixIntersectionDevice(scene, engine.LowLatencySampling);
            //new OptixPrimeIntersectionDevice(scene, engine.LowLatencySampling);

            //new CpuBvhIntersectionEngine(scene);
            var renderThreadsCount = Math.Min(engine.MaxThreadCount, renderThreadCount);
            this.RenderThreads = new RenderThread[renderThreadsCount];
            int ht = height / renderThreadsCount;
            var samplingContext = new SamplingContext()
                {
                    LightSampler = new LightSampler(scene),
                    SurfaceSampler = new SurfaceSampler(scene)
                };
            for (int i = 0; i < renderThreadsCount; i++)
            {
                var sampler = engine.CreateSampler(width, height, scene.MaxPathDepth, i, ht * i, ht);
                samplingContext.PrimarySpaceSampler = sampler;
                RenderThreads[i] = engine.CreateRenderThread(i, IntersectionDevice, scene, 
                    SingleFilm ? FilmFactory.Cache :
                    FilmFactory.CreateFilm(width, height, GlobalConfiguration.Instance.AdaptiveFilm)
                    , fM, samplingContext);
            }
        }
예제 #3
0
        public void Init()
        {
            InitRoot();

            XCorePlatform.Platform = XCorePlatform.XCorePlatforms.iOS;

            _root         = RootFrame.CreateContentModel <TRootVM>();
            _frameManager = RootFrame.Container.Resolve <IFrameManager>();

            var initalViewController = _frameManager.Init(RootFrame, RootViewModel);

            _rootPage = initalViewController;

            _window = new UIWindow(UIScreen.MainScreen.Bounds);

            var rv        = RootFrame.Container.Resolve <RootViewController>();
            var childView = initalViewController.CreateViewController();

            rv.SetChild(childView, _window);

            RootView = rv;

            XiOSRoot.RootViewController = RootView;
            XiOSRoot.RootWindow         = _window;
            _window.RootViewController  = RootView;

            _window.MakeKeyAndVisible();
        }
예제 #4
0
 public void Setup()
 {
     _rollGenerator         = Substitute.For <IRollGenerator>();
     _rollSequenceGenerator = Substitute.For <IRollSequenceGenerator>();
     _frameManager          = new FrameManager(_gameManager, _rollSequenceGenerator);
     _game        = new Game(_frameManager);
     _gameManager = new GameManager(_game);
 }
 public DeviceAdaptiveTrigger()
 {
     if (!DesignMode.DesignModeEnabled)
     {
         _frameManager = App.FrameManager;
         Window.Current.SizeChanged            += Current_SizeChanged;
         _frameManager.RightFrameContentChange += _frameManager_RightFrameContentChange;
     }
 }
예제 #6
0
 public override RenderThread CreateRenderThread(int threadIndex, IntersectionEngine intersectionDevice,
                                                 RayEngineScene scene, IImageFilm film, IFrameManager frameManager, SamplingContext samplingContext)
 {
     if (this.Context == null)
     {
         Context = new PhotonMappingContext() { Film = film, surfaceSampler = (SurfaceSampler)samplingContext.SurfaceSampler };
     }
     return new PhotonMappingRenderThread(threadIndex, intersectionDevice, scene, LowLatencySampling, film, Context, samplingContext ,frameManager);
 }
예제 #7
0
파일: XCore.cs 프로젝트: sk8tz/Xamling-Core
        public Page GetRootPage <TViewModel>() where TViewModel : XViewModel
        {
            _frameManager = RootFrame.Container.Resolve <IFrameManager>();
            var newRoot = RootFrame.CreateContentModel <TViewModel>();

            XFrameManager.AlertHandler = null;
            var initalViewController = _frameManager.Init(RootFrame, newRoot);
            var p = initalViewController;

            return(p);
        }
예제 #8
0
        public LifeTime(ILogger logger, IConfiguration configuration, AuthServer authServer, IDatabaseManager databaseManager, ISaveManager saveManager, IFrameManager frameManager, IConsoleCommandsManager consoleCommandsManager)
        {
            _logger                 = logger;
            _configuration          = configuration;
            _authServer             = authServer;
            _database               = databaseManager;
            _saveManager            = saveManager;
            _frameManager           = frameManager;
            _consoleCommandsManager = consoleCommandsManager;

            AppDomain.CurrentDomain.ProcessExit += Stop;
        }
예제 #9
0
 public CorrectorRenderThread(int index,
                                IIntersectionEngine device,
                                RayEngineScene scn,
                                bool lowLatency,
                                CorrectorImageFilm pixelDevice,
                                GlobalSamplingContext sc, IFrameManager fM)
     : base(index, scn)
 {
     this.pixelDevice = pixelDevice;
     this.frameManager = fM;
     Init(device, lowLatency, pixelDevice, sc);
 }
예제 #10
0
        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override void OnLaunched(LaunchActivatedEventArgs e)
        {
            if (DeviceInfoHelper.DeviceType == DeviceType.Mobile)
            {
                FrameManager = new MobileFrameManager();
            }
            else
            {
                FrameManager = new DesktopFrameManager();
            }
#if DEBUG
            if (Debugger.IsAttached)
            {
                this.DebugSettings.EnableFrameRateCounter = true;
            }
#endif

            Frame rootFrame = Window.Current.Content as Frame;

            // Do not repeat app initialization when the Window already has content,
            // just ensure that the window is active
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                FrameManager.MainFrame = rootFrame = new Frame();

                //动画
                rootFrame.ContentTransitions = new TransitionCollection {
                    new NavigationThemeTransition()
                };

                rootFrame.NavigationFailed += OnNavigationFailed;

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Load state from previously suspended application
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            if (rootFrame.Content == null)
            {
                // When the navigation stack isn't restored navigate to the first page,
                // configuring the new page by passing required information as a navigation
                // parameter
                rootFrame.Navigate(typeof(MainShellView), e.Arguments);
            }
            // Ensure the current window is active
            Window.Current.Activate();
        }
예제 #11
0
 public void Initialize(int renderThreadCount, int width, int height, IFrameManager frameManager)
 {
     this.InitDevices(renderThreadCount, width, height, frameManager);
 }
예제 #12
0
 public override RenderThread CreateRenderThread(int threadIndex, IntersectionEngine intersectionDevice, RayEngineScene scene, IImageFilm film, IFrameManager frameManager, SamplingContext samplingContext)
 {
     return new DeviceRenderThread<PathBuffer<VolumePathTracerPath>> (threadIndex, intersectionDevice, scene, LowLatencySampling, film, samplingContext, frameManager);
 }
예제 #13
0
 public override RenderThread CreateRenderThread(int threadIndex, IntersectionEngine intersectionDevice, RayEngineScene scene, IImageFilm film, IFrameManager manager, SamplingContext samplingContext)
 {
     return new DeviceRenderThread(threadIndex, intersectionDevice, scene, this.LowLatencySampling, film, samplingContext, manager);
 }
예제 #14
0
 public override RenderThread CreateRenderThread(int threadIndex, IntersectionEngine intersectionDevice, RayEngineScene scene,
                                                 IImageFilm film, IFrameManager manager, SamplingContext samplingContext)
 {
     return new DeviceRenderThread<PathBuffer<UnidirectionalSpectralPathSampler>>(threadIndex, intersectionDevice, scene,
                                                             LowLatencySampling, film, samplingContext, manager);
 }
예제 #15
0
 protected NetworkClient(IFrameManager frameManager, ILogger logger)
 {
     _logger       = logger;
     _frameManager = frameManager;
     _options      = _options = ServiceLocator.Provider.GetService <NetworkOptions>();
 }
예제 #16
0
 public Game(
     IFrameManager frameManager)
 {
     _frameManager = frameManager;
     ScoreManager.ResetScore();
 }
예제 #17
0
 public AuthClient(IFrameManager frameManager, ILogger logger) : base(frameManager, logger)
 {
 }
예제 #18
0
 public abstract RenderThread CreateRenderThread(int threadIndex, IntersectionEngine intersectionDevice, RayEngineScene scene, IImageFilm film, IFrameManager manager, SamplingContext samplingContext);
예제 #19
0
 public PPMDeviceRenderThread(int index, IIntersectionEngine device, RayEngineScene scn, bool lowLatency, IImageFilm pixelDevice, ISampler sampler, SurfaceSampler ss, PPMContext ctx, IFrameManager frameManager)
     : base(index, scn)
 {
     this.context = ctx;
     Init(device, lowLatency, pixelDevice, sampler, ss);
 }