Miscellaneous Environment Variables

Various aspects of the Coin runtime behaviour can be controlled through setting different environment variables to some value. More...

## Variables

typedef | EnvironmentVariable
EnvironmentVariable | COIN_PROFILER
EnvironmentVariable | COIN_PROFILER_OVERLAY
EnvironmentVariable | COIN_DEBUG_GLU_INFO
EnvironmentVariable | COIN_DEBUG_GLU_VERSION
EnvironmentVariable | COIN_DEBUG_FONTSUPPORT
EnvironmentVariable | COIN_DEBUG_3DS
EnvironmentVariable | COIN_DEBUG_AUDIO
EnvironmentVariable | COIN_DEBUG_BREAK
EnvironmentVariable | COIN_DEBUG_CACHING
EnvironmentVariable | COIN_DEBUG_DL
EnvironmentVariable | COIN_DEBUG_IMPORT
EnvironmentVariable | COIN_DEBUG_LISTMODULES
EnvironmentVariable | COIN_DEBUG_SOINPUT_FINDFILE
EnvironmentVariable | COIN_DEBUG_SOOFFSCREENRENDERER
EnvironmentVariable | COIN_DEBUG_WRITEREFS
EnvironmentVariable | COIN_RANDOMIZE_RENDER_CACHING
EnvironmentVariable | COIN_FREETYPE2_LIBNAME
EnvironmentVariable | COIN_FORCE_FONTCONFIG_OFF
EnvironmentVariable | COIN_FORCE_FREETYPE_OFF
EnvironmentVariable | COIN_FORCE_WIN32FONTS_OFF
EnvironmentVariable | COIN_FONT_PATH
EnvironmentVariable | COIN_DISABLE_UTF8
EnvironmentVariable | COIN_GLBBOX
EnvironmentVariable | COIN_GLU_LIBNAME
EnvironmentVariable | COIN_AGLGLUE_NO_PBUFFERS
EnvironmentVariable | COIN_CGLGLUE_NO_PBUFFERS
EnvironmentVariable | COIN_GLXGLUE_NO_GLX13_PBUFFERS
EnvironmentVariable | COIN_GLXGLUE_NO_PBUFFERS
EnvironmentVariable | COIN_GLX_PIXMAP_DIRECT_RENDERING
EnvironmentVariable | COIN_WGLGLUE_NO_PBUFFERS
EnvironmentVariable | COIN_SIMAGE_LIBNAME
EnvironmentVariable | COIN_ZLIB_LIBNAME
EnvironmentVariable | COIN_BZIP2_LIBNAME
EnvironmentVariable | COIN_DONT_MANGLE_OUTPUT_NAMES
EnvironmentVariable | COIN_EXTSELECTION_SAVE_OFFSCREENBUFFER
EnvironmentVariable | COIN_FORCE_TILED_OFFSCREENRENDERING
EnvironmentVariable | COIN_GLERROR_DEBUGGING
EnvironmentVariable | COIN_OFFSCREENRENDERER_MAX_TILESIZE
EnvironmentVariable | COIN_OFFSCREENRENDERER_TILEHEIGHT
EnvironmentVariable | COIN_OFFSCREENRENDERER_TILEWIDTH
EnvironmentVariable | COIN_OLDSTYLE_FORMATTING
EnvironmentVariable | COIN_SEPARATE_DIFFUSE_TRANSPARENCY_OVERRIDE
EnvironmentVariable | COIN_SOINPUT_SEARCH_GLOBAL_DICT
EnvironmentVariable | COIN_SORTED_LAYERS_USE_NVIDIA_RC
EnvironmentVariable | COIN_SOUND_BUFFER_LENGTH
EnvironmentVariable | COIN_SOUND_DISABLE
EnvironmentVariable | COIN_SOUND_DRIVER_NAME
EnvironmentVariable | COIN_SOUND_ENABLE
EnvironmentVariable | COIN_SOUND_INTRO_PAUSE
EnvironmentVariable | COIN_SOUND_NUM_BUFFERS
EnvironmentVariable | COIN_SOUND_THREAD_SLEEP_TIME
EnvironmentVariable | COIN_OPENAL_LIBNAME
EnvironmentVariable | COIN_TEX2_LINEAR_LIMIT
EnvironmentVariable | COIN_TEX2_LINEAR_MIPMAP_LIMIT
EnvironmentVariable | COIN_TEX2_MIPMAP_LIMIT
EnvironmentVariable | COIN_TEX2_SCALEUP_LIMIT
EnvironmentVariable | COIN_TEX2_USE_GLTEXSUBIMAGE
EnvironmentVariable | COIN_TEX2_ANISOTROPIC_LIMIT
EnvironmentVariable | COIN_TEX2_USE_SGIS_GENERATE_MIPMAP
EnvironmentVariable | COIN_MAXIMUM_TEXTURE2_SIZE
EnvironmentVariable | COIN_MAXIMUM_TEXTURE3_SIZE
EnvironmentVariable | COIN_NORMALIZATION_CUBEMAP_SIZE
EnvironmentVariable | OIV_NUM_SORTED_LAYERS_PASSES
EnvironmentVariable | COIN_NUM_SORTED_LAYERS_PASSES
EnvironmentVariable | COIN_QUADMESH_PRECISE_LIGHTING
EnvironmentVariable | COIN_ENABLE_CONFORMANT_GL_CLAMP
EnvironmentVariable | IV_SEPARATOR_MAX_CACHES
EnvironmentVariable | COIN_AUTOCACHE_LOCAL_MAX
EnvironmentVariable | COIN_AUTOCACHE_LOCAL_MIN
EnvironmentVariable | COIN_AUTOCACHE_REMOTE_MAX
EnvironmentVariable | COIN_AUTOCACHE_REMOTE_MIN
EnvironmentVariable | COIN_AUTOCACHE_VBO_LIMIT
EnvironmentVariable | COIN_AUTO_CACHING
EnvironmentVariable | COIN_ENABLE_VBO
EnvironmentVariable | COIN_VBO
EnvironmentVariable | COIN_VBO_MAX_LIMIT
EnvironmentVariable | COIN_VBO_MIN_LIMIT
EnvironmentVariable | COIN_SOOFFSCREENRENDERER_ALLOW_RESOURCEHOG
EnvironmentVariable | SO_DRAGGER_DIR
EnvironmentVariable | SO_SHADER_DIR
EnvironmentVariable | COINDIR
EnvironmentVariable | COIN_ALLOW_SPIDERMONKEY
EnvironmentVariable | COIN_CALCULATE_NURBS_NORMALS
EnvironmentVariable | COIN_CG_LIBNAME
EnvironmentVariable | COIN_DEBUG_ASSERT_SOBASE_SETNAME
EnvironmentVariable | COIN_DEBUG_BINARY_INPUT
EnvironmentVariable | COIN_DEBUG_CLEANUP
EnvironmentVariable | COIN_DEBUG_EXTRA
EnvironmentVariable | COIN_DEBUG_FLATTEN_NODEKITS_ON_WRITE
EnvironmentVariable | COIN_DEBUG_GLGLUE
EnvironmentVariable | COIN_DEBUG_GLRENDER_TRAVERSAL
EnvironmentVariable | COIN_DEBUG_GLUNURBSSURFACE
EnvironmentVariable | COIN_DEBUG_INTERSECTIONDETECTIONACTION
EnvironmentVariable | COIN_DEBUG_MUTEXLOCK_MAXTIME
EnvironmentVariable | COIN_DEBUG_MUTEXLOCK_TIMING
const char * | COIN_DEBUG_MUTEX_COUNT = "COIN_DEBUG_MUTEX_COUNT"
EnvironmentVariable | COIN_DEBUG_NORMALIZE
EnvironmentVariable | COIN_DEBUG_NPRINTF
EnvironmentVariable | COIN_DEBUG_NURBS_COMPLEXITY
EnvironmentVariable | COIN_DEBUG_ROOT_NOTIFICATIONS
EnvironmentVariable | COIN_DEBUG_SIMAGE
EnvironmentVariable | COIN_DEBUG_SOEXTSELECTION
EnvironmentVariable | COIN_DEBUG_SOFILE_READ
EnvironmentVariable | COIN_DEBUG_SOOFFSCREENRENDERER_TILEPREFIX
EnvironmentVariable | COIN_DEBUG_SPIDERMONKEY_BINDING
EnvironmentVariable | COIN_DEBUG_STRING_GROW
EnvironmentVariable | COIN_DEBUG_TRACK_SOBASE_INSTANCES
EnvironmentVariable | COIN_DEBUG_VBO
EnvironmentVariable | COIN_DEBUG_VRMLSCRIPT
EnvironmentVariable | COIN_FONTCONFIG_LIBNAME
EnvironmentVariable | COIN_DONT_INFORM_INDIRECT_RENDERING
EnvironmentVariable | COIN_DONT_USE_FBO
EnvironmentVariable | COIN_FORCE_AGL
EnvironmentVariable | COIN_FORCE_GL1_0_ONLY
EnvironmentVariable | COIN_FULL_INDIRECT_RENDERING
EnvironmentVariable | COIN_GLGLUE_DISABLE_NON_POWER_OF_TWO_TEXTURES
EnvironmentVariable | COIN_GLGLUE_DISABLE_PALETTED_TEXTURE
EnvironmentVariable | COIN_GLGLUE_DISABLE_VBO_IN_DISPLAYLIST
EnvironmentVariable | COIN_GLGLUE_NO_ELSA_WARNING
EnvironmentVariable | COIN_GLGLUE_NO_G400_WARNING
EnvironmentVariable | COIN_GLGLUE_NO_RADEON_WARNING
EnvironmentVariable | COIN_GLGLUE_NO_SUN_EXPERT3D_WARNING
EnvironmentVariable | COIN_GLGLUE_NO_TRIDENT_WARNING
EnvironmentVariable | COIN_GLGLUE_SILENCE_DRIVER_WARNINGS
EnvironmentVariable | COIN_GLU_SILENCE_TESS_COMBINE_WARNING
EnvironmentVariable | COIN_GL_DISABLE_VBO
EnvironmentVariable | COIN_GL_NO_CURRENT_CONTEXT_CHECK
EnvironmentVariable | COIN_HANDLE_STACK_OVERFLOW
EnvironmentVariable | COIN_NESTED_CACHING
EnvironmentVariable | COIN_NOT_STRICT_VRML97
EnvironmentVariable | COIN_NO_NVIDIA_COLOR_PER_FACE_BUG_WORKAROUND
EnvironmentVariable | COIN_NO_SOTYPE_DYNLOAD
EnvironmentVariable | COIN_OFFSCREEN_STENCIL_BITS
EnvironmentVariable | COIN_OLD_NURBS_COMPLEXITY
EnvironmentVariable | COIN_PREFER_GLPOLYGONOFFSET_EXT
EnvironmentVariable | COIN_PREFER_GLU_TESSELLATOR
EnvironmentVariable | COIN_REDUCE_LINEAR_NURBS_STEPS
EnvironmentVariable | COIN_SMART_CACHING
EnvironmentVariable | COIN_SPIDERMONKEY_LIBNAME
EnvironmentVariable | COIN_VERTEX_ARRAYS
EnvironmentVariable | COIN_VIEWUP
EnvironmentVariable | WINDIR

