00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __UT_EnvControl__
00030 #define __UT_EnvControl__
00031
00032 #include "UT_API.h"
00033 #include <SYS/SYS_Types.h>
00034
00035 enum UT_IntControl {
00036
00037 ENV_HOUDINI_WINDOW_CONSOLE,
00038 ENV_HOUDINI_CONSOLE_LINES,
00039 ENV_HOUDINI_DISABLE_CONSOLE,
00040 ENV_HOUDINI_TEXT_CONSOLE,
00041 ENV_HOUDINI_VERBOSE_ERROR,
00042 ENV_HOUDINI_INTERRUPT_THRESH,
00043 ENV_HOUDINI_OLD_SPINNER,
00044 ENV_HOUDINI_HSERVER_PORT,
00045 ENV_HOUDINI_DISABLE_CPUID,
00046 ENV_HOUDINI_DISABLE_MMX,
00047 ENV_HOUDINI_DISABLE_XMMX,
00048 ENV_HOUDINI_DISABLE_SSE,
00049 ENV_HOUDINI_DISABLE_3DNOW,
00050 ENV_HOUDINI_OSX_SWAP_DEL_AND_BACKSPACE,
00051
00052
00053 ENV_HOUDINI_COREDUMP,
00054 ENV_HOUDINI_UI_COREDUMP,
00055 ENV_HOUDINI_SYSTRACE,
00056 ENV_HOUDINI_ENABLE_UNDO_LOG,
00057 ENV_HOUDINI_INTERRUPT_DEBUG,
00058 ENV_HOUDINI_NO_ASSERTS,
00059 ENV_HOUDINI_INTERACTIVE_ASSERTS,
00060 ENV_HOUDINI_ACCESS_METHOD,
00061
00062
00063 ENV_HOUDINI_NO_ENV_FILE_OVERRIDES,
00064 ENV_HOUDINI_NO_ENV_FILE,
00065
00066
00067 ENV_HOUDINI_DSO_ERROR,
00068 ENV_HOUDINI_CPP_EXPAND_PRAGMA,
00069
00070
00071 ENV_HOUDINI_TEX3D_USAGE,
00072
00073
00074 ENV_HOUDINI_CINEON_WHITE_POINT,
00075 ENV_HOUDINI_CINEON_BLACK_POINT,
00076 ENV_HOUDINI_CINEON_FULL_RANGE,
00077 ENV_HOUDINI_TIFF_SAMPLEFORMAT,
00078 ENV_HOUDINI_TIFF_BOTTOMLEFT,
00079 ENV_HOUDINI_DISABLE_IMAGE_DSO,
00080 ENV_HOUDINI_RAT_USAGE,
00081 ENV_HOUDINI_THREAD_IMAGE,
00082 ENV_HOUDINI_MDISPLAY_WAIT,
00083
00084 ENV_HOUDINI_MIP_READ,
00085 ENV_HOUDINI_FB_FILTER_ORIGINAL,
00086 ENV_HOUDINI_SOCKET_PORT,
00087 ENV_HOUDINI_AUDIT_IO,
00088 ENV_HOUDINI_OLD_RATS,
00089
00090
00091 ENV_HOUDINI_QTML_USE_GDI,
00092
00093
00094 ENV_HOUDINI_VEX_OLD_DERIV,
00095
00096 ENV_HOUDINI_VEX_URANDOM,
00097 ENV_HOUDINI_DISABLE_UNSAFE_VEX,
00098 ENV_HOUDINI_VEX_OPTIMIZER,
00099
00100
00101 ENV_HOUDINI_OVERRIDE_XRES,
00102 ENV_HOUDINI_OVERRIDE_YRES,
00103 ENV_HOUDINI_UISCALE,
00104 ENV_HOUDINI_OGL_SOFTWARE,
00105 ENV_HOUDINI_OGL_HARDWARE,
00106 ENV_HOUDINI_OGL_ERROR_CHECK,
00107 ENV_HOUDINI_OGL_ENABLE_PBUFFER,
00108 ENV_HOUDINI_OGL_OVERLAY_SUPPORT,
00109 ENV_HOUDINI_OGL_DISABLE_RASTER_IN_OVERLAY,
00110 ENV_HOUDINI_OGL_MARQUEE_FIX,
00111 ENV_HOUDINI_OGL_INT_RASTER_ZOOM_ONLY,
00112 ENV_HOUDINI_OGL_FAST_ORDER2,
00113 ENV_HOUDINI_OGL_ALPHA_PIXMAP,
00114 ENV_HOUDINI_OGL_ENABLE_TEXTURE_SEQUENCES,
00115 ENV_HOUDINI_OGL_DISABLE_FBO_RENDER_TO_TEXTURE,
00116 ENV_HOUDINI_OGL_DISABLE_FBO,
00117 ENV_HOUDINI_OGL_BITMAP_POINT_MARKERS,
00118 ENV_HOUDINI_OGL_ENABLE_SHADERS,
00119 ENV_HOUDINI_OGL_SHADOWMAP_SIZE,
00120
00121
00122 ENV_HOUDINI_HIP_FROM_PATH,
00123
00124
00125 ENV_HOUDINI_NO_EXPORT_RENAME,
00126 ENV_HOUDINI_SCRIPT_DEBUG,
00127 ENV_HOUDINI_COOK_MODE_THRESHOLD,
00128
00129
00130 ENV_HOUDINI_RMAN_CURVE_STEP,
00131
00132
00133 ENV_HOUDINI_GU_DEBUG,
00134
00135
00136 ENV_MANTRA_FORCE_RAY,
00137 ENV_MANTRA_NOFOGBOX,
00138 ENV_MANTRA_BIAS_NORMAL,
00139 ENV_MANTRA_DEBUGMEMORY,
00140
00141
00142 ENV_HOUDINI_HSVCOP_COMPAT,
00143 ENV_HOUDINI_COP_MOVIE_FAKEREAD,
00144
00145
00146 ENV_HOUDINI_RMAN_INCLUDE_FIX,
00147 ENV_HOUDINI_MI_DONT_FLIP_RMAP,
00148 ENV_HOUDINI_DISABLE_SOHO_SPOOLING,
00149
00150
00151 ENV_HOUDINI_DISABLE_SAVE_THUMB,
00152
00153
00154 ENV_HOUDINI_UI_DEBUG,
00155 ENV_HOUDINI_ENABLE_FPS_SCALE,
00156 ENV_HOUDINI_UI_QUEUE_SIZE,
00157 ENV_HOUDINI_UI_QUEUE_DEBUG,
00158 ENV_HOUDINI_X11_SYNCHRONOUS,
00159 ENV_HOUDINI_WRITE_BINARY_ICONS,
00160 ENV_HOUDINI_NO_SPLASH,
00161 ENV_HOUDINI_RASTER_DISPLAY_FIX,
00162 ENV_HOUDINI_ENABLE_LINUX_TABLET,
00163 ENV_HOUDINI_USE_NATIVE_FILE_CHOOSER,
00164 ENV_HOUDINI_MAX_FILE_HISTORY,
00165
00166
00167 ENV_HOUDINI_FPS,
00168
00169
00170 ENV_HOUDINI_PERFORMANCE_SIZE,
00171 ENV_HOUDINI_BUFFEREDSAVE,
00172 ENV_HOUDINI_HIPEXT,
00173 ENV_HOUDINI_ENABLE_OLD_PRESETS,
00174
00175
00176 ENV_HOUDINI_SKIP_NAME,
00177
00178
00179 ENV_HOUDINI_DISABLE_DISPLAYLIST,
00180 ENV_HOUDINI_DISPLAYLIST_DELAY,
00181
00182
00183 ENV_HOUDINI_DISABLE_POLYTESS_CACHE,
00184
00185
00186 ENV_HOUDINI_TOP_POS_SINGLE_PASS,
00187
00188
00189 ENV_HOUDINI_COP_TESTFRACTION,
00190 ENV_HOUDINI_ABEKAS_PAL_XRES,
00191 ENV_HOUDINI_ABEKAS_PAL_YRES,
00192 ENV_HOUDINI_IPLAY_IP,
00193
00194
00195 ENV_HOUDINI_NOHKEY,
00196 ENV_HOUDINI_NOHKEY_APPRENTICE,
00197
00198
00199 ENV_HOUDINI_CHOP_OLDNOISE,
00200
00201
00202 ENV_HOUDINI_FULL_SHADERSTRING,
00203
00204
00205 ENV_HOUDINI_RSL_HASHING,
00206
00207
00208 ENV_HOUDINI_NO_DEFAULT_SHELF_TOOLS,
00209
00210
00211 ENV_HOUDINI_CONDENSE_HIP,
00212
00213
00214 ENV_HOUDINI4_COMPATIBILITY,
00215 ENV_HOUDINI55_COMPATIBILITY,
00216 ENV_HOUDINI6_COMPATIBILITY,
00217 ENV_HOUDINI7_COMPATIBILITY,
00218 ENV_HOUDINI8_COMPATIBILITY,
00219 ENV_HOUDINI95_COMPATIBILITY,
00220
00221 ENV_HOUDINI6_FILTER_COMPATIBILITY,
00222 ENV_HOUDINI_MUV_ATTRIB_COMPATIBILITY,
00223 ENV_HOUDINI_SIMPLIFIED_NODE_NAMES,
00224
00225 ENV_HOUDINI_LMINFO_VERBOSE,
00226
00227
00228 ENV_HSCRIPT_NO_HISTORY,
00229 ENV_HSCRIPT_SAFEQUIT,
00230
00231 ENV_HOUDINI_OLD_CONST_BEHAVIOUR,
00232
00233
00234 ENV_HOUDINI_IRIX_OSTRSTREAM_MAX_SIZE,
00235
00236
00237
00238 ENV_HOUDINI_EXPERIMENTAL,
00239
00240
00241 ENV_HOUDINI_MAX_BACKUP_FILES,
00242
00243 ENV_HOUDINI_JITTERY_CAMERA,
00244
00245 ENV_HOUDINI_ERRORLOG_LEVEL,
00246
00247 ENV_HOUDINI_MAXTHREADS,
00248 ENV_HOUDINI_MAXSPUS,
00249
00250 ENV_HOUDINI_MMB_PAN,
00251 ENV_HOUDINI_INTERNAL_IGNORE_SIGNALS,
00252
00253 ENV_HOUDINI_EXTERNAL_HELP_BROWSER,
00254
00255 ENV_HOUDINI_CASE_SENSITIVE_FS,
00256
00257
00258
00259 ENV_HOUDINI_NODE_WIDTH,
00260
00261
00262
00263 ENV_HOUDINI_MAX_CACHED_FBX_SCENES,
00264 ENV_HOUDINI_NETEXCHANGE_HEARTBEAT,
00265
00266 ENV_HOUDINI_MAX_VOLUME_RES,
00267
00268 ENV_MAX_INT_CONTROLS
00269 };
00270
00271 enum UT_FltControl {
00272
00273 ENV_HOUDINI_GAUSS_EXP,
00274 ENV_HOUDINI_MITCHELL_B,
00275 ENV_HOUDINI_MITCHELL_C,
00276
00277
00278 ENV_HOUDINI_SYSTRACE_THRESH,
00279
00280
00281 ENV_HOUDINI_CINEON_FILM_GAMMA,
00282 ENV_HOUDINI_IMAGE_DISPLAY_GAMMA,
00283
00284
00285 ENV_HOUDINI_CHOP_LINE_WIDTH,
00286 ENV_HOUDINI_COLOR_PICKER_GAMMA,
00287 ENV_HOUDINI_LINUX_DOUBLE_CLICK_TIME,
00288
00289
00290 ENV_HOUDINI_LOD,
00291
00292
00293 ENV_HOUDINI_WF_GAMMA,
00294
00295
00296 ENV_HOUDINI_CHECK_XFORM,
00297
00298 ENV_MAX_FLT_CONTROLS
00299 };
00300
00301 enum UT_StrControl {
00302
00303 ENV_HOME,
00304 ENV_USER,
00305 ENV_EDITOR,
00306 ENV_VISUAL,
00307 ENV_SHELL,
00308 ENV_HFS,
00309 ENV_HOUDINI_OS,
00310 ENV_HOUDINI_TEMP_DIR,
00311 ENV_HOUDINI_DESKTOP_DIR,
00312 ENV_HOUDINI_UNDO_DIR,
00313 ENV_HOUDINI_MESSAGE_CMD,
00314 ENV_HOUDINI_CONFIRM_CMD,
00315 ENV_HOUDINI_ASSERT_CMD,
00316 ENV_HOUDINI_WEB_BROWSER_CMD,
00317
00318
00319 ENV_HOUDINI_SYSTRACE_FILENAME,
00320
00321
00322 ENV_HOUDINI_DEF_TEXTURE_COLOR,
00323
00324
00325 ENV_HOUDINI_DEFAULT_SURFACE,
00326 ENV_HOUDINI_DEFAULT_LIGHT,
00327 ENV_HOUDINI_DEFAULT_PHOTON,
00328 ENV_HOUDINI_DEFAULT_AMBIENT,
00329 ENV_HOUDINI_DEFAULT_MATTE,
00330 ENV_HOUDINI_DEFAULT_OGLSURF,
00331 ENV_HOUDINI_DEFAULT_OGLSEL,
00332 ENV_HOUDINI_DEFAULT_SHADOW,
00333
00334
00335 ENV_HOUDINI_OGL_DISABLE_SMOOTH_STIPPLED_LINES,
00336
00337
00338 ENV_HOUDINI_SCRIPT_LICENSE,
00339
00340
00341 ENV_HOUDINI_COPY_SUFFIX,
00342
00343
00344 ENV_HOUDINI_RMAN_CURVE_BASIS,
00345
00346
00347 ENV_HOUDINI_CINEON_RENDER_LUT,
00348 ENV_HOUDINI_CINEON_PREVIEW_LUT,
00349 ENV_HOUDINI_COP_DISKDEFAULT,
00350 ENV_HOUDINI_IMAGE_DISPLAY_LUT,
00351 ENV_HOUDINI_IMAGE_INSPECT_LUT,
00352
00353
00354 ENV_HOUDINI_UNITS,
00355
00356
00357 ENV_HOUDINI_MANTRA_SHADOW,
00358 ENV_HOUDINI_MANTRA_REFLECT,
00359 ENV_HOUDINI_RI_SHADERPATH,
00360 ENV_HOUDINI_RI_TEXTUREPATH,
00361 ENV_HOUDINI_RI_EYESPLITS,
00362
00363
00364 ENV_HOUDINI_FILE_VIEWER,
00365 ENV_HOUDINI_UI_PATH,
00366 ENV_HOUDINI_UI_RESOURCES,
00367 ENV_HOUDINI_UI_APP_PATH,
00368 ENV_HOUDINI_UI_AUDIO_PATH,
00369 ENV_HOUDINI_UI_CURSOR_PATH,
00370 ENV_HOUDINI_UI_ICON_PATH,
00371 ENV_HOUDINI_ICON_CACHE_DIR,
00372
00373
00374 ENV_HOUDINI_STPATH,
00375 ENV_HOUDINI_STEDIT,
00376
00377
00378 ENV_HOUDINI_CHOP_IMAGE,
00379
00380
00381 ENV_HOUDINI_DOUBLEBUFFER,
00382 ENV_HOUDINI_WORKSHEET_BOXPICK,
00383 ENV_HOUDINI_DEFOPTYPEPREFIX,
00384
00385
00386 ENV_HOUDINI_VRML_CONVERT,
00387 ENV_HOUDINI_VRML2_CONVERT,
00388 ENV_HOUDINI_ABEKAS_LOGIN_NAME,
00389 ENV_HOUDINI_ABEKAS_LOGIN_PASS,
00390 ENV_HOUDINI_MPLAY_WRITE_CMD,
00391 ENV_HOUDINI_MPLAY_FLIP_CMD,
00392 ENV_HOUDINI_MPLAY_LOCKPATH,
00393 ENV_HOUDINI_PLAY_WRITE_CMD,
00394 ENV_HOUDINI_PLAY_FLIP_CMD,
00395 ENV_HOUDINI_VIEW_METACAM,
00396
00397
00398 ENV_HOUDINI_PATH,
00399 ENV_HOUDINI_DSO_PATH,
00400 ENV_HOUDINI_IMAGE_DSO_PATH,
00401 ENV_HOUDINI_AUDIO_DSO_PATH,
00402 ENV_HOUDINI_OTL_PATH,
00403 ENV_HOUDINI_OPLIBRARIES_PATH,
00404 ENV_HOUDINI_OTLSCAN_PATH,
00405 ENV_HOUDINI_SCRIPT_PATH,
00406 ENV_HOUDINI_SOHO_PATH,
00407 ENV_HOUDINI_GALLERY_PATH,
00408 ENV_HOUDINI_DESKTOP_PATH,
00409 ENV_HOUDINI_MACRO_PATH,
00410 ENV_HOUDINI_TOOLBAR_PATH,
00411 ENV_HOUDINI_CUSTOM_PATH,
00412
00413 ENV_HOUDINI_TEXTURE_PATH,
00414 ENV_HOUDINI_GEOMETRY_PATH,
00415 ENV_HOUDINI_CLIP_PATH,
00416
00417 ENV_HOUDINI_VEX_PATH,
00418
00419 ENV_HOUDINI_GLSL_PATH,
00420
00421 ENV_HOUDINI_OUTLINEFONT_PATH,
00422
00423 ENV_HOUDINI_BACKUP_DIR,
00424
00425 ENV_HOUDINI_BACKUP_FILENAME,
00426 ENV_HOUDINI_AUTOSAVE_FILENAME,
00427
00428 ENV_HOUDINI_VIEW_MANTRA,
00429 ENV_HOUDINI_VIEW_RMAN,
00430 ENV_HOUDINI_DEFAULT_RIB_RENDERER,
00431 ENV_HOUDINI_RIBSHADER_DIR,
00432
00433 ENV_HOUDINI_THUMB_RENDER,
00434
00435
00436
00437 ENV_HSITE,
00438 ENV_JOB,
00439
00440 ENV_HOUDINI_ERRORLOG_FILENAME,
00441
00442 ENV_HOUDINI_SPLASH_MESSAGE,
00443
00444 ENV_MAX_STR_CONTROLS
00445 };
00446
00447 class UT_API UT_EnvControl {
00448 public:
00449 UT_EnvControl();
00450 ~UT_EnvControl();
00451
00452 static int getInt(UT_IntControl i)
00453 { return getControl().myIValues[i]; }
00454 static fpreal getFloat(UT_FltControl i)
00455 { return getControl().myFValues[i]; }
00456 static const char *getString(UT_StrControl i)
00457 { return getControl().mySValues[i]; }
00458
00459
00460 static const char *getIntVar(UT_IntControl i);
00461 static const char *getFloatVar(UT_FltControl i);
00462 static const char *getStringVar(UT_StrControl i);
00463
00464 static void setStringVar(UT_StrControl i, const char *value);
00465
00466
00467
00468 static const char *getOldIntVar(UT_IntControl i);
00469 static const char *getOldFloatVar(UT_FltControl i);
00470 static const char *getOldStringVar(UT_StrControl i);
00471
00472 static void varChanged(const char *varname);
00473
00474 static void initialize() { getControl().doInit(); }
00475
00476 private:
00477 void doInit();
00478 void setDefaults();
00479 void loadEnvironmentFile();
00480 void loadEnvironment();
00481
00482 int myIValues[ENV_MAX_INT_CONTROLS];
00483 float myFValues[ENV_MAX_FLT_CONTROLS];
00484 char *mySValues[ENV_MAX_STR_CONTROLS];
00485
00486 static UT_EnvControl &getControl()
00487 {
00488 if (!theControl)
00489 theControl = new UT_EnvControl();
00490 return *theControl;
00491 }
00492 static UT_EnvControl *theControl;
00493 };
00494
00495 #endif