However, information specific to the Digital UNIX X server is not covered in those manuals. This chapter includes information on the following topics:
The following list contains the X11 R6 protocol X server extensions that Digital UNIX supports:
You can regard the Display PostScript system as part of the X Window System. Your application will use X Window System features for window placement and sizing, menu creation, and event handling, while using Display PostScript system features to take care of imaging inside the window.
Display PostScript system components include the Client Library, the PostScript interpreter, and the pswrap translator.
The Digital UNIX documentation set includes the Developing Applications for the Display PostScript System.
xset
(1X) reference page
for a description of the -bc flag.
To the programmer, OpenGL is a set of commands that allows the specification of geometric objects in two or three dimensions, together with commands that control how these objects are rendered into the frame buffer. For the most part, OpenGL provides an immediate-mode interface, so that specifying an object causes it to be drawn.
A typical program that uses OpenGL begins with calls to open a window in the frame buffer into which the program will draw. Then, calls are made to allocate a GL context and associate it with the window. Once a GL context is allocated, the programmer can issue OpenGL commands. Some commands are used to draw simple geometric objects for example, points, line segments, and polygons. Other commands affect the rendering of these primitives, including how they are lit or colored and how they are mapped from the user's two- or three-dimensional model space to the two-dimensional screen. OpenGL also has commands that affect direct control of the frame buffer, such as those that read and write pixels.
In the X Window System, OpenGL rendering is made available as an extension to X in the formal X sense: connection and authentication are accomplished with the normal X mechanisms. As with other X extensions, there is a defined network protocol for the OpenGL rendering commands that are encapsulated within the X byte stream.
Information on OpenGL is provided in the OpenGL Reference Manual.
The protocol version of PEX supported for Digital UNIX is PEX 5.1, which is available only through the DEC Open3D kit.
All requests are passed to the server by means of a shared memory queue. The server and client control the flow by using X protocol requests over UNIX Domain sockets. All events, replies, and errors are returned through UNIX Domain sockets.
This transport is suitable only for high-bandwidth applications that typically use large requests. Short requests may take longer to process with SMT than with UNIX Domain sockets because of synchronization overhead. For example, XNoOp requests will take twice as much time to execute.
The DISPLAY environment variable must be set to local:0 when SMT is used.
When using SMT, the X server may not be able to allocate a shared memory segment. This problem occurs if the system shared memory resources are depleted; a warning message appears on the client side.
With this extension, clients on different hosts running different operating systems can be synchronized. Multimedia applications can use this extension to synchronize audio, video, and graphics data streams. In addition, the extension provides internal timers within the X server that can be used to synchronize client requests. Using this feature, simple animation applications can be implemented without having to use round-trip requests. The extension allows applications to make the best use of buffering within the client, server, and network.
The X Consortium provides documentation for XIE in PostScript format. That documentation is located on the Digital UNIX system in the /usr/doc/xie directory. The following list describes the documents:
This document provides general information about the X Image Extension code. Topics covered are: XIE design goals, XIE historical summary, XIE architecture, element definitions, and subsetting.
This document contains reference descriptions of all the XIElib functions, XIElib events, and XIElib errors. The Functions section covers the following types of functions: startup, LUT, photomap, ROI, photoflo, client data, abort and await, photoflo element, technique, and free.
This document is for X Consortium members who have a working understanding of the X Imaging Extension. It provides an architecture overview as well as chapters on the following topics: extension initialization, memory management, request dispatching, data representation, data structures, protocol requests, DIXIE photoflo management, DDXIE photoflo management, and photo elements.
This document specifies the X wire protocol for the X Image Extension. It defines the syntax, structure, and semantics of the XIE protocol elements. Topics covered include syntax specification, parameter types, resources, pipelined processing, import elements, process elements, export elements, events and errors, techniques, service class, and protocol encodings.
The function of the mode switch is similar to that of the Shift or Shift Lock key. These mechanisms both enable multiple symbols (keysym) to be generated from single keys, with one symbol for one mode or shift or shift-lock state and another symbol for the other state. For example, on the American keyboard, 3 and # can be switched by the shift state.
The combination of the mode-switch and shift/lock mechanisms allows up to four keysyms to be established for a single key.
The entry point XKMEDoKBModeSwitch is defined for the mode-switch modifier and can be set to the following modes of operation:
LockDownModeSwitch | Locks down the mode-switch modifier; that is, switches to Group 2. |
UnlockModeSwitch | Unlocks the mode-switch modifier; that is, switches to Group 1. |
The dxkeycaps
(1X) reference page describes how to access the shift
modifier from client applications and contains general information on keyboard
mappings.
The greeter library that is used is determined by the value of the DisplayManager.greeterLib resource in the /var/X11/xdm/xdm-config file. This library is required to define a function named GreetUser().
The GreetUser() function is defined in greet.h as follows:
int GreetUser( struct display *d, Display ** dpy, struct verify_info *verify, struct greet_info *greet, struct dlfuncs *dlfcns)
The parameters for the function are as follows:
This struct display is defined in /usr/examples/xdm/dm.h.
The parameter returns the Display pointer from XtOpenDisplay() or XOpenDisplay().
This struct is defined in /usr/examples/xdm/dm.h. The GreetUser() function is passed a pointer to an existing verify-info struct. The function is expected to write the fields of this struct. These fields include the uid, gid, arguments to run the session; the environment variable for the session; and the environment variable for startup and reset.
This struct is defined in /usr/examples/xdm/dm.h. The GreetUser() function is passed a pointer to an existing verify-info struct. The function is expected to write the user's name and password into the name and password fields, but these values are really needed only when xdm is compiled with SECURE_RPC defined.
This struct is a set of function pointers to xdm functions that GreetUser ( ) is likely to need.
Note that on Digital UNIX using these function pointers is not necessary since the symbols will be resolved by the dynamic loader.
The GreetUser() function returns an enumerated type, greet_user_rtn, defined in greet.h.
Greet_Session_Over 0 session managed and over Greet_Success 1 greet succeeded, session not managed Greet_Failure -1 greet failed
Until recently, the data type used with a format of 32 was implied, not specified. With the new refinements, the data that is provided in format 32 to the XChangeProperty function or returned from the GetWindowProperty function should be accessed as arrays of longwords or typedefs based on longwords such as Window or Atom.
Specify either the -ldnet_stub or -ldnet flag when:
If you link your X client application to the nonshared version of the /usr/lib/libDXm.a library, you must include libbkr in the link line. If you omit libbkr, the warning messages appear about the following undefined symbols:
DXmHelpSystemClose DXmHelpSystemDisplay DXmHelpSystemOpen
The loadable X server, as well as clients and libraries that directly execute calls to DECnet functions, are built using the libdnet_stub.so shared library in the ld command that links the object files. DECnet functions that are commonly called include getnodename, dnet_addr, and dnet_conn.
X clients that are built fully static and include libX11.a or libXmu.a must incorporate the libdnet_stub.a library if they do not use the DECnet transport. If they do use the DECnet transport, they must incorporate the libdnet.a library. One of these libdnet libraries must be included to resolve function calls from within the libX11 or libXmu modules. If the X client is not fully static, but is using libX11.a or libXmu.a for some other reason, libdnet_stub.so should be included in the ld command information so that the client can be used whether or not DECnet is installed.
Note that DECnet/OSI is not part of the Digital UNIX operating system.
There are two functions in the Display PostScript language that correct this problem: