# @(#)29	1.13.5.2  src/gos/2d/README, x11, gos720 7/14/11 20:04:59
# IBM_PROLOG_BEGIN_TAG 
# This is an automatically generated prolog. 
#  
# gos720 src/gos/2d/README 1.13.5.2 
#  
# Licensed Materials - Property of IBM 
#  
# COPYRIGHT International Business Machines Corp. 1990,2011 
# All Rights Reserved 
#  
# US Government Users Restricted Rights - Use, duplication or 
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
#  
# IBM_PROLOG_END_TAG 
-------------------------------------------------------------------------------
AIXwindows Runtime Environment
-------------------------------------------------------------------------------

Table of Contents:

A. References
B. X11R5/X11R6.1/X11R7.1 Compatibility Issues
C. X Server
D. New Xorg Xserver
E. X Clients
F  ISO9241 Fonts
G. Motif 2.1 vs Motif 1.2
H. 64bit Motif 2.1
I. X11 64bit
J. X11R5, X11R6 and X11R7.1 on same system.
K. Default fontserver port
L. fontserver command is now xfs
M. Support for Wheel Mouse
N. Screen Magnifier Extension (-sme)
O. Glyph subsets in CDE

-------------------------------------------------------------------------------

A. References

 o  For additional information regarding Shared Memory Transport (SMT),
    please read /usr/lpp/X11/README.SMT.

 o  Information on building the sample clients can be found in the file
    /usr/lpp/X11/Xamples/README.


B. X11R5/X11R6.1/X11R7.1 Compatibility Issues

   AIX 6 contains X Windows libraries, headers and some apps that
   have been updated to X11R7.1.
   The libraries shipped by IBM with XllR7.1 are backward-compatible and
   the client applications, which access these libraries, will work as
   on previous releases of AIX, except as noted below.
   As on earlier releases of AIX, IBM also ships X11R3, X11R4, X11R5
   and X11R6 compatibility installation options for maximum customer
   flexibility. In this way, client applications experience no problems
   with compatibility.

   There are a few noteable differences due to the X11R7.1 updates:

  o  Most of the new X11R7.1 header files now only contain full
     ANSI function prototypes.  This may cause the compiler to find
     problems that were not apparent before.

  o  The file /usr/lpp/X11/defaults/xserverrc, is the script used
     by xinit, xdm, and dtlogin to start the X server.
     This script has been modified so that the default visual 
     will now be 24bit TrueColor instead of 8bit PseudoColor.
     Some old applications may not work in the 24bit TrueColor
     visual.  In this case, the old visual can be restored by
     commenting out the following line in the xserverrc file:
     EXTENSIONS="$EXTENSIONS -cc 4"

   o An updated version of xterm is included in AIX 6.  This version of
     xterm required an update to the xterm terminfo information.  The
     updated terminfo may cause problems with other terminal emualtors
     that expect the older version.  Seperate compatibility terminfo
     definitions (xterm-old and xterm-r6) are provided for use in such
     situtation, and are accessed by setting the TERM environment variable.
     (See section D. X Clients below).
  
   The AIX X server uses the X Consortium release 6 version of X.

   The X server allows the addition of new functionality through
   its extension mechanism.  For each extension, part of the
   extension is loaded into the X server before it can be executed.
   X11R6.1 has modified how this mechanism works in the course of
   improvements to X, and it is this part of the extension
   that must be made compatible with X11R6.1 to execute properly.
   All extensions supplied by IBM are compatible and will execute
   properly. In some circumstances, including the following,
   a customer may have an extension that will not work
   with X11R6.1:

      o  A customer has a sample extension downloaded from the
         X Consortium ftp site
      o  A customer develops his own extension
      o  A customer uses a third party extension

   In these cases the extension will need to be made compatible with
   X11R6.1 before it will execute properly.  Customer-developed
   extensions and sample X consortium extensions need to be
   recompiled with the X11R6.1 environment. For third party extensions,
   the customer should contact the vendor for a X11R6.1 compatible
   update.

   Customers using non-IBM display adapters may also be using
   vendor-supplied software specific to those devices, which uses
   X11R6.1 Server capabilities.  If so, this software must be made
   compatible with X11R6.1 to operate properly.  The customer should
   contact the particular vendor of the display adapter for this
   software.

   A porting guide is available on "The Developers Connection" CD to 
   assist customers and vendors developing adapters or extensions for 
   AIX.