## Detailed Description

Various aspects of the Coin runtime behaviour can be controlled through setting different environment variables to some value.

Most of these variables are there for debugging and problem-workaround purposes, but a few are for telling Coin where to locate external resource files.

Here we will set up a list of some of the environment variables Coin will check for and can alter behavior because of.

### Scene Graph Profiler

The scene graph profiler subsystem uses the following environment variables:

- COIN_PROFILER
- COIN_PROFILER_OVERLAY

A lot of other environment variables will also affect the profiling and listing them all would be tedious. Most useful is perhaps the IV_SEPARATOR_MAX_CACHES variable for disabling caching, and those that disable features like vertex arrays and frame buffer objects, but using these will of course cause you to profile special cases that may not be as important as you might think.

## Variable Documentation

## EnvironmentVariable

typedef EnvironmentVariable

This is a fake type to peg documentation for environment variables that Coin uses on.

Environment variables are variables you set on your system, which are read in by the Coin-based application at runtime. These environment variables are irrelevant at compile time when Coin is built.

## COIN_PROFILER

EnvironmentVariable COIN_PROFILER

This variable should be a set of profiler settings keywords, separated by ":" characters.

The keywords are:

- `on`
- `off`
- `syncgl`

The `on` keyword just enables the profiling element so profiling data is recorded.

The `off` keyword just disables the profiling subsystem. There is really no need for specifying this as it is off by default, but can for instance be used to override settings already in the environment at launch-time.

The `syncgl` keyword will make GL rendering flush the GL pipeline between each node, so that the profiling data will better reflect which nodes actually cause work for Open GL. Note however that the GL rendering performance drops like a rock when enabling this. The `syncgl` keyword implies the `on` keyword.

Old Usage: When this was first implemented, just setting this environment variable to `"1"` or any positive integer value turned on the live scene graph profiling feature in Coin. This usage is still supported, but as the number of options grew, it was obvious that we needed a new scheme rather than one variable for each feature. The positive integer approach cannot be combined with using keywords, and setting the value to `"1"` is the same thing as setting it to `"on"`.

## COIN_PROFILER_OVERLAY

EnvironmentVariable COIN_PROFILER_OVERLAY

This variable enables some default profiler statistics output techniques. It should be a set of profiler overlay settings keywords, separated by ":" characters.

- `autoredraw=<float>`
- `stdout`
- `stderr`
- `clear`
- `header`
- `lines=<int>`
- `action=<actionclass>`
- `category=<nodes|types|names>`

The `autoredraw=<float>` option sets up the GL display to automatically redraw the display after a delay of `<float>` seconds. Example: `redraw=0.2` gives you somewhere below 5 redraws a second, depending on how fast each frame is drawn.

The `stdout` keyword causes the profiling data to be sent to stdout instead of being overlaid on the GL view.

The `stderr` keyword causes the profiling data to be sent to stderr instead of being overlaid on the GL view.

The `clear` keyword works with `stdout` and `stderr`, and makes Coin attempt to clear the console between each time it dumps profiling data. It just uses the ANSI console escape sequence for clearing, which may not work on all types of terminals.

The `header` keyword makes the profiling output be preceded by a header line that explains what each column means. It only works with `stdout` and `stderr`.

The `lines=<int>` option lets you select the number of lines to output. The default is 20. This option only works with `stdout` and `stderr`.

The `action=<actionclass>` option lets you select which action is to be profiled. The default is of course the SoGLRenderAction. This only works with `stdout` and `stderr`.

The `category=<keyword>` option lets you specify which view you should have on the profiling data. A `nodes` view will give you one entry in the list for each node. A `types` view will summarize over each type and present one entry per node type. A names view will group nodes that belong under the same named node together and presents that summary as one entry.

Old Usage: Setting this environment variable to `"1"` (or any positive integer) turns on the live scene graph (primarily) profiling overlay feature in Coin, the way it was in the beginning of implementing this functionality. This still works but just gives you one default view. It cannot be combined with using keywords.

## COIN_DEBUG_GLU_INFO

EnvironmentVariable COIN_DEBUG_GLU_INFO

## COIN_DEBUG_GLU_VERSION

EnvironmentVariable COIN_DEBUG_GLU_VERSION

## COIN_DEBUG_FONTSUPPORT

EnvironmentVariable COIN_DEBUG_FONTSUPPORT

If this environment variable is set to a value > 0, an extensive amount of debug information about loading, initializing and using fonts will be output. Issues like missing fonts and other related problems will then be reported, so we advice you to first try to use this debugging option when something does not work quite as expected.

## COIN_DEBUG_3DS

EnvironmentVariable COIN_DEBUG_3DS

By default only error messages are generated. COIN_DEBUG_3DS environment variable can be used to specify amount of debug messages: 0 .. only error messages (default) 1 .. warnings that usually concerns data parsed from the 3ds file 2 .. print basic 3ds file structure info 3 .. print everything

## COIN_DEBUG_AUDIO

EnvironmentVariable COIN_DEBUG_AUDIO

If this environment variable is set to a value > 0, additional debug information is output when sound support is enabled.

## COIN_DEBUG_BREAK

EnvironmentVariable COIN_DEBUG_BREAK

This environment variable is supported by Coin to set conditional breakpoints. It can be set to any number of functions in the form of a list separated by commas or spaces. The function names must be given as "classname::functionname" (i.e. without return type, parenthesis or argument types or names). If a debug message is posted from one of those functions, your program will be stopped (using assert(0)).

This can be useful if you want to get core-dumps or enter a debugger whenever for instance a warning or an error is posted from some function (e.g. "SbVec3f::normalize"). This feature is only enabled in the debug version of Coin.

## COIN_DEBUG_CACHING

EnvironmentVariable COIN_DEBUG_CACHING

If this environment variable is set to a value > 0, additional debug information is output about caching.

## COIN_DEBUG_DL

EnvironmentVariable COIN_DEBUG_DL

If this environment variable is set to a value > 0, additional debug information is output when loading dynamic libraries/shared objects.

## COIN_DEBUG_IMPORT

EnvironmentVariable COIN_DEBUG_IMPORT

If this environment variable is set to a value > 0, additional debug information is output when importing files in Inventor format.

## COIN_DEBUG_LISTMODULES

EnvironmentVariable COIN_DEBUG_LISTMODULES

If this environment variable is set to a value > 0, additional debug information is output under Win32 when loading multiple instances of the same library.

## COIN_DEBUG_SOINPUT_FINDFILE

EnvironmentVariable COIN_DEBUG_SOINPUT_FINDFILE

If this environment variable is set to a value > 0, additional debug information is output when scanning through the include directories in order and trying to find a file in any of them (SoInput::findFile).

## COIN_DEBUG_SOOFFSCREENRENDERER

EnvironmentVariable COIN_DEBUG_SOOFFSCREENRENDERER

If this environment variable is set to a value > 0, additional debug information is output when doing offscreen rendering.

## COIN_DEBUG_WRITEREFS

EnvironmentVariable COIN_DEBUG_WRITEREFS

If this environment variable is set to a value > 0, additional debug information regarding writerefs is output.

## COIN_RANDOMIZE_RENDER_CACHING

EnvironmentVariable COIN_RANDOMIZE_RENDER_CACHING

This environment variable is used for local stability / robustness / correctness testing of the render caching. If set to a value > 0, renderCaching will be set to "ON" with a probability of 0.5 for every SoSeparator instantiated.

## COIN_FREETYPE2_LIBNAME

EnvironmentVariable COIN_FREETYPE2_LIBNAME

Set the system shared library name for the FreeType library.

## COIN_FORCE_FONTCONFIG_OFF

