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

Under pre-V36 versions of the operating system, a method commonly used
to open a screen according to user preference was to "clone" the
Workbench screen (to create a screen with the same resolution and view
mode as the Workbench screen).  Normally, applications called the
Intuition function GetScreenData() to learn the Workbench screen's
resolution and display mode.

Programmers should no longer rely on GetScreenData() to return the
actual resolution and display mode under release 2.0.  When asked
about the Workbench screen, the V2.0 GetScreenData() returns the video
mode of a Hires screen, or, if the screen is interlaced, a Hires
interlaced screen.  The dimensions GetScreenData() returns will be the
lesser of either the OSCAN_TEXT dimensions or the actual Workbench
screen dimensions.  This change to GetScreenData() prevents some
programs developed for 1.3 from opening full size screens and windows
under 2.0.  The change had to be made to avoid confusing programs that
couldn't handle the higher resolutions and new display modes that are
available in release 2.0.  For example, when GetScreenData() is called
on a system using a SuperHires interlaced Workbench screen, it returns
the dimensions and view mode of a Hires interlaced screen.  If
GetScreenData() had supplied the actual resolution instead, a program
that assumed the resolution could not be greater than 640x400 could be
severely crippled.  The exception to this rule is a system running in
one of the A2024 (or Hedley Hires) modes.  To remain compatible with
the V35 version of GetScreenData(), the release 2.0 version returns
the correct dimensions of a screen in A2024 mode.

Another method previously used to get information about the Workbench
screen was to look at the GfxBase->NormalDisplayRows and
GfxBase->NormalDisplayColumns fields.  As with GetScreenData(), these
fields contain the dimensions of a text overscan Hires (or Hires
interlace) screen.  Obviously, these fields should no longer be used
to obtain the actual dimensions of the Workbench screen.

To clone the Workbench screen under 2.0, lock the Workbench screen,
get the screen's display mode ID, and get the necessary display
information.  The article "An Introduction to V36 Screens and Windows"
from the September/October 1990 issue of Amiga Mail contains the
example CloneWB.c which illustrates cloning the Workbench screen
under release 2.0.  Any application that wants to clone the Workbench
screen should be prepared to handle any type of screen, because the
user can change the Workbench screen to any type of screen they
desire.