C. X Server

 o  The X server default backing store is off.  To turn on backing store,
    start X (or xinit) with the -bs option.

 o  When the X server goes from a state of having some connections to
    having no connections (i.e. the last connected client exits), it
    will reset itself to the initial state.  For example, if you run the
    xhost command when only the X server is running (no other clients
    such as mwm or aixterm), the actions performed by the xhost command
    will be lost.  After xhost exits, the X server will reset since
    xhost was the only and last client.

 o  X Input Extension
    The LPFK device does not support button release class (this is a
    hardware restriction).

 o  If you need both libXi.a (X Input Extension) and libXext.a for your
    application, be sure to link libXi.a before libXext.a.

 o  Machines that have planar graphics capabilities present a special problem
    since if there are other graphics adapters in the system, it is likely
    that the planar graphics subsystem is not being used (i.e. no display is
    connected). The default display refers to which graphics display is being
    used for LFT login. Since there can be in any given system multiple graphics
    adapters and displays and only one mouse and keyboard typically, the default
    display provides the indication to the operating system which graphics
    adapter and display receive the login screen. The following information
    describes changes made to handle this scenario:

    1) If the default display is set to the planar graphics subsystem, then
       when the X Server is started, all graphics adapters in the system
       including the planar graphics subsystem are used. The reasoning here
       is that if the planar graphics subsystem is the default display, then
       the user must have a display attached to it.

    2) If the default display is not set to the planar graphics subsystem,
       then when the X Server is started, all graphics adapters in the system
       except the planar graphics subsystem are used. The reasoning here is
       that if the planar graphics subsystem is not the default display, then
       the user probably does not have a display attached to it.

       If the user wishes to override this (would typically be used in a
       situation where the user has a display attached to the planar graphics
       subsystem but the planar graphics subsystem is not the default display),
       there is a mechanism to allow this. The standard AIX X Server -P?????
       flag can be used to force the planar graphics subsystem to be used. See
       the X Server startup flags for more information regarding the use of
       the -P????? flag.

       The following short example illustrates a typical example of its use:

       # lsdisp

       DEV_NAME  SLOT  BUS  ADPT_NAME  DESCRIPTION
       ========  ====  ===  =========  ===========
       iga0      00    pci  E15        E15 Graphics Adapter
       bbl0      01    pci  GXT150P    GXT150P Graphics Adapter

          Default display = bbl0


       # xinit -- -P11 iga0 -P12 bbl0

       This will start X multihead on both displays (planar graphics subsystem
       and the GXT150P) where the planar graphics subsystem display will be on
       the left and the GXT150P will be on the right in the standard X server
       multihead configuration. Note that the iga0 adapter in this case is the
       planar graphics subsystem.

 o  X Stereo Flag

    -stereo[:display name or display number]

    Configures graphics adapter for optimum stereo support
    for the screen specified by :display.

    Supported screens will configure the adapter to provide the best available
    support for stereo.  This may decrease other resources such as texture 
    memory.  The actual amount of memory affected is device dependent, and may 
    be influenced by other factors, such as screen resolution or default pixel
    depth.

    The :display parameter is optional, but useful when using the multihead 
    option.  The :display parameter is the name of the display as shown in the
    lsdisp command. 

    # lsdisp

    DEV_NAME  SLOT  BUS  ADPT_NAME  DESCRIPTION 
    ========  ====  ===  =========  =========== 
    son0      60    pci  GXT6000P   Graphics Adapter                 
    sonl0     58    pci  GXT4000P   Graphics Adapter

       Default display = son0

    # xinit -- -stereo:son0

    If no display number or name is supplied, the "-stereo" 
    flag pertains to all supported screens.

    # xinit -- -stereo

    Non supported screens will ignore the "-stereo" flag. 

 o  Xinerama Flag

    VLS (Virtual Large Screen) is also referred to as Panoramix hence the
    extension xinerama. It allows users to treat all heads in a multihead
    environment as a large screen. VLS allows users the capability to
    move windows across screens. Also, the user can resize a window to
    span screens.
 
    VLS can be started on the command line with:
        xinit -- +xinerama
    or by editing the EXTENSIONS variable in the xserverrc file found in
    /usr/lpp/X11/defaults/xserverrc
        EXTENSIONS="+xinerama"
 
    You must also set the resolutions on each adapter to equal values.
    Note that VLS only supports 2D applications and so abx dbe and GLX
    extensions are not supported. If VLS is started with these extensions
    they will be automatically disabled.  The screen orientation cannot
    be manually configured but rather is determined by the slot numbers of
    the graphics adapters.
  
    To set the resolution, you must also set the terminal type. To do this,
    execute smitty dev, choose Graphics Display and then Select the Display
    Type. From the list adapters in the Available state, choose the adapter
    whose resolution you are trying to change and hit enter. Highlight
    Select the Display Type and hit F4 for a list. Choose the type of
    monitor if possible. Else, choose Other_VESA. Else, the only option is
    default.  Next, return to the previous screen with F3. Choose Select
    the Display Resolution and Refresh Rate and hit F4 for a list. Remember
    that it is imperative that each monitor is set to the same resolution.
 
    Due to the way that VLS is implemented, output cannot be directed to a
    particular screen such as :0.1 etc. VLS only creates one x server, :0.