EnvironmentVariable COIN_FORCE_FONTCONFIG_OFF

In case you intend to use your application on systems where the Fontconfig library is expected to be not installed you should not make use of Fontconfig's font pattern syntax.

If this environment variable is set to a value > 0, the usage of Fontconfig can be prevented.

## COIN_FORCE_FREETYPE_OFF

EnvironmentVariable COIN_FORCE_FREETYPE_OFF

On Windows the Win32 GDI library is used. FreeType and Fontconfig are dynamically loaded on demand by Coin if font support is requested by a node. When font support is loaded on Windows, FreeType will have precedence over Win32 if located. This can be prevented if this environment variable is set to a value > 0.

## COIN_FORCE_WIN32FONTS_OFF

EnvironmentVariable COIN_FORCE_WIN32FONTS_OFF

If this environment variable is set to a value > 0, the usage of Win32 fonts is disabled (even on Windows platform).

## COIN_FONT_PATH

EnvironmentVariable COIN_FONT_PATH

It is possible to specify the TrueType font file directly if FreeType is used as font engine. This is done by including ".ttf" in the filename, i.e. "Comic_Sans_MS.ttf". Coin will then search the local path for the running program and then the path specified by the "COIN_FONT_PATH" environment variable. If the program is using FreeType on a Windows platform, the "$WINDIR/Fonts" directory will also be searched.

## COIN_DISABLE_UTF8

EnvironmentVariable COIN_DISABLE_UTF8

Coin from version 4.0 onwards expects all characters related to text rendering to be UTF-8 encoded.

This variable should be a set, if you need to reinstate the old behavior of treating all characters according to the Western Latin-1 encoding.

## COIN_GLBBOX

EnvironmentVariable COIN_GLBBOX

If this environment variable is set to a value > 0, rendering action traversals will apply a bounding box action before rendering. This will make sure bounding box caches are updated (needed for view frustum culling). The default Quarter/SoQt/SoWin/SoXt viewers will handle this at their end (which is the proper way to do it), so we don't do this by default.

## COIN_GLU_LIBNAME

EnvironmentVariable COIN_GLU_LIBNAME

Set the system shared library name for the GLU library.

## COIN_AGLGLUE_NO_PBUFFERS

EnvironmentVariable COIN_AGLGLUE_NO_PBUFFERS

If this environment variable is set to a value > 0, software rendering of offscreen contexts is forced for AGL (Mac OS X).

## COIN_CGLGLUE_NO_PBUFFERS

EnvironmentVariable COIN_CGLGLUE_NO_PBUFFERS

If this environment variable is set to a value > 0, software rendering of offscreen contexts is forced for CGL (Mac OS X).

## COIN_GLXGLUE_NO_GLX13_PBUFFERS

EnvironmentVariable COIN_GLXGLUE_NO_GLX13_PBUFFERS

If this environment variable is set to a value > 0, GLX 1.3 pbuffers support will not be used, but it will be attempted to use pbuffers through extensions.

## COIN_GLXGLUE_NO_PBUFFERS

EnvironmentVariable COIN_GLXGLUE_NO_PBUFFERS

If this environment variable is set to a value > 0, software rendering of offscreen contexts is forced for GLX.

## COIN_GLX_PIXMAP_DIRECT_RENDERING

EnvironmentVariable COIN_GLX_PIXMAP_DIRECT_RENDERING

If this environment variable is used to control direct rendering in GLX for offscreen contexts. If the value is set to a value > 0, direct rendering is forced.

## COIN_WGLGLUE_NO_PBUFFERS

EnvironmentVariable COIN_WGLGLUE_NO_PBUFFERS

If this environment variable is set to a value > 0, software rendering of offscreen contexts is forced for WGL (Windows).

## COIN_SIMAGE_LIBNAME

EnvironmentVariable COIN_SIMAGE_LIBNAME

Set the system shared library name for the simage library.

## COIN_ZLIB_LIBNAME

EnvironmentVariable COIN_ZLIB_LIBNAME

Set the system shared library name for the zlib library.

## COIN_BZIP2_LIBNAME

EnvironmentVariable COIN_BZIP2_LIBNAME

Set the system shared library name for the bzip2 library.

## COIN_DONT_MANGLE_OUTPUT_NAMES

EnvironmentVariable COIN_DONT_MANGLE_OUTPUT_NAMES

If this environment variable is set to a value > 0, we try to preserve the original node names as far as possible instead of appending a "+<refid>" suffix.

## COIN_EXTSELECTION_SAVE_OFFSCREENBUFFER

EnvironmentVariable COIN_EXTSELECTION_SAVE_OFFSCREENBUFFER

If the environment variable is set to a file name, the content of the offscreen buffer is stored to disk for investigation.

## COIN_FORCE_TILED_OFFSCREENRENDERING

EnvironmentVariable COIN_FORCE_TILED_OFFSCREENRENDERING

If this environment variable is set to a value > 0, offscreen rendering is forced to tiled rendering even when it can be done in a single chunk.

## COIN_GLERROR_DEBUGGING

EnvironmentVariable COIN_GLERROR_DEBUGGING

The GL error test is disabled by default for the optimized paths. If you get a GL error reporting an error in the Separator node, enable the error checking code by setting this environment variable to a value > 0, to see exactly which node caused the error.

## COIN_OFFSCREENRENDERER_MAX_TILESIZE

EnvironmentVariable COIN_OFFSCREENRENDERER_MAX_TILESIZE

Can be used to force a maximum size (width and height) of a rendering tile in the offscreen renderer.

See also
  COIN_OFFSCREENRENDERER_TILEHEIGHT, COIN_OFFSCREENRENDERER_TILEWIDTH

## COIN_OFFSCREENRENDERER_TILEHEIGHT

EnvironmentVariable COIN_OFFSCREENRENDERER_TILEHEIGHT

Can be used to override the default height of a rendering tile in the offscreen renderer. Should prove useful for debugging problems on remote sites.

See also
  COIN_OFFSCREENRENDERER_TILEWIDTH, COIN_OFFSCREENRENDERER_MAX_TILESIZE

## COIN_OFFSCREENRENDERER_TILEWIDTH

EnvironmentVariable COIN_OFFSCREENRENDERER_TILEWIDTH

Can be used to override the default width of a rendering tile in the offscreen renderer. Should prove useful for debugging problems on remote sites.

See also
  COIN_OFFSCREENRENDERER_TILEHEIGHT, COIN_OFFSCREENRENDERER_MAX_TILESIZE

## COIN_OLDSTYLE_FORMATTING

EnvironmentVariable COIN_OLDSTYLE_FORMATTING

Can be used to enable the output of the old ugly-bugly formatting style, in case someone, for some obscure reason, depends on it.

## COIN_SEPARATE_DIFFUSE_TRANSPARENCY_OVERRIDE

EnvironmentVariable COIN_SEPARATE_DIFFUSE_TRANSPARENCY_OVERRIDE

Traditional Open Inventor uses the same override bit for both diffuse color and transparency. To get around this problem if you need to override one without the other, set this environment variable to "1". This is a Coin extension, and will not work on other Open Inventor implementations.

## COIN_SOINPUT_SEARCH_GLOBAL_DICT

EnvironmentVariable COIN_SOINPUT_SEARCH_GLOBAL_DICT

When set to "1", the global dictionary is searched after the current file dictionary when resolving USE keywords. This makes it possible to reference nodes in other files.

## COIN_SORTED_LAYERS_USE_NVIDIA_RC

EnvironmentVariable COIN_SORTED_LAYERS_USE_NVIDIA_RC

Can be used to enable the usage of extensions for rendering SORTED_LAYERS_BLEND transparency which are only available on NVIDIA chipsets (GeForce3 and above, except GeForce4 MX). These extensions are `GL_NV_texture_shader`, `GL_NV_texture_rectangle` or `GL_EXT_texture_rectangle`, `GL_NV_register_combiners`, `GL_ARB_shadow` and `GL_ARB_depth_texture`. If this environment variable is set to "1" these extensions are used, otherwise the `GL_ARB_fragment_program` extension is used that is currently supported by the GeForceFX family and the Radeon 9500 and above.

## COIN_SOUND_BUFFER_LENGTH

EnvironmentVariable COIN_SOUND_BUFFER_LENGTH

## COIN_SOUND_DISABLE

EnvironmentVariable COIN_SOUND_DISABLE

Sound support is considered experimental, and is therefore not enabled by default, as sound support through OpenAL caused crashes under Linux. Setting the environment variable COIN_SOUND_ENABLE support in SoAudioDevice.

See also
  COIN_SOUND_ENABLE

## COIN_SOUND_DRIVER_NAME

EnvironmentVariable COIN_SOUND_DRIVER_NAME

The user can control which device name OpenAL uses by setting the COIN_SOUND_DRIVER_NAME environment variable. On Microsoft Windows, the default driver name is "DirectSound3D", which should normally be what the user wants.

## COIN_SOUND_ENABLE

EnvironmentVariable COIN_SOUND_ENABLE

Sound support is considered experimental, and is therefore not enabled by default, as sound support through OpenAL caused crashes under Linux. Setting the environment variable COIN_SOUND_ENABLE to a value > 0 enables sound support in SoAudioDevice. If set to 0 sound support is disabled.

See also
  COIN_SOUND_DISABLE

## COIN_SOUND_INTRO_PAUSE

EnvironmentVariable COIN_SOUND_INTRO_PAUSE

## COIN_SOUND_NUM_BUFFERS

EnvironmentVariable COIN_SOUND_NUM_BUFFERS

## COIN_SOUND_THREAD_SLEEP_TIME

EnvironmentVariable COIN_SOUND_THREAD_SLEEP_TIME

## COIN_OPENAL_LIBNAME

EnvironmentVariable COIN_OPENAL_LIBNAME

Set the system shared library name for the OpenAL library.

## COIN_TEX2_LINEAR_LIMIT

EnvironmentVariable COIN_TEX2_LINEAR_LIMIT

Linear filtering is enabled if Complexity::textureQuality is greater or equal to this value.

Default value is 0.2

## COIN_TEX2_LINEAR_MIPMAP_LIMIT

EnvironmentVariable COIN_TEX2_LINEAR_MIPMAP_LIMIT

Linear filtering between mipmap levels is enabled if textureQuality is greater or equal to this value.

Default value is 0.8

## COIN_TEX2_MIPMAP_LIMIT

EnvironmentVariable COIN_TEX2_MIPMAP_LIMIT

Mipmaps are created if textureQuality is greater or equal to this value.

Default value is 0.5

## COIN_TEX2_SCALEUP_LIMIT

EnvironmentVariable COIN_TEX2_SCALEUP_LIMIT

Textures with width or height not equal to a power of two will always be scaled up if textureQuality is greater or equal to this value.

Default value is 0.7

If textureQuality is lower than this value, and the width or height is larger than 256 pixels, the texture is only scaled up if its size is relatively close to the next power of two. This could save a lot of texture memory.

## COIN_TEX2_USE_GLTEXSUBIMAGE

EnvironmentVariable COIN_TEX2_USE_GLTEXSUBIMAGE

When set, and when the new texture data have the same attributes as the old data, glTexSubImage() will be used to copy new data into the texture instead of recreating the texture. This is not enabled by default, since it seems to trigger a bug in the Linux nVidia drivers. It just happens in some unreproduceable cases. It could be a bug in our glTexSubImage() code, of course. :)

## COIN_TEX2_ANISOTROPIC_LIMIT

EnvironmentVariable COIN_TEX2_ANISOTROPIC_LIMIT

Anisotropic filtering is enabled for textures when the texture quality is higher than this value.

Default value is 0.85

## COIN_TEX2_USE_SGIS_GENERATE_MIPMAP

EnvironmentVariable COIN_TEX2_USE_SGIS_GENERATE_MIPMAP

When set, use the GL_SGIS_generate_mipmap extension (if available) to generate mipmaps, otherwise use a fast internal routine to generate them. Use of GL_SGIS_generate_mipmap is not enabled by default since we suspect some ATi drivers have problems with this extension.

## COIN_MAXIMUM_TEXTURE2_SIZE

EnvironmentVariable COIN_MAXIMUM_TEXTURE2_SIZE

Can be used to limit the maximum supported size (width and height) of a 2D texture in the renderer.

See also
  COIN_MAXIMUM_TEXTURE3_SIZE

## COIN_MAXIMUM_TEXTURE3_SIZE

EnvironmentVariable COIN_MAXIMUM_TEXTURE3_SIZE

Can be used to limit the maximum supported size (width, height and depth) of a 3D texture in the renderer.

