Esempio n. 1
0
		public Replayer(TracefileFrame frame, TracefileEvent lastEvent, 
			ISwapChainPresenter swapChainPresenter, 
            int? renderTargetViewID = null, int? renderTargetArrayIndex = null,
            int? pixelX = null, int? pixelY = null)
		{
			_frame = frame;
			_lastEvent = lastEvent;
		    _swapChainPresenter = swapChainPresenter;
		    _device = new Device();
		    _deviceContext = _device.ImmediateContext;
            _logger = new TracefileBuilder(_device, 
                renderTargetViewID, renderTargetArrayIndex, 
                pixelX, pixelY);
		}
Esempio n. 2
0
        private void LogOperation(OperationType type, params object[] methodArguments)
        {
            if (!_writtenBeginFrame)
            {
                _tracefile.Frames.Add(_currentFrame = new TracefileFrame
                {
                    Number = ++_frameNumber
                });
                _writtenBeginFrame = true;
            }

            _currentFrame.Events.Add(new TracefileEvent
            {
                Number = ++_operationNumber,
                OperationType = type,
                Arguments = new TracefileEventArgumentCollection(methodArguments)
            });

            if (type == OperationType.DeviceContextPresent)
            {
                _currentFrame = null;
                _writtenBeginFrame = false;
                _operationNumber = 0;
            }
        }