Environment variables: Boolean; default off ==================== M4D_ALL_AT_ONCE -- if set, pass animation frames to X server in one shot M4D_CMAP_RESTRICT -- X: controls colormap allocation M4D_CULLVERTS -- currently no-op; would get rid of unused vertices when a frame is calculated. Could be useful if we someday store animation frames in files M4D_DONT_CHECK_BBOX -- controls how stickers are picked M4D_DONT_DRAW_FRAME -- X: suppresses drawing of frame *M4D_DRAW_NEW_STATE -- forces explicit drawing of new state after each move. Useful for debugging. M4D_EYEW -- Position of the "eye" in 4-space, on the +W axis. Note that the radius of the inscribed circle of the hypercube is LENGTH (as described above, 3 by default). M4D_EYEZ -- Position of the eye in 3-space, on the +Z axis. M4D_HISTORY_DEBUG -- turns on debugging in History.cpp M4D_NOCOMPRESSMOTION -- X: keeps X server from compressing motion events while dragging the whole cube with shift-middle-down M4D_NOCULLCELLS -- if set, frontcell culling is disabled M4D_NOCULLFACES -- if set, backface culling is disabled M4D_NOZSORT -- if set, z-sorting is disabled M4D_NO_STRDUP_FIX -- X: toggles use of workaround *M4D_OUTLINE -- determines whether outlines should be drawn around stickers M4D_RESIZE_TOPLEVEL_FROM_TEXT -- X: related to resizing macros form M4D_XVERBOSE -- X: turn on verbose messages M4D_MACROS_ON_RIGHT -- place macros frame to the right M4D_FAST_AUTOMOVES -- if set, skip animation while running moves automatically such as during macro execution and moving to marks Default if unspecified ====================== *M4D_FACESHRINK -- fraction of full face size displayed *M4D_INC -- how many degrees of tilt/twirl x/y/X/Y/shift-middle-down do M4D_LENGTH -- initial dimensions. Must be set before call to machine_init *M4D_NFRAMES_120 -- number of frames of animation for 120 degree turn *M4D_NFRAMES_180 -- number of frames of animation for 180 degree turn *M4D_NFRAMES_90 -- number of frames of animation for 90 degree turn *M4D_NSCRAMBLECHEN -- number of moves hitting "S" causes M4D_NSHADES -- X: number of shades to use *M4D_LOGFILE -- default logfile name *M4D_STICKERSHRINK -- fraction of full sticker size displayed M4D_TILT -- tilt (left-right position) of initial position M4D_TWIRL -- twirl (forward-backward position) of initial position In X implementation, all *'ed environment variables can be replaced by commandline options or X Resource values as follows: For example, adding "-outline" is equivalent to setting M4D_OUTLINE and adding "-logfile ~/tmp/magiccube4d.log" is equivalent to setting M4D_LOGFILE to ~/tmp/magiccube4d.log. M4D_DRAW_NEW_STATE: redraw M4D_OUTLINE: outline M4D_MACROS_ON_RIGHT: rightmacros M4D_FAST_AUTOMOVES: fastautomoves M4D_FACESHRINK: faceshrink M4D_INC: degrees M4D_NFRAMES_120: nframes120 M4D_NFRAMES_180: nframes180 M4D_NFRAMES_90: nframes90 M4D_NSCRAMBLECHEN: nscramblechen M4D_LOGFILE: logfile M4D_STICKERSHRINK: stickershrink No validation is done on this. At machine initialization, these commandline options or resource values are converted to environment variable definitions to avoid having to touch the rest of the code.