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;
            }
        }
        public TracefileFrameViewModel(ISelectionService selectionService, TracefileFrame frame)
        {
            _selectionService = selectionService;
            _frame            = frame;
            _events           = _frame.Events.Select(x => new TracefileEventViewModel(x)).ToList();

            _selectionService.SelectedEventChanged += OnSelectedEventChanged;
        }
Exemple #3
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);
 }