D.  New Xorg Xserver

    The Xorg Xserver is now included in this release of AIX as an alternate
    to X (the older X11R6.1 Xserver).

    o The AIX version of Xorg currently only ships with the mga video
      driver that supports the GXT135P, GXT145 and GXT145LP graphics
      adapters.  This version of Xorg does not currently support any other
      graphics adapters.

    o The AIX version of Xorg does not currently support OpenGL or any other
      3D APIs.

    o An easy way to start using Xorg is to modify the xserverrc script
      located in /usr/lpp/X11/defaults.  It is suggested to save a
      copy of the original xserverrc file so that it can be easily restored
      when switching back to X.

      A suggested xserverrc file to start Xorg could look like this:
#!/usr/bin/ksh

exec /usr/lpp/X11/bin/Xorg -depth 24 "$@"

    o Generating an xorg.conf file (optional).
      To do this, make sure no instances of X or Xorg are currently running.
      Then run this command:
      /usr/bin/X11/Xorg -configure
      This will create a file called xorg.conf.new in your $HOME directory.
      Copy this file to /etc/X11/xorg.conf .

    o Xorg creates a log file at /var/log/Xorg.<DISPLAYNUM>.log, where
      <DISPLAYNUM> is the display number used by that instance of Xorg
      (typically "0").

    o Other limitations

        - IBM GXT135P GXT145 GXT145LP
          The Xorg server does not support a digital connection to the display. 
          This means the VGA cable from the display needs to be connected to
          the card.  A VGA to DVI connector can be used to connect the VGA
          cable to the DVI port on the graphics adapter.

          The /usr/bin/X11/X server supports a digital connection but the
          graphics adapter is not capable of displaying resolutions greater
          than 1280x1024 with a digital connection.  When using a display that
          supports a resolution greater than 1280x1024, use a VGA display cable.
          The DVI port on the adapter can be used with a VGA to DVI connector.

        - IBM GXT145 GXT145LP
          The Low Functional Terminal (LFT), also known as the green screen,
          supports an analog connection on both display ports.  The digital 
          connection only works on port A.

