Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Coordinating Multiple Graphical User Interfaces Video Access

IP.com Disclosure Number: IPCOM000117674D
Original Publication Date: 1996-May-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 4 page(s) / 112K

Publishing Venue

IBM

Related People

Olive, J: AUTHOR [+4]

Abstract

Disclosed is a method for coordinating the access of multiple independent Graphical User Interfaces (GUIs) for updating the desktop of a computer system. In OS/2* for the PowerPC*, the component performing this function is called SMAN, for Seamless Manager.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Coordinating Multiple Graphical User Interfaces Video Access

      Disclosed is a method for coordinating the access of multiple
independent Graphical User Interfaces (GUIs) for updating the desktop
of a computer system.  In OS/2* for the PowerPC*, the component
performing this function is called SMAN, for Seamless Manager.

      The Figure is a block diagram of the SMAN interface.  Messages
are sent to SMAN to enable or disable video access for a particular
GUI.  If a GUI in a disabled state attempts to draw, a return code
from SMAN indicates that the area of drawing of the GUI should be
accumulated.  If a GUI which has previously been disabled tries to
draw, a return code indicates that drawing is now enabled, and that
any accumulated area should be redrawn.  When video access for a GUI
is enabled, a return structure indicates if the GUI has just become
enabled, so that any accumulated area can be redrawn.  SMAN uses the
services of Video Manager (VMAN) to request semaphores and to do
bitblit and line drawing.

      SMAN exports the following APIs (Application Program
Interfaces) -- VMI_CMD_REGISTER, VMI_CMD_ENABLE, VMI_CMD_BITBLT, and
VMI_CMD_LINE -- to coordinate accesses and to determine the status of
the desktop from the point of view of each GUI.  SMAN also uses and
manages a linked list to keep track of the number and status of all
GUIs in the system.  The linked list, which is called ENABLELIST,
includes one link for each GUI, with each link containing the
following information:
     typedef struct _ENABLELIST {
       LONG   lCOUNT;
       ULONG  ulID;
       struct _ENABLELIST *next;
    }ENABLELIST;
    typedef ENABLELIST *PENABLELIST;

      The VMI_CMD_REGISTER API is used when a GUI enters or leaves
the desktop.  When SMAN receives VMI_CMD_REGISTER, it requests a
semaphore from VMAN and then calls SMIRegister with the following
format:
        rc = SMIRegister(cid, pInput, pOutput);

The pInput structure contains the following information:
     typedef struct _REGISTERIN {
       ULONG ulLength;
       ULONG ulFlags;
       ULONG ulID;
    } REGISTERIN;
    typedef REGISTERIN *PREGISTERIN;

      The ulLength is the length of this structure.  The ulFlag is
indicated if a new GUI is being registered or if an
already-registered GUI is being deregistered, by means of
EID_REGISTER and EID_DEREGISTER flags, respectively.  When a new GUI
is registered, a new link is added to the linked list, a new ulID is
assigned to the GUI, and, in the linked list, the variable lCount is
initialized to zero.  When a GUI is deregistered, the link associated
with the GUI is removed from the linked list.  If no error occurs,
RC_SUCCESS is returned from this command.  If storage is not
allocated for a new link in the...