Managing DECwindows Motif for OpenVMS Systems


Previous Contents Index

3.2.2 Device Setup

During startup, the DECwindows startup procedures attempt to identify and activate device-specific server components to manage all graphics devices of which the system is aware. You can use the symbols and logicals in this section to influence how many and which specific devices are used by the display server.

Additionally, there is some device information that the server cannot obtain from a device, or that you may want to override about the display device. For example, you may need to provide information about a special type of monitor with a nonstandard size or limited color capabilities. <alpha_PS_section> <alpha_br_section>

On AXP systems, DECW$SERVER_PRIVATE_SETUP.COM contains a section for modifying device configuration parameters. The symbols DECW$PRIMARY_DEVICE and DECW$MULTI_HEAD should be defined in this section.

DECW$MULTI_HEAD (AXP Only)

On AXP systems, this parameter configures the system for multihead support. The DECW$MULTI_HEAD symbol is already set in the SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.TEMPLATE file.

To activate this parameter, copy the SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.TEMPLATE to DECW$PRIVATE_SERVER_SETUP.COM.

DECW$PRIMARY_DEVICE (AXP Only)

On AXP systems, the server uses this parameter to check for a device name by activating a specific DECW$DEVICE_xx.COM procedure, where xx is the string supplied for the symbol. This parameter is ignored if DECW$MULTI_HEAD is set to True. The following symbol definition assigns GXA0 as the primary device:


Example


$ DECW$PRIMARY_DEVICE == "GXA0"<endsection>
      

DECW$DEVICE

This parameter allows you to specify explicitly the order and identify those graphics devices that are used in a multihead configuration.

Note

On VAX systems, this parameter is the only method to set up multiple monitors for multihead support.

The following symbol definition shows how to specify a list of graphics devices to be controlled by one server, one mouse, and one keyboard:


Example


$ DECW$DEVICE == "GAA0,GAB0"
      

DECW$DEFAULT_VISUAL_CLASS

This parameter overrides the default visual class for each head on a mutihead system. The visual classes, which are numeric and match the definitions in DECW$INCLUDE:X.h, are as follows:

0 = StaticGray
1 = GrayScale
2 = StaticColor
3 = PseudoColor
4 = TrueColor
5 = DirectColor

The default for a specific device type is dependent on the hardware and is typically PseudoColor for an 8-plane color board, and TrueColor for a 24-plane option. If you have a monochrome display, you can change the default visual class to GrayScale, which causes the system to convert colors to levels of gray. Output for GrayScale is on the green lead. You can assign multiple values to this parameter for each head in a multihead system.

The following symbol definition specifies PseudoColor on head 0, TrueColor on head 1, StaticGray on head 2:


Example


$ DECW$SEVER_DEFAULT_VISUAL_CLASS == "3,4,0"   
      

Note

This parameter is not supported on VMS Version 5.5--2.

DECW$COLOR

This parameter specifies the use of color or grayscale for systems capable of displaying color. Monochrome hardware support uses the default value (False) and ignores any specification of this parameter.

If your system and monitor can display either color or grayscale, set this value to True in DECW$PRIVATE_SERVER_SETUP.COM as follows:


Example


$ DECW$COLOR == "T"   
      

Note

This parameter is not supported on VMS Version 5.5--2.

DECW$BITONAL (VAX Only)
<vax_ps_section> <vax_br_section>

On VAX systems if you have GPX hardware, you can set the bitonal parameter to True in DECW$PRIVATE_SERVER_SETUP.COM. Other hardware configurations automatically set the value to False and ignore any specification of this parameter. The following example sets the bitonal symbol to True for GPX hardware:


Example


$ DECW$BITONAL == "T"<endsection>
      

DECW$MONITOR_DENSITY

The monitor density defines the dots per inch (dpi) value of the monitor so that DECwindows applications can determine the actual width of the screen by using X Library routines.

