/* If using BOINC try reading a few of the settings from the project * preferences. If command line arguments are used, those will * override the preferences. The command line arguments will also * still work without BOINC */ static void separationReadPreferences(SeparationPrefs* prefsOut) { static SeparationPrefs prefs; static MWProjectPrefs sepPrefs[] = { { "gpu_target_frequency", MW_PREF_DOUBLE, FALSE, &prefs.gpuTargetFrequency }, { "gpu_wait_factor", MW_PREF_DOUBLE, FALSE, &prefs.gpuWaitFactor }, { "gpu_non_responsive", MW_PREF_BOOL, FALSE, &prefs.gpuNonResponsive }, { "gpu_process_priority", MW_PREF_INT, FALSE, &prefs.gpuProcessPriority }, { "no_gpu_checkpoint", MW_PREF_BOOL, FALSE, &prefs.gpuDisableCheckpoint }, END_MW_PROJECT_PREFS }; prefs.gpuTargetFrequency = DEFAULT_TARGET_FREQUENCY; prefs.gpuWaitFactor = DEFAULT_WAIT_FACTOR; prefs.gpuNonResponsive = DEFAULT_NON_RESPONSIVE; prefs.gpuProcessPriority = DEFAULT_GPU_PRIORITY; prefs.gpuDisableCheckpoint = DEFAULT_DISABLE_GPU_CHECKPOINTING; if (BOINC_APPLICATION) { if (mwGetAppInitData()) { mw_printf("Error reading app init data. Project preferences will not be used\n"); } else { mwReadProjectPrefs(sepPrefs, mwGetProjectPrefs()); } } *prefsOut = prefs; }
static void nbglReadPreferences(VisArgs* args) { static struct { int blockSimulation; int noFloat; double floatSpeed; double texturedPointSize; double pointPointSize; int untexturedPoints; int monochromatic; int originCentered; int showAxes; int showOrbitTrace; int noShowInfo; } prefs; static MWProjectPrefs nbglPrefs[] = { { "block_simulation", MW_PREF_BOOL, FALSE, &prefs.blockSimulation }, { "no_float", MW_PREF_BOOL, FALSE, &prefs.noFloat }, { "float_speed", MW_PREF_DOUBLE, FALSE, &prefs.floatSpeed }, { "textured_point_size", MW_PREF_DOUBLE, FALSE, &prefs.texturedPointSize }, { "point_point_size", MW_PREF_DOUBLE, FALSE, &prefs.pointPointSize }, { "untextured_points", MW_PREF_BOOL, FALSE, &prefs.untexturedPoints }, { "monochromatic", MW_PREF_BOOL, FALSE, &prefs.monochromatic }, { "origin_centered", MW_PREF_BOOL, FALSE, &prefs.originCentered }, { "no_show_info", MW_PREF_BOOL, FALSE, &prefs.noShowInfo }, { "show_axes", MW_PREF_BOOL, FALSE, &prefs.showAxes }, { "show_orbit_trace", MW_PREF_BOOL, FALSE, &prefs.showOrbitTrace }, END_MW_PROJECT_PREFS }; if (mwGetAppInitData()) { mw_printf("Error reading app init data. Project preferences will not be used\n"); } else { mwReadProjectPrefs(nbglPrefs, mwGetProjectPrefs()); } /* Any successfully found setting will be used; otherwise it will get the default */ args->blockSimulation = prefs.blockSimulation; args->noFloat = prefs.noFloat; args->floatSpeed = (float) prefs.floatSpeed; args->texturedPointSize = (float) prefs.texturedPointSize; args->pointPointSize = (float) prefs.pointPointSize; args->untexturedPoints = prefs.untexturedPoints; args->monochromatic = prefs.monochromatic; args->originCentered = prefs.originCentered; args->noDrawInfo = prefs.noShowInfo; args->drawAxes = prefs.showAxes; args->drawOrbitTrace = prefs.showOrbitTrace; }