E. X Clients

 o  New xterm.
    The new version of xterm requires a new terminfo file that does not
    work well with older versions of xterm (on AIX 5L).  However, terminfo
    compatibility files are provided for use by older versions of xterm.
    You can access these by setting the TERM environment variable to
    "xterm-r6" or "xterm-old".
    For example if using the Korn Shell, you would run one of these commands
    after you telnet into an AIX 6.1 system from an xterm on an AIX 5L system:
    export TERM=xterm-r6
    or
    export TERM=xterm-old

    Either of these commands will start using a terminfo file designed to
    support the older (X11R6) version of xterm.  The xterm-r6 and xterm-old
    files are identical.
    
 o  New xdm.
    The new X11R7.1 version of xdm only supports PAM authentication.
    The new xdm also ships with a more secure default configuration that
    only allows local logins.  The system administrator will have to
    enable remote logins if that is desired.

 o  The XAsyncInput API in libX11.a is not supported in the X11R6 library.  
    If this function is called, a warning message will be printed.  However,
    the old X11R5 library with this function is included and can be accessed
    by setting the LIBPATH environment variable to /usr/lpp/X11/lib/R5.  The
    X11R5 libraries are shipped in the fileset X11.compat.lib.X11R5.

 o  The X11R5 and X11R6 X11 and Xt library APIs more restrictive than they were
    in X11R4.  The more restrictive APIs may cause some X11R4 applications
    to work improperly.  For these applications, the the AIXwindows 1.2 
    libraries are maintained in "/usr/lpp/X11/lib".  An application may use
    the AIXwindows 1.2 libraries by setting the $LIBPATH environment variable
    to  "/usr/lpp/X11/lib" and then executing the application.  These 
    compatibility libraries are not installed by default.
    You will need to install the X11.compat.lib.X11R4 and
    X11.compat.lib.Motif114 options.

 o  The xhost command does not support using a network independent
    netname (e.g. "unix.uid@domainname"), or a local user name with a
    trailing at-sign (e.g. "joe@") as arguments for addition or deletion
    from the server access control list.

 o  The default xinit(in /usr/bin/X11) is the X Consortium version of xinit.
    It behaves differently than the xinit in releases prior to X11R5.
    In those releases, xinit starts the X server and an xinitrc
    file.  xinit would wait until both of these were done before
    exiting.  That is, xinitrc could exit without killing the server.
    With the X Consortium version, xinit will by default start the X server and
    an xinitrc file.  But, xinit will exit when EITHER xinitrc or the
    server exits.  So, if xinitrc exits, the server will be killed.

    Also, as noted above in section B, the /usr/lpp/X11/defaults/xserverrc
    script has been updated to start the X server using a 24bit TrueColor
    visual.

 o  Aixterm might take a long time to start because it has to use fonts
    that match the codeset it is using.  If fonts are not specified in the
    defaults or on the command line, aixterm has to do XListFonts()
    requests to find some that it can use.  These XListFonts() calls can bring
    a slow server to a crawl.  If you find that aixterm is taking a long time
    to start (like on a non-AIX server that has a lot of fonts but not the types
    aixterm is looking for) try telling it what fonts to use:

           aixterm -fn fixed -fb fixed -fi fixed -fs fixed -rfn fixed \
           -rfb fixed -rfi fixed -rfs fixed
    (regular and reduced normal, bold, italic, special_graphics fonts)

    Note that you may not be able to display some characters if the font
    does not match the codeset (ascii should be ok).

 o  Limitations of fontutil
    1. The environment variable "LANG" must be en_US.
    2. For SBCS font files, input and output file formats
       must be the same.
    3. For SBCS font files, bdf and xgsl formats cannot be handled.
    4. For DBCS font files, fontutil is available only for
       V3.1-based Kanji font files.


F. ISO9241 Fonts

   Additional AIXwindows fonts are being shipped.  These fonts have been
   designed to comply with the ISO9241, part 3 standard when displayed on a
   monitor with the appropriate characteristics. The fontnames for these
   additional fonts are:

       Ergo11,  Ergo11.iso1,  Ergo11.iso7,  Ergo11.iso9
       Ergo15,  Ergo15.iso1,  Ergo15.iso7,  Ergo15.iso9
       ErgoB15, ErgoB15.iso1, ErgoB15.iso7, ErgoB15.iso9
       ErgoI15, ErgoI15.iso1, ErgoI15.iso7, ErgoI15.iso9
       Ergo17,  Ergo17.iso1,  Ergo17.iso7,  Ergo17.iso9
       Ergo22,  Ergo22.iso1,  Ergo22.iso7,  Ergo22.iso9