The default value for the monitor density is the server density. Because few monitors are actually 75 or 100 dpi (the values used for DECW$SERVER_DENSITY with regard to font size), these values cannot be used to calculate accurately the actual width and length of items on the screen. By setting DECW$MONITOR_DENSITY to the actual value, you can obtain correct values for the width and height of the screen using X Library routines.

Use the following method to calculate the actual monitor density:

  1. Determine the pixel width of the screen.
    Generally, the number of pixels is either 1024 or 1280, depending on the graphics adapter on your system. You can use the XDPYINFO utility to obtain the pixel width and height of the current display (see Section 3.7.2).
  2. Measure across the visible portion of the screen (in inches).
  3. Divide the pixel value by the screen value.
    If you have a VRT19 monitor and SPX graphics, make this calculation:


    1280 pixels / 13.5 inches  = 94.81 dpi 
    

By rounding the dpi value to the nearest integer, assign 95 to DECW$MONITOR_DENSITY, as shown in the following example:


Example


$ DECW$MONITOR_DENSITY == "95"
      

Note

Setting different values for the monitor density and the server density can cause display problems with "what-you-see-is-what-you-get" (WYSIWYG) applications because you cannot scale the 75- and 100-dpi fonts to match the actual monitor density.

DECW$MONITOR_DENSITY can be set on a per-monitor basis. The following example shows how to set the monitor densities for a dual-head workstation, where screen 0 is set to 95 dpi and screen 1 is set to 75 dpi:


Example


$ DECW$MONITOR_DENSITY == "95,75"
      

3.2.3 Transport/Connection Setup

The DECwindows transport is the link between DECwindows client applications and the display server. Use the symbols in this section to control the types of available links and the timing characteristics of the link.

DECW$SERVER_TRANSPORTS

You can specify which transports your server monitors for incoming connections. Valid values for DECW$SERVER_TRANSPORTS are "DECNET", "LOCAL", and "TCPIP". If you have another transport, you can also specify its name. For information about alternative methods of transport, see Section 3.6.

The following example shows how to specify DECnet, local, and TCP/IP as the transports you will use:


Example


$ DECW$SERVER_TRANSPORTS == "DECNET,LOCAL,TCPIP"
      

DECW$XPORT_SYNC_TIMEOUT

This parameter defines the transport timeout value (in milliseconds). The default is 30000 milliseconds (30 seconds). If the client does not take action to empty its buffers before the timeout, the server disconnects the client.

The following logical definition extends the timeout value to 60000 milliseconds (1 minute):


Example


$ DEFINE/SYSTEM DECW$XPORT_SYNC_TIMEOUT 60000
      

DECW$SERVER_RETRY_WRITE_TIMEOUT

This parameter defines the number of milliseconds before which the DECwindows server stops attempting transport write requests. The default is 30000 milliseconds (30 seconds).

The following logical definition extends the retry total to 60000 milliseconds (1 minute):


Example


$ DEFINE/SYSTEM DECW$SERVER_RETRY_WRITE_TIMEOUT 60000
      

DECW$SERVER_RETRY_WRITE_INTERVAL

This parameter defines the number of milliseconds between failed transport write-request attempts. The default is 500 milliseconds (one-half second).

The following logical definition causes the DECwindows server to attempt transport write requests at an interval of 250 milliseconds.


Example


$ DEFINE/SYSTEM DECW$SERVER_RETRY_WRITE_INTERVAL 250
      

3.2.4 Font Setup

Displaying text is one of the major tasks of the display server. To display text, the display server is given a font name and a set of characters to be drawn. Usually, the font name corresponds to a particular font file resident on the server system. When trying to match a font name with a font file, the display server searches the font path, which is an ordered list of directories. Each valid font directory contains a font directory file (DECW$FONT_DIRECTORY*.DAT) that lists font file names and corresponding font names. The display server searches each directory file, in order, until it finds a matching font name.

