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); }
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; } }