G.  Motif 2.1 vs Motif 1.2

   The 1.2 version of Motif is shipping as
   the default runtime environment.  Any existing Motif 1.2 applications
   will continue to load Motif 1.2 (same version as shipped in AIX 4.1.5/4.2.1).
   However, Motif 2.1 is the default compile time library.
   So, if you recompile an application, it will link to the 2.1 version of 
   the Motif libraries (libXm.a, libMrm.a, libUil.a).

   This duality is achieved by shipping library files with multiple objects.
   For example: libXm.a ships with (shr4.o, shr_32.o), which are both
   32bit objects.  shr4.o is the Motif 1.2 object, and shr_32.o is the
   Motif 2.1 object.  Any applications which were previously compiled
   against the shr4.o shared object, will continue to load that object
   at runtime.  Therefore, all Motif applications compiled on earlier versions
   of AIX V4 will continue to load Motif 1.2 at runtime.

   The shr4.o in libXm.a is LOADONLY, which means, at
   compile time, the linker when looking for "-lXm" will find the
   libXm.a file, skip shr4.o because it is LOADONLY, and link to the
   shr_32.o.  Therefore, at runtime the executable will load the
   shr_32.o and will be using Motif 2.1.

   Here is an example of a Motif 1.2 executable
        (execute the following dump command)

   'dump -H /usr/bin/X11/mwm'
      Notice that the *Import File String* section has "shr4.o" as the
      MEMBER of libXm.a.  This means that at runtime mwm will link to
      "shr4.o" i.e. Motif 1.2.

   Here is an example of a Motif 2.1 executable
    (this example is installed with X11.samples.apps.motifdemos fileset):

   cd /usr/samples/Motif2.1/programs/earth
     (If the samples are not already built do:)
   xmkmf
   make
   dump -H ./earth
      You see in the *Import File Strings* section that the MEMBER object for
      libXm.a is (shr_32.o).  This client program "earth"
      will load shr_32.o from the libXm.a that is found in its LIBPATH, which
      is Motif 2.1.

   Using the "dump -H" command allows you to determine
   whether an executable will be using Motif 1.2(shr4.o) or Motif 2.1(shr_32.o).
   Remember, all existing binaries from previous versions of AIX were
   all linked to Motif 1.2(shr4.o), so they will still load Motif1.2(shr4.o).

   If you have client applications that must be compiled against Motif 1.2,
   a compatiblity option is provided.  You will have
   to install X11.compat.adt.Motif12 (AIXwindows Motif 1.2 Compatibility
   Development Toolkit).  This X11.compat fileset installs all of
   the Motif 1.2 include files as well as "Xm12.imp" and
   "Mrm12.imp".  These files can be used to compile your application so that
   it will load from the Motif 1.2 (shr4.o) member of libXm.a.

   In order to use these files, the compile command should look like this:

     cc -o testapp testapp.c -I/usr/include/Motif1.2 \
        /usr/lpp/X11/lib/Xm12.imp   \
        /usr/lpp/X11/lib/Mrm12.imp  \
        -lXt -lX11

   Notice that you do not link to "-lXm" or "-lMrm". These "imp" files are
   used at compile time in place of the "-lXm" "-lMrm" flags.  These
   "imp" files tell the compiler to look for the symbols listed
   in the "imp" file in the "shr4.o" member of the library.


H. Motif 2.1 - 64-bit technology

   The 64-bit versions of the Motif 2.1 libXm.a, libUil.a and libMrm.a
   are shipping.

   Both the 32-bit object and 64-bit object ship in the same archive library.
   For example, libXm.a has a shr_32.o, and a shr_64.o.  If you try and run
   a 64-bit executable, the loader will automatically load the 64-bit object,
   and 32-bit executables will use the 32-bit object.  Note that only
   Motif 2.1 is 64-bit enabled.  The Motif 1.2 libraries shipped in
   the X11.compat.adt.Motif12 are 32-bit only.


I. X11  - 64bit technology

   When running 64-bit binaries, the following message may be
   displayed:

   "Warning: missing iconv converter........."

   64-bit input methods loadable modules are shipped.


