glresources(3G)
GLResources - X resources used by GL programs
As shipped in IRIX 6.5.30. Unchanged since IRIX 6.5.
NAME GLResources - X resources used by GL programs DESCRIPTION In IRIX 4.0 and later, the GL responds to several X resources, allowing run-time control over some aspects of GL programs. This man page assumes you are somewhat familiar with X resources, if you are not, you should read some X documentation such as Volume 3 of the O'Reily X books. The GL uses resources names with the prefixes appname.gl. (instance prefix) Appname.GL. (class prefix) where appname and Appname are derived from the argument to the GL program's first call to winopen(3G) upper case. appname may not exactly match the first argument to winopen, because appname must follow the rules for legal resource names. The following processing is done on all winopen names to turn them into resource names: In the instance name (appname), the first character, if it is a letter, is changed to be in lower case. In the class name (Appname), the first character, if it is a letter, is changed to be in upper case. All spaces are removed, alphabetic characters following space are changed to upper case. All characters except 0-9, A-Z, "-" (dash) and "_" (underscore) are stripped. For example, if the first call to winopen of a gl program was winopen("clock view #123"); All the resources instance names for the program would be prefixed with clockView123.gl. and class names with ClockView123.GL. WINDOW SPECIFIC RESOURCES The following resources affect only windows whose full resource names match resource specification. That is, it is possible to specify these resources in such a way that only some of the windows of a GL program are affected by these resources. All of theses resources are fully specified by the names listed here, preceded by the window resource path name of the window. That is the application prefix mentioned above, followed by .winName in the instance string and .GLWindow in the class name. That is, if the above "clock view" program were to open another window with the call winopen("second one"); the winName would be secondOne, and its window specific resources would all by fully specified by preceding the names with clockView123.gl.secondOne. and ClockView123.GL.GLWindow. Here are the window specific resources. Each resource has two names, a class name and an instance name. In most cases the class name is the same as the instance name except for case. geometry Geometry Specifies an initial size and/or position for the window. The syntax and interpretation of the geometry resource is the same as for X window: widthxheight[+-]xpos[+-]ypos. For all the resources controlling size and position, values in the resource file override program specified position (through prefposition(3G)), but not program specified placement (through winposition(3G)). position Position Specifies initial size and position of the window, the coordinate system is 0,0 at the lower left hand corner of the screen. Syntax is: xpos ypos [ units ] width height [ units ] . The units are optional and are one of pixels, inches or mm. If no units are specified, the numbers are assumed to be in pixels. size Size Specifies initial size only. Syntax is: width height [ units ] origin Origin Specifies initial lower left origin only. If program doesn't call prefsize(3G), or if another resource doesn't specify a size, this resource has no effect. Syntax is: xpos ypos [ units ] pointerShape Cursor Sets the default cursor for that window to the X font cursor shape with the given name. This is the cursor which the window will show when GL cursor number 0 is active. Syntax: cursor name pointerColor Foreground Sets the foreground color of the default gl cursor. Syntax: colorname | #RRGGBB pointerColorBackground Background Sets the background color of the default gl cursor. Syntax: colorname | #RRGGBB MENU RELATED RESOURCES These resources control the behavior and appearance of the popup menus displayed by defpup(3G). Some IRIX 4.0 programs use menus that look the same, but aren't controlled by exactly the same resources. Two examples of programs with similar-looking, but non-GL, menus would be workspace(1) and wsh(1). menu.overFirst Menu.OverFirst If this resource is specified and is set to "True" then when the popop menu is first drawn, it will be placed so that the first menu item is automatically selected. Syntax: False | True menu.darkColor Menu.Foreground menu.mediumColor Menu.Background menu.lightColor Menu.Background The menus are drawn in the overlay planes by using dither patterns made from three colors: dark, medium, and light. Syntax: colorname | #RRGGBB menu.font Menu.Font This is the font used for the body of the menus. Syntax: xfontname menuTitle.font MenuTitle.Font This is the font used for the title of the menus. Syntax: xfontname COMPATIBILITY RELATED RESOURCES There are a few areas where the GL behaves in an incompatible way in IRIX 4.0. In order to enable compatible behavior for programs that can't be re-compiled, there are the following resources. glCompat.softAttach GLCompat.SoftAttach Under previous window systems, if any keyboard key were held down, a window would keep receiving mouse events, even if the mouse moved out of the window. This type of input distribution is not supported as a generally available focus policy in X, so the GL can provide a similar behavior from programs that ask for it. If a program calls glcompat(GLC_SOFTATTACH, TRUE); or if it has the softAttach resource set to true, then holding down any of the modifier keys (other than alt) locks the mouse focus onto that window until all modifier keys (other than alt) are released. (Modifier keys other than alt are shift and control.) Syntax: True | False glCompat.motionQGrowthRate GLCompat.MotionQGrowthRate Prior to release 4.0 there was an artificial throttle on the number of mouse events per second that would be delivered to a program. This was set at around 15 events per second. In IRIX 4.0 programs can receive over 100 mouse events per second. Programs that do a lot of processing on each mouse event can suddenly find themselves doing 10 times more work. This resource enables varying levels of compression of mouse motion. Syntax: compat | compress, where compat produces a rate similar to pre 4.0, and compress gives maximum compression of motion events. Note: when this resource is used to cause libgl to compress motion events, the most recent motion event is never thrown away. Rather, if a new event arrives at a rate faster than allowed by the value of this resource, the new event overwrites the former most recent event. That is, using compression does not in any way prohibit a program from keeping up with the device. This functionality may be accessed from a C program by calling glcompat(GLC_MQUEUERATE, GLC_COMPATRATE); or glcompat(GLC_MQUEUERATE, GLC_CMPRESS); glCompat.manageBackground GLCompat.ManageBackground If set to True, imakebackround(3G) windows will be managed by the window manager. The correct setting of this will vary based on type of background program and type of machine and the user's selection of window managers. See imakebackground(3G) for more information. Syntax: True | False glCompat.slowMapcolors GLCompat.SlowMapcolors If set to true, then the default behavior of mapcolor buffering will be disabled. See mapcolor(3G) for more details. Syntax: True | False glCompat.inputChangeBug GLCompat.InputChangeBug If set to True, the pseudo device INPUTCHANGE retains a bug compatible behavior relating to subwindows. See glcompat(3G) for more information. Syntax: True | False glCompat.noBorderBug GLCompat.NoBorderBug If set to True, then windows which remove their borders with winconstraints(3G) can never get them back. See glcompat(3G) for more information. Syntax: True | False glCompat.forceCIMap GLCompat.ForceCIMap If set to True, then the color index colormap will also be installed when an RGB window receives colormap focus. Syntax: True | False glCompat.tabletScale GLCompat.TabletScale determines how tablet coordinates are scaled when the tablet controls the pointer (graphics cursor). If the value is 0, there is a 1-1 mapping between tablet coordinates and screen coordinates, so that on a typical tablet, only the lower left quadrant will be mapped to the screen. If the value is 1 (the default), then "iso" scaling is performed. That is, as much of the tablet as possible is mapped to the screen, with the restriction that a 1-1 aspect ratio is preserved. (I.e. the same scaling is applied to both x and y.) If the value is 2, then the entire tablet is mapped to the entire screen. (This is called "fit" scaling.) OTHER MISCELLANEOUS RESOURCES autoFork AutoFork If autoFork is set to False, or if foreground(3G) is called, then the GL will not fork when it firsts calls winopen. Syntax: True | False setvalConstrains SetvalConstrains When setvaluator(3G) is used for a device such as MOUSEX which controls the cursor, the vmin and vmax arguments can cause the cursor to be constrained to a rectangle which is less than the full screen. If setvalConstrains is set to False, then setvaluator(3G) will not constrain the cursor. The default is True. Syntax: True | False SOURCES OF RESOURCES The GL mimics Xt's resource search rules, and looks for resources in the following places: $XFILESEARCHPATH/Appname or /usr/lib/X11/app-defaults/Appname $XUSERFILESEARCHPATH/Appname or $XAPPLRESDIR/Appname or $HOME/Appname Server resource database or $HOME/Xdefaults $XENVIRONMENT or.Xdefaults-hostname Contents of the environment variable GLRES EXAMPLES The following program and resource file show some examples of how these resources can be used to customize the behavior of a GL program. /* Begin C Program */ #include <gl.h> #include <device.h> main() { int m; winopen("res test"); color(0); clear(); wintitle("Resource Test -- First Window"); winopen("2nd window"); color(0); clear(); qdevice(RIGHTMOUSE); m = defpup("Main Menu%t|One|Two|Three"); for (;;) { short val; switch (qread(&val)) { case REDRAW: winset(val); reshapeviewport(); color(0); clear(); break; case RIGHTMOUSE: if (val) dopup(m); break; } } } /* End C Program */ ! ! Begin Resource file, put this in $HOME/ResTest ! ! Give these windows an interesting cursor resTest*pointerShape: gumby ! ! Make all fonts for this program's menus be large resTest*Font: -*-times-*-r-*-*-34-*-*-*-*-170-*-* ! ! Make the first window appear in the lower left corner, ! and be 1 inch square resTest.gl.resTest.position: 0 0 pixels 1 1 inches ! ! Make the second window appear in the upper right corner resTest.gl.2ndWindow.geometry: 300x300-50+50 ! ! Keep the program from backgrounding itself resTest.gl.autoFork: False ! ! Note that wildcarding can be used in resource names. ! For example, the entry for autoFork could have been written ! "*gl*autoFork: False" or "*gl.autoFork: False". SEE ALSO glcompat(3G), xrdb(1), Xlib Resource Manager documentation, foreground(3G), imakebackground(3G), winopen(3G)