internal void DrawTiming() { // This probably means an empty step (breakpoint) if (_state.PrevTickCount == _state.CurrentLineTickCount) { return; } int beginX = (int)(pixelsPerTick * _state.PrevTickCount); int endX = (int)(pixelsPerTick * _state.CurrentLineTickCount); if (beginX >= 256 || endX >= 256) { return; } if ((_state.CurrentLine == 0) && ((endX <= beginX) || firstRun)) { //DisplayFunctions.DrawTransparency(disDef, displayTimingBmpData, 0, 0, 256, 154); DrawFuncs.DrawRectangle(_disDef, _debugInternalTargets[(int)DebugTargets.DisplayTiming], _disDef.TimingPixelCountX, 0, 0, _disDef.TimingPixelCountX, _disDef.TimingPixelCountY, 0xFF000000, true); } byte mode = (byte)_state.DisplayMode; uint color = 0xFFFFFF00; if (mode == 1) { color = 0xFFFF0000; } if (mode == 2) { color = 0xFF00FF00; } if (mode == 3) { color = 0xFF0000FF; } int rowIndex = _state.CurrentLine * _disDef.TimingPixelCountX; for (int i = beginX; i < endX; ++i) { _debugInternalTargets[(int)DebugTargets.DisplayTiming][rowIndex + i] = color; } }
internal void EndFrame() { if (_state.Enabled) { if (_updateDebugTargets[(int)DebugTargets.Background]) { DrawFuncs.DrawRectangle(_disDef, _debugInternalTargets[(int)DebugTargets.Background], _disDef.FramePixelCountX, _state.SCX, _state.SCY, _disDef.ScreenPixelCountX, _disDef.ScreenPixelCountY, _disDef.RectangleColor); } if (_updateDebugTargets[(int)DebugTargets.Tiles]) { DrawTiles(); } } }