In addition, DECwindows Motif supports font alias files (DECW$FONT_ALIAS*.DAT), which can reside in any valid font directory. These files map one font name to a different font name. After the display server checks the font directory file in a given font directory without finding a match, it will then search the font alias file, if it exists. If it finds a match in the alias file, the translated font name is substituted and the search is restarted from the beginning of the font path.

3.2.4.1 Font Path

As stated in Section 3.2.4, the font path is an ordered list of directories in which font files that are available to the display server reside. The font path is constructed from a number of setup parameters.

The type of available graphics devices may also influence the contents of the font path. The logical name DECW$FONT in the server logical name table contains the font path. The font path is a subset of the following directories:

SYS$COMMON:[SYSFONT.DECW.CURSOR32]
SYS$COMMON:[SYSFONT.DECW.CURSOR16]
SYS$COMMON:[SYSFONT.DECW.100DPI]
SYS$COMMON:[SYSFONT.DECW.75DPI]
SYS$COMMON:[SYSFONT.DECW.COMMON]

<alpha_ps_section> <alpha_br_section>

On AXP systems, the following directories are also included in the font path:

SYS$COMMON:[SYSFONT.DECW.SPEEDO]
SYS$COMMON:[SYSFONT.DECW.TYPE1]

Pointers to font servers can also be added to the end of the font path. For more iformation, see Section 3.4.3.<endsection>

A USER variant of each directory exists in which user-supplied fonts can be added for example, SYS$COMMON:[SYSFONT.DECW.USER_100DPI]. For more information, see Section 3.4.

DECW$SERVER_DENSITY

The server density value is used to determine the font size to use, either 75 or 100 dots per inch (dpi). If you have a 100-dpi monitor, you can have a screen density of 75 or 100 dpi. Fonts intended for 75-dpi monitors that are displayed on 100-dpi monitors may appear small and difficult to read.

The following symbol definition sets the screen density to use 100-dpi fonts.


Example


$ DECW$SERVER_DENSITY == "100"
      

DECW$CURSOR_SIZE (AXP Only)
<alpha_ps_section> <alpha_br_section>

This parameter defines which cursor font directories are included in the font path. It can be set to 16 to include only the 16x16 cursors, or 32 to include both the 32x32 and 16x16 cursor. The larger cursor size resulting from a value of 32 is usually appropriate for a 100-dpi display.


Example


$ DECW$CURSOR_SIZE == "16"<endsection>
      

3.2.5 Font Caching

A font file contains a compressed binary representation of all the glyphs, or characters, within that font. For example, the following VAX font file contains all the information for the glyphs in the Helvetica 12-point font:


DECW$SYSCOMMON:[SYSFONT.DECW.100DPI]HELVETICA12_100DPI.DECW$FONT           

3.2.5.1 VAX Dynamic Font Caching (VAX Only)

<vax_PS_section> <vax_br_section>

The DECwindows Motif VAX display server provides a font manager with dynamic font caching. When a client requests a glyph, the DECwindows server determines whether the requested glyph is in one of the rows in the font cache. If a glyph is found in the font cache, the row containing the glyph is placed in the first row of the font cache, and all other rows are shifted down. This process speeds the response to repeated requests for glyphs.

If a requested glyph is not found in the font cache, the row in which the glyph is stored is retrieved from a font file. The new glyph is placed in the first row of the font cache. Depending on the font cache parameters, another row of glyphs may be removed from the font cache.

For example, if you specify a maximum number of the font cache rows to be 25 and a new row is added to the front of the cache, the server removes the last row from the font cache.

For a detailed description about font mechanics, see VMS DECwindows Guide to Xlib (Release 4) Programming: MIT C Binding.

Use the symbols in this section to modify font caching on VAX systems.

DECW$FM_INIT_NUM_CACHE_ROWS (VAX Only)

On VAX systems, this parameter defines the initial size of the cache, in rows. This value must fall within the minimum and maximum bounds that you define. If this value is outside of this range, the cache size takes on the value of the absolute minimum size of the cache. The default is 20 rows.

The following logical definition establishes the initial size of the font cache as 200 rows:


Example