J. X11R5, X11R6 and X11R7.1 on same system.

   X11R7.1 is considered binary compatible to X11R5 and X11R6.  Therefore, any
   applications that used to be running on X11R5/X11R6 should run on
   X11R7.1 with no problems.

   For existing applications which do not run on the X11R71. libraries,
   the X11R6 Xlibs are shipped in the fileset:
       AIXwindows X11R6 Compatibility Libraries (X11.compat.lib.X11R6).
   In that fileset you will find the /usr/lpp/X11/lib/R6 directory which
   contains all the R6 libraries required for the system.

   The X11 toolkit specifically checks to make sure you are not
   running against X11R5 and X11R6 in the same application, by checking
   the XtVersion at runtime.  The following error is generated when you try to
   to run an applications which is linked to Motif1.2, which was built
   using X11R7.1, and an libXt.a which was built using X11R6.

     Warning: Widget class VendorShell version mismatch (recompilation needed):
              widget 11007 vs. intrinsics 11006.

   Since the Motif1.2 (shr4.o) object shipping in libXm.a is compiled
   against X11R7.1, a version of Motif1.2 that was compiled against X11R6
   is also shipping, so that anyone needing to use the X11R6 libraries, would
   also have a Motif1.2 library to run against.  This X11R6 Motif 1.2 is found
   in /usr/lpp/X11/lib/R6/libXm.a.


K. Setting the fontserver default port

   The default fontserver port is no longer over-ridden to be 7500.  
   For customers that want to restore this old default, edit the file:
         /usr/lpp/X11/lib/X11/fs/config
   and add the line PORT=7500 to the file.

   The standard fontserver port of 7100 is the recommended port.

L. The fontserver command name is now xfs


M. Support for Wheel Mouse

   Wheel Mouse support has been added to the Xserver and libXt.a on AIX, and
   can be used by many applications.

   The basic interfaces to the wheel mouse support are:

   o New libXt.a command line flags.
     -mouseext  - Turns wheel mouse support on
     +mouseext  - Turns wheel mouse support off (this is the default)

   o New libXt.a resource
     mouseExtenstion: True/False  - Turns wheel mouse support on/off
                                    (default is off)

   o New libXt.a Translation events
     <MouseExt1>
     <MouseExt2>

   Using these interfaces, you can create or modify your resource file(s)
   to enable many applications to use the wheel mouse.  Resources are typically
   added to the file $HOME/.Xdefaults .

   A sample file containing resources to enable several applications can be
   found at /usr/lpp/X11/defaults/Xdefaults.wheelmouse.  You can copy (or
   append) this file to $HOME/.Xdefaults .
   
   When running under CDE, after you create or modify your $HOME/.Xdefaults
   file, you will need to logout and log back in, or just run this command:
   /usr/bin/X11/xrdb -merge $HOME/.Xdefaults

   It is possible that the names of the command line flags and other names
   could change as we work to get this support adopted by other X-Windows
   platforms.

   Because of the possibility that this could affect some programs in an
   unforseen way, wheel mouse support is turned off by default.

   Older systems may not be able to support the wheel mouse, as the older
   device drivers for these mice have not been updated.

N. Screen Magnifier Extension (-sme)

   The -sme option starts the X Server with the Virtual Frame Buffer(VFB)
   Extension and the default graphics adapter simultaneously. The VFB display
   will be the primary screen. Since the -sme option uses VFB Extension,
   VFB must be installed.

   The -sme option is not compatible with +xinerma option.

O. Glyph subsets in CDE

   If even one glyph in a font extends much higher or lower than the others, 
   the font metrics are affected such that a paragraph of text will appear to 
   have excessive white space between each line.

   To address this issue, the "-dt interface user-*" and 
   "-dt interface system-*" font aliases used by CDE in Unicode locales will 
   by default point to fonts containing a reduced set of glyphs.  This 
   reduced set does not contain the large glyphs causing increased line height.

   To override this default and force the use of fonts containing the complete
   set of glyphs, add /usr/lib/X11/fonts/TrueType/complete to the front of
   your font path, so that the "-dt*" font aliases in that directory are 
   found before the ones in /usr/lib/X11/fonts/TrueType.

   For example, if a user selects the EN_US locale at CDE login, but still 
   needs to be able to display Indic characters, they can run this command:

      xset +fp /usr/lib/X11/fonts/TrueType/complete

   Note that an alternative would be for that user to have actually selected
   the EN_IN locale at CDE login instead of EN_US.