See also
  COIN_MAXIMUM_TEXTURE2_SIZE

## COIN_NORMALIZATION_CUBEMAP_SIZE

EnvironmentVariable COIN_NORMALIZATION_CUBEMAP_SIZE

## OIV_NUM_SORTED_LAYERS_PASSES

EnvironmentVariable OIV_NUM_SORTED_LAYERS_PASSES

To be able to render correct transparency independent of object order, one have to render in multiple passes. This technique is based on depth-peeling which strips away depth layers with each successive pass. The number of passes is therefore an indication of how deep into the scene transparent surfaces will be rendered with transparency. A higher number will lead to a lower frame rate but higher quality for scenes with a lot of transparent surfaces. The default number of passes is '4' and can be specified by either using SoGLRenderAction::setSortedLayersNumPasses() or by letting the environment variable `COIN_NUM_SORTED_LAYERS_PASSES` respectively `OIV_NUM_SORTED_LAYERS_PASSES` specify the number of passes.

See also
  COIN_NUM_SORTED_LAYERS_PASSES

## COIN_NUM_SORTED_LAYERS_PASSES

EnvironmentVariable COIN_NUM_SORTED_LAYERS_PASSES

To be able to render correct transparency independent of object order, one have to render in multiple passes. This technique is based on depth-peeling which strips away depth layers with each successive pass. The number of passes is therefore an indication of how deep into the scene transparent surfaces will be rendered with transparency. A higher number will lead to a lower frame rate but higher quality for scenes with a lot of transparent surfaces. The default number of passes is '4' and can be specified by either using SoGLRenderAction::setSortedLayersNumPasses() or by letting the environment variable `COIN_NUM_SORTED_LAYERS_PASSES` respectively `OIV_NUM_SORTED_LAYERS_PASSES` specify the number of passes.

See also
  OIV_NUM_SORTED_LAYERS_PASSES

## COIN_QUADMESH_PRECISE_LIGHTING

EnvironmentVariable COIN_QUADMESH_PRECISE_LIGHTING

When shading SoQuadMesh instances the quads in the mesh are just passed on to OpenGL's GL_QUAD primitive rendering. Under certain circumstances, this can lead to artifacts in how your meshes are shaded. This is an inherent problem with drawing quads in meshes.

By setting the this environment variable to "1", the quads will be broken up into triangles before rendered, and shading will likely look much better. Be aware that this technique causes rendering of the SoQuadMesh to slow down by an approximate factor of 6.

The "precise lighting" technique is currently limited to work only when SoQuadMesh rendering is parameterized with 3D coordinates, a material binding that is not per vertex, and if texture mapping is done is must be without using any of the SoTextureCoordinateFunction subclass nodes.

## COIN_ENABLE_CONFORMANT_GL_CLAMP

EnvironmentVariable COIN_ENABLE_CONFORMANT_GL_CLAMP

When this environment variable is set, GL_CLAMP will be used if SoGLImage::CLAMP is specified as the texture wrap mode. By default GL_CLAMP_TO_EDGE is used, since this is usually what people want.

## IV_SEPARATOR_MAX_CACHES

EnvironmentVariable IV_SEPARATOR_MAX_CACHES

Can be used to tune the number of display list caches stored in each SoSeparator. The default value is 2.

Setting this value to 0 will disable display list caching, and this is often useful if you experience weird rendering bugs which are hard to track down.

## COIN_AUTOCACHE_LOCAL_MAX

EnvironmentVariable COIN_AUTOCACHE_LOCAL_MAX

Can be used to change the disable-caching limit.

See also
  COIN_AUTOCACHE_LOCAL_MIN, COIN_AUTOCACHE_REMOTE_MAX

## COIN_AUTOCACHE_LOCAL_MIN

EnvironmentVariable COIN_AUTOCACHE_LOCAL_MIN

Can be used to change the enable-caching limit.

See also
  COIN_AUTOCACHE_LOCAL_MAX, COIN_AUTOCACHE_REMOTE_MIN

## COIN_AUTOCACHE_REMOTE_MAX

EnvironmentVariable COIN_AUTOCACHE_REMOTE_MAX

Can be used to change the disable-caching limit for remote rendering.

See also
  COIN_AUTOCACHE_REMOTE_MIN, COIN_AUTOCACHE_LOCAL_MAX

## COIN_AUTOCACHE_REMOTE_MIN

EnvironmentVariable COIN_AUTOCACHE_REMOTE_MIN

Can be used to change the enable-caching limit for remote rendering.

See also
  COIN_AUTOCACHE_REMOTE_MAX, COIN_AUTOCACHE_LOCAL_MIN

## COIN_AUTOCACHE_VBO_LIMIT

EnvironmentVariable COIN_AUTOCACHE_VBO_LIMIT

Can be used to avoid creating caches when rendering large VBOs.

## COIN_AUTO_CACHING

EnvironmentVariable COIN_AUTO_CACHING

If this environment variable is set to a value of 0, auto caching will be disabled. It is enabled by default.

## COIN_ENABLE_VBO

EnvironmentVariable COIN_ENABLE_VBO

## COIN_VBO

EnvironmentVariable COIN_VBO

If this environment variable is set to a value of 0, VBO rendering in Coin will be disabled. This is useful if you suspect bugs in either Coin's VBO code or in the OpenGL driver VBO handling.

## COIN_VBO_MAX_LIMIT

EnvironmentVariable COIN_VBO_MAX_LIMIT

Can be used to set the maximum number of items (coordinates, normals, texcoords or colors) allowed when creating a vertex buffer object. On most drivers it's actually slower to render large arrays with VBOs than with normal vertex array rendering.

The default value is 256000, and when the number of items exceeds this Coin will fall back to normal vertex array or immediate mode rendering.

See also
  COIN_VBO_MIN_LIMIT

## COIN_VBO_MIN_LIMIT

EnvironmentVariable COIN_VBO_MIN_LIMIT

Can be used to set the minimum number of items (coordinates, normals, texcoords or colors) allowed when creating a vertex buffer object. It's a bit of overhead setting up the VBOs and the VBO rendering, so we avoid doing this for very small arrays. The default value is 20.

See also
  COIN_VBO_MAX_LIMIT

## COIN_SOOFFSCREENRENDERER_ALLOW_RESOURCEHOG

EnvironmentVariable COIN_SOOFFSCREENRENDERER_ALLOW_RESOURCEHOG