$ DEFINE/SYSTEM DECW$FM_INIT_NUM_CACHE_ROWS 200
      

DECW$FM_MAX_ROW_CACHE_SIZE (VAX Only)

On VAX systems, this parameter defines the maximum number of rows that can be allocated to the font cache. The default is 300 rows. For large memory systems of 32MB or more, you may want to increase this value. For low memory systems of 12MB or less, you may want to decrease the default value.

The following logical definition increases the maximum number of rows that can be allocated to the font cache:


Example


$ DEFINE/SYSTEM DECW$FM_MAX_ROW_CACHE_SIZE 500
      

DECW$FM_MIN_ROW_CACHE_SIZE (VAX Only)

On VAX systems, this parameter defines the minimum number of rows that can be allocated to the font cache. The default minimum number of rows in the font cache is 20, which is generally acceptable for Latin font sets. You can set the value to a higher number using the DECW$FM_MIN_ROW_CACHE_SIZE symbol; you cannot set it lower than 20 rows. For Asian DECwindows equipped machines with 16MB or more of memory, you may want to increase this value to 100 rows, for example, so that the cache always maintains a list of the 100 most frequently accessed rows.

The following logical definition extends the minimum number of rows to 100:


Example


$ DEFINE/SYSTEM DECW$FM_MIN_ROW_CACHE_SIZE 100
      

DECW$FM_NO_CACHE_AUTOTUNING (VAX Only)

On VAX systems, this parameter determines whether the font cache is dynamic or static. A dynamic font cache is one in which the system can modify parameters based on font usage. A static font cache is one in which parameters remain fixed. The default value, false, enables autotuning so that all font cache symbols are active. If you set the symbol value to true, you disable autotuning, but you can still set the initial number of rows to be allocated to the font cache using the DECW$FM_INIT_NUM_CACHE_ROWS symbol.

The following logical definition enables autotuning:


Example


$ DEFINE/SYSTEM DECW$FM_NO_CACHE_AUTOTUNING F
      

DECW$FM_ROW_CACHE_EXTEND (VAX Only)

On VAX systems, this parameter defines the number of rows to be added to the font cache when the cache is full and another row must be read in from a font file. The default is 5 rows.

The following logical definition causes the DECwindows server to allocate 10 rows to the font cache when needed, up to the maximum number of rows allowed:


Example


$ DEFINE/SYSTEM DECW$FM_ROW_CACHE_EXTEND 10
      

DECW$FM_TIME_TO_SHRINK_CACHE (VAX Only)

On VAX systems, this parameter defines the number of seconds that a row is allowed to remain in the font cache without having been accessed, after which the row is removed unless the size of the cache has reached the minimum number of rows allowed. The default is 600 seconds (10 minutes).

The following logical definition enables an unaccessed font to remain in the font cache for up to 1200 seconds (20 minutes). An unaccessed font can be removed in 20 minutes if the maximum number of rows is reached.


Example


$ DEFINE/SYSTEM DECW$FM_TIME_TO_SHRINK_CACHE 1200<endsection>
      

3.2.6 Scaling Bitmap Fonts (AXP Only)

<alpha_ps_section> <alpha_br_section>

In addition to supporting several formats of scalable outline fonts, the AXP display server also can scale any of its bitmap fonts to any size.

Note, however, that the quality of these scaled bitmap fonts is significantly less than the original bitmap fonts or even comparable scaled outline fonts. By default, this capability is disabled. In some cases, this reduction in quality may be an acceptable tradeoff, given the greater flexibility in font sizes.

DECW$SERVER_SCALE_BITMAP_FONTS (AXP Only)

On AXP systems, this parameter enables the scaling of bitmap fonts to render arbitrary point-size characters. The default value (False) makes the AXP server act like the VAX server.

The following logical definition enables scalable fonts on an AXP system:


Example


$ DEFINE/SYSTEM DECW$SERVER_SCALE_BITMAP_FONTS T<endsection>
      


Previous Next Contents Index