コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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();
                }
            }
        }