Since the operation of context destruction and reconstruction has the potential to be such a costly operation (because GL caches are smashed, among other things), we try hard to avoid it by checking that if we already have a working GL context with size equal or larger to the requested size.

We also check if the current GL canvas is much larger than what is requested, as to then free up potentially large memory resources, even if we already have a large enough canvas.

By setting this environment variable to a value > 0, you can disable this behavior and keep the much larger GL canvas.

## SO_DRAGGER_DIR

EnvironmentVariable SO_DRAGGER_DIR

The appearance of draggers can be modified by setting this environment variable to point to a directory with external replacement geometry files in Inventor-format which the geometry parts are read from. The names of the new files and the names of the nodes / sub-graphs within the replacement geometries must follow a rigid scheme.

## SO_SHADER_DIR

EnvironmentVariable SO_SHADER_DIR

Set this environment variable to point to a directory that contains the referenced external .arb, .cg, .glsl shader files.

## COINDIR

EnvironmentVariable COINDIR

## COIN_ALLOW_SPIDERMONKEY

EnvironmentVariable COIN_ALLOW_SPIDERMONKEY

## COIN_CALCULATE_NURBS_NORMALS

EnvironmentVariable COIN_CALCULATE_NURBS_NORMALS

If this environment variable is set to a value > 0, normals will be calculated for the knots of a NURBS surface. This may greatly improve the rendering quality.

## COIN_CG_LIBNAME

EnvironmentVariable COIN_CG_LIBNAME

Set the system shared library name for the CG library.

## COIN_DEBUG_ASSERT_SOBASE_SETNAME

EnvironmentVariable COIN_DEBUG_ASSERT_SOBASE_SETNAME

## COIN_DEBUG_BINARY_INPUT

EnvironmentVariable COIN_DEBUG_BINARY_INPUT

## COIN_DEBUG_CLEANUP

EnvironmentVariable COIN_DEBUG_CLEANUP

## COIN_DEBUG_EXTRA

EnvironmentVariable COIN_DEBUG_EXTRA

## COIN_DEBUG_FLATTEN_NODEKITS_ON_WRITE

EnvironmentVariable COIN_DEBUG_FLATTEN_NODEKITS_ON_WRITE

## COIN_DEBUG_GLGLUE

EnvironmentVariable COIN_DEBUG_GLGLUE

If this environment variable is set to a value > 0, make the wrapper initialization spit out lots of info about the underlying OpenGL implementation.

## COIN_DEBUG_GLRENDER_TRAVERSAL

EnvironmentVariable COIN_DEBUG_GLRENDER_TRAVERSAL

## COIN_DEBUG_GLUNURBSSURFACE

EnvironmentVariable COIN_DEBUG_GLUNURBSSURFACE

## COIN_DEBUG_INTERSECTIONDETECTIONACTION

EnvironmentVariable COIN_DEBUG_INTERSECTIONDETECTIONACTION

## COIN_DEBUG_MUTEXLOCK_MAXTIME

EnvironmentVariable COIN_DEBUG_MUTEXLOCK_MAXTIME

## COIN_DEBUG_MUTEXLOCK_TIMING

EnvironmentVariable COIN_DEBUG_MUTEXLOCK_TIMING

## COIN_DEBUG_MUTEX_COUNT

const char* COIN_DEBUG_MUTEX_COUNT = "COIN_DEBUG_MUTEX_COUNT"

## COIN_DEBUG_NORMALIZE

EnvironmentVariable COIN_DEBUG_NORMALIZE

## COIN_DEBUG_NPRINTF

EnvironmentVariable COIN_DEBUG_NPRINTF

## COIN_DEBUG_NURBS_COMPLEXITY

EnvironmentVariable COIN_DEBUG_NURBS_COMPLEXITY

## COIN_DEBUG_ROOT_NOTIFICATIONS

EnvironmentVariable COIN_DEBUG_ROOT_NOTIFICATIONS

## COIN_DEBUG_SIMAGE

EnvironmentVariable COIN_DEBUG_SIMAGE

## COIN_DEBUG_SOEXTSELECTION

EnvironmentVariable COIN_DEBUG_SOEXTSELECTION

## COIN_DEBUG_SOFILE_READ

EnvironmentVariable COIN_DEBUG_SOFILE_READ

## COIN_DEBUG_SOOFFSCREENRENDERER_TILEPREFIX

EnvironmentVariable COIN_DEBUG_SOOFFSCREENRENDERER_TILEPREFIX

## COIN_DEBUG_SPIDERMONKEY_BINDING

EnvironmentVariable COIN_DEBUG_SPIDERMONKEY_BINDING

## COIN_DEBUG_STRING_GROW

EnvironmentVariable COIN_DEBUG_STRING_GROW

## COIN_DEBUG_TRACK_SOBASE_INSTANCES

EnvironmentVariable COIN_DEBUG_TRACK_SOBASE_INSTANCES

## COIN_DEBUG_VBO

EnvironmentVariable COIN_DEBUG_VBO

## COIN_DEBUG_VRMLSCRIPT

EnvironmentVariable COIN_DEBUG_VRMLSCRIPT

## COIN_FONTCONFIG_LIBNAME

EnvironmentVariable COIN_FONTCONFIG_LIBNAME

Set the system shared library name for the Fontconfig library.

## COIN_DONT_INFORM_INDIRECT_RENDERING

EnvironmentVariable COIN_DONT_INFORM_INDIRECT_RENDERING

## COIN_DONT_USE_FBO

EnvironmentVariable COIN_DONT_USE_FBO

## COIN_FORCE_AGL

EnvironmentVariable COIN_FORCE_AGL

If this environment variable is set to a value > 0, prefer using the old AGL bindings over CGL. Note that AGL is not available on 64-bit systems. The AGL code is not compiled into Coin by default, but must be enabled at configure-time using –enable-agl in addition to using this environment variable.

## COIN_FORCE_GL1_0_ONLY

EnvironmentVariable COIN_FORCE_GL1_0_ONLY

If this environment variable is set to a value > 0, disallow use of OpenGL1.1+ and extensions under all circumstances.

## COIN_FULL_INDIRECT_RENDERING

EnvironmentVariable COIN_FULL_INDIRECT_RENDERING

If this environment variable is set to a value > 0, let Coin take advantage of OpenGL1.1+ and extensions even when doing remote/indirect rendering.

