[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]


NAME
    RethinkDisplay -- Grand manipulation of the entire Intuition display.

SYNOPSIS
    RethinkDisplay()

    VOID RethinkDisplay( VOID );

FUNCTION
    This function performs the Intuition global display reconstruction.
    This includes rethinking about all of the  ViewPorts and their
    relationship to one another and reconstructing the entire display
    based on the results of this rethinking.

    Specifically, and omitting many internal details, the operation
    consists of this:

        Determine which ViewPorts are invisible and set their VP_HIDE
        viewport mode flag. vp_hide flags are also set for screens that
        may not be simultaneously displayed with the frontmost (V36).

        If a change to a viewport height, or changing interlace or
        monitor scan rates require, makevport() is called for specific
        screen viewports.  After this phase, the intermediate Copper lists
        for each screen's viewport are correctly set up.

        mrgcop() and loadview() are then called to get these copper lists
        in action, thus establishing the new state of the Intuition
        display.

    You may perform a makescreen() on your custom screen before calling
    this routine.  The results will be incorporated in the new display, but
    changing the INTERLACE viewport mode for one screens must be reflected
    in the Intuition view, which is left to intuition.

    WARNING:  This routine can take several milliseconds to run, so
    do not use it lightly.

    New for V36: This routine is substantially changed to support
    new screen modes.  In particular, if screen rearrangement has
    caused a change in interlace mode or scan rate, this routine
    will remake the copper lists for each screen's viewport.

INPUTS
    None

RESULT
    None

BUGS
    In V35 and earlier, an interlaced screen coming to the front
    may not trigger a complete remake as required when the global
    interlace state is changed.  In some cases, this can be compensated
    for by setting the viewport DHeight field to 0 for hidden screens.

SEE ALSO
    remakedisplay(), graphics.library/makevport(),
    graphics.library/mrgcop(), graphics.library/loadview(), makescreen()