コード例 #1
0
        internal void StartFrame()
        {
            _state.CurrentLine = 0;
            _state.CurrentWY   = _state.WY;

            if (!_state.Enabled)
            {
                return;
            }

            // WINDOW TRANSPARENCY
            if (_updateDebugTargets[(int)DebugTargets.Window])
            {
                DrawFuncs.DrawTransparency(_disDef, _debugInternalTargets[(int)DebugTargets.Window],
                                           _disDef.ScreenPixelCountX,
                                           0, 0,
                                           _disDef.ScreenPixelCountX, _disDef.ScreenPixelCountY);
            }

            // SPRITES TRANSPARENCY
            if (_updateDebugTargets[(int)DebugTargets.SpriteLayer])
            {
                DrawFuncs.DrawTransparency(_disDef, _debugInternalTargets[(int)DebugTargets.SpriteLayer],
                                           _disDef.ScreenPixelCountX,
                                           0, 0,
                                           _disDef.ScreenPixelCountX, _disDef.ScreenPixelCountY);
            }
        }
コード例 #2
0
        internal void DrawSprite(uint[] spriteData, int spriteCode, int pX, int pY)
        {
            DrawFuncs.DrawTransparency(_disDef, spriteData, 8, 0, 0, 8, 16);

            if (_state.LCDCBits[2])
            {
                spriteCode = spriteCode & 0xFE; // We remove the last bit
            }

            // We draw the top part
            byte[] pixels = DisFuncs.GetTileData(_disDef, _memory, 0x8000, spriteCode, _state.LCDCBits[2]);
            DrawFuncs.DrawTile(_pixelLookupTable,
                               _disDef, spriteData, _tempPixelBuffer,
                               8, pixels, pX, pY,
                               _disDef.ScreenPixelCountX, _disDef.ScreenPixelCountY);
        }