void BumpPixel()
    {
        // Bump the current X position
        ++curx;

        // If we are at the end of a scan line, set curx back to the beginning
        // If we are interlaced, bump the cury to the appropriate spot,
        // otherwise, just increment it.
        if (curx == Width)
        {
            curx = 0;

            if (! Interlace)
            {
                ++cury;
            }
            else
            {
                switch (Pass)
                {
                    case 0:
                        cury += 8;
                        if (cury >= Height)
                        {
                            ++Pass;
                            cury = 4;
                        }
                        break;

                    case 1:
                        cury += 8;
                        if (cury >= Height)
                        {
                            ++Pass;
                            cury = 2;
                        }
                        break;

                    case 2:
                        cury += 4;
                        if (cury >= Height)
                        {
                            ++Pass;
                            cury = 1;
                        }
                        break;

                    case 3:
                        cury += 2;
                        break;
                }
            }
        }
    }