Beispiel #1
0
        private Program()
        {
            form = new RenderForm("Struct-of-Structs");
            graphics = new Graphics(800, 600, false, form.Handle);
            input = new Input(form);
            Timer = new TimerTick();

            OnCleanup += graphics.Dispose;
            OnCleanup += input.Dispose;
            OnCleanup += form.Dispose;
        }
Beispiel #2
0
        public void Start()
        {
            m_timer = new TimerTick();

            System.Windows.Media.CompositionTarget.Rendering += CompositionTarget_Rendering;
        }
Beispiel #3
0
        /// <summary>
        /// Starts the used resources.
        /// </summary>
        /// <returns>If everything initialized properly.</returns>
        public static bool Initialize()
        {
            Timer = new TimerTick();

            InitializeWindow();

            Graphics = new Graphics();
            if(Graphics != null)
                if(!Graphics.Initialize(Height, Width, RenderForm.Handle))
                    return false;

            Input = new Input();
            if(Input != null)
                Input.Initialize(RenderForm);

            return true;
        }
        public DrawingSurfaceSIS(IRenderer renderer1, IRenderer renderer2)
        {

            
            gameTime = new GameTime();
            totalGameTime = new TimeSpan();
            timer = new TimerTick();
            IsFixedTimeStep = true;
            maximumElapsedTime = TimeSpan.FromMilliseconds(500.0);
            TargetElapsedTime = TimeSpan.FromTicks(10000000 / 60); // target elapsed time is by default 60Hz
            lastUpdateCount = new int[4];
            nextLastUpdateCountIndex = 0;

            // Calculate the updateCountAverageSlowLimit (assuming moving average is >=3 )
            // Example for a moving average of 4:
            // updateCountAverageSlowLimit = (2 * 2 + (4 - 2)) / 4 = 1.5f
            const int BadUpdateCountTime = 2; // number of bad frame (a bad frame is a frame that has at least 2 updates)
            var maxLastCount = 2 * Math.Min(BadUpdateCountTime, lastUpdateCount.Length);
            updateCountAverageSlowLimit = (float)(maxLastCount + (lastUpdateCount.Length - maxLastCount)) / lastUpdateCount.Length;

            timer.Reset();
            gameTime.Update(totalGameTime, TimeSpan.Zero, false);
            
            //gameTime.FrameCount = 0;



            Init(renderer1, renderer2);
        }
        //public DrawingSurfaceSIS(IRenderer renderer, DeviceManager deviceManager)
        public DrawingSurfaceSIS(Action<GameTime> updateRendererAction, 
            Action<TargetBase> renderRendererAction,
            Action<DeviceManager> initializeRendererAction, 
            Action<Windows.UI.Xaml.UIElement, Windows.UI.Xaml.UIElement> initializeUIRendererAction,
            Action<string> loadAssetUriRendererAction,
            Action unloadRendererAction,
            DeviceManager deviceManager)
        {
            _deviceManager = deviceManager;

            _updateRendererAction = updateRendererAction;
            _renderRendererAction = renderRendererAction;
            _initializeRendererAction = initializeRendererAction;
            _initializeUIRendererAction = initializeUIRendererAction;
            _loadAssetUriRendererAction = loadAssetUriRendererAction;
            _unloadRendererAction = unloadRendererAction;
            
            gameTime = new GameTime();
            totalGameTime = new TimeSpan();
            timer = new TimerTick();
            IsFixedTimeStep = true;
            maximumElapsedTime = TimeSpan.FromMilliseconds(500.0);
            TargetElapsedTime = TimeSpan.FromTicks(10000000 / 60); // target elapsed time is by default 60Hz
            lastUpdateCount = new int[4];
            nextLastUpdateCountIndex = 0;

            // Calculate the updateCountAverageSlowLimit (assuming moving average is >=3 )
            // Example for a moving average of 4:
            // updateCountAverageSlowLimit = (2 * 2 + (4 - 2)) / 4 = 1.5f
            const int BadUpdateCountTime = 2; // number of bad frame (a bad frame is a frame that has at least 2 updates)
            var maxLastCount = 2 * Math.Min(BadUpdateCountTime, lastUpdateCount.Length);
            updateCountAverageSlowLimit = (float)(maxLastCount + (lastUpdateCount.Length - maxLastCount)) / lastUpdateCount.Length;

            timer.Reset();
            //gameTime.Update(totalGameTime, TimeSpan.Zero, false);
            
            //gameTime.FrameCount = 0;

            //this.FrameCountPerRender = 1; //by default every frame results in a dxsurface render
            this.InitializeComponent();

            //_effectRenderer = renderer;
            _hasEffectRenderer = true;
        }