## COIN_GLGLUE_DISABLE_NON_POWER_OF_TWO_TEXTURES

EnvironmentVariable COIN_GLGLUE_DISABLE_NON_POWER_OF_TWO_TEXTURES

of non power of two textures. ATi and Intel both have had problems with this feature, especially on old drivers. Newer drivers are known to work.

## COIN_GLGLUE_DISABLE_PALETTED_TEXTURE

EnvironmentVariable COIN_GLGLUE_DISABLE_PALETTED_TEXTURE

## COIN_GLGLUE_DISABLE_VBO_IN_DISPLAYLIST

EnvironmentVariable COIN_GLGLUE_DISABLE_VBO_IN_DISPLAYLIST

If this environment variable is set to a value > 0, disable the use of VBOs in display lists. Older ATI Windows/Linux drivers had a nasty bug which caused a crash in OpenGL whenever a VBO render call was added to a display list. Newer drivers are known to work.

## COIN_GLGLUE_NO_ELSA_WARNING

EnvironmentVariable COIN_GLGLUE_NO_ELSA_WARNING

If this environment variable is set to a value > 0, do not warn about incompatible ELSA TNT2 Vanta/PCI/SSE graphics driver.

## COIN_GLGLUE_NO_G400_WARNING

EnvironmentVariable COIN_GLGLUE_NO_G400_WARNING

If this environment variable is set to a value > 0, do not warn about incompatible Matrox G400 graphics driver.

## COIN_GLGLUE_NO_RADEON_WARNING

EnvironmentVariable COIN_GLGLUE_NO_RADEON_WARNING

If this environment variable is set to a value > 0, do not warn about incompatible Radeon 7500 DDR x86/SSE2 graphics driver.

## COIN_GLGLUE_NO_SUN_EXPERT3D_WARNING

EnvironmentVariable COIN_GLGLUE_NO_SUN_EXPERT3D_WARNING

If this environment variable is set to a value > 0, do not warn about incompatible Sun Expert3D, VIS graphics driver.

## COIN_GLGLUE_NO_TRIDENT_WARNING

EnvironmentVariable COIN_GLGLUE_NO_TRIDENT_WARNING

If this environment variable is set to a value > 0, do not warn about incompatible Trident Blade XP/AGP graphics driver.

## COIN_GLGLUE_SILENCE_DRIVER_WARNINGS

EnvironmentVariable COIN_GLGLUE_SILENCE_DRIVER_WARNINGS

If this environment variable is set to a value > 0, all known driver bugs will just be silently accepted and attempted to work around.

## COIN_GLU_SILENCE_TESS_COMBINE_WARNING

EnvironmentVariable COIN_GLU_SILENCE_TESS_COMBINE_WARNING

If this environment variable is set to a value > 0, polygons with intersecting edges (a "bow-tie" polygon, for instance) will not be warned about (according to the GLU docs, the tessellator will be ok, it just ignores those polygons and generates no output).

## COIN_GL_DISABLE_VBO

EnvironmentVariable COIN_GL_DISABLE_VBO

## COIN_GL_NO_CURRENT_CONTEXT_CHECK

EnvironmentVariable COIN_GL_NO_CURRENT_CONTEXT_CHECK

## COIN_HANDLE_STACK_OVERFLOW

EnvironmentVariable COIN_HANDLE_STACK_OVERFLOW

## COIN_NESTED_CACHING

EnvironmentVariable COIN_NESTED_CACHING

## COIN_NOT_STRICT_VRML97

EnvironmentVariable COIN_NOT_STRICT_VRML97

## COIN_NO_NVIDIA_COLOR_PER_FACE_BUG_WORKAROUND

EnvironmentVariable COIN_NO_NVIDIA_COLOR_PER_FACE_BUG_WORKAROUND

## COIN_NO_SOTYPE_DYNLOAD

EnvironmentVariable COIN_NO_SOTYPE_DYNLOAD

## COIN_OFFSCREEN_STENCIL_BITS

EnvironmentVariable COIN_OFFSCREEN_STENCIL_BITS

## COIN_OLD_NURBS_COMPLEXITY

EnvironmentVariable COIN_OLD_NURBS_COMPLEXITY

If this environment variable is set to a value > 0, the parametric tolerance for the sampling method of a NURBS surface or curve is set dependent on the size of their bounding box for both OBJECT_SPACE and SCREEN_SPACE sampling. If this environment variable is set to a value of 0, the parametric tolerance for the sampling method of a NURBS surface or curve is set dependent on their complexity value for both OBJECT_SPACE and SCREEN_SPACE sampling. If this environment variable is not set, the parametric tolerance for the sampling method of a NURBS surface or curve is set dependent on the size of their bounding box in SCREEN_SPACE and dependent on their complexity value in OBJECT_SPACE.

## COIN_PREFER_GLPOLYGONOFFSET_EXT

EnvironmentVariable COIN_PREFER_GLPOLYGONOFFSET_EXT

If this environment variable is set to a value > 0 and both glPolygonOffset() and glPolygonOffsetEXT() are available, the latter will be used. This can be useful to work around a problematic glPolygonOffset() implementation for certain SGI platforms.

## COIN_PREFER_GLU_TESSELLATOR

EnvironmentVariable COIN_PREFER_GLU_TESSELLATOR

If this environment variable is set to a value > 0, the GLU tessellator is used instead of Coin's own tessellator implementation. Try this if you are facing bugs with respect to triangulation of complex facesets.

## COIN_REDUCE_LINEAR_NURBS_STEPS

EnvironmentVariable COIN_REDUCE_LINEAR_NURBS_STEPS

## COIN_SMART_CACHING

EnvironmentVariable COIN_SMART_CACHING

If this environment variable is set to a value > 0, smart caching is enabled. That means the caches are updated less frequently dependent on the number of shapes.

## COIN_SPIDERMONKEY_LIBNAME

EnvironmentVariable COIN_SPIDERMONKEY_LIBNAME

Set the system shared library name for the SpiderMonkey library.

## COIN_VERTEX_ARRAYS

EnvironmentVariable COIN_VERTEX_ARRAYS

If this environment variable is set to a value of 0, vertex array rendering is disabled.

## COIN_VIEWUP

EnvironmentVariable COIN_VIEWUP

## WINDIR

EnvironmentVariable WINDIR

%WINDIR%/Fonts is always searched for fonts on Windows.