diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-10-09 17:36:36 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-10-09 17:36:36 +0300 |
commit | 6ec43a765b775960fd47df7ad450a521413012c0 (patch) | |
tree | a8860d79cc38e31cf476f11b704aa0dff0e65768 /source | |
parent | abcda06934aba054de8540b66b13c2bbc5f8f515 (diff) | |
parent | 4b3e6cb728cb5d0e603f3b23b32ad1f8bfc68558 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_vertex.c | 95 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_nodetree.c | 4 | ||||
-rw-r--r-- | source/creator/creator_args.c | 165 |
3 files changed, 143 insertions, 121 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index fd88ea2d15f..3fa1eda5d1e 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -149,6 +149,10 @@ static bool vwpaint_use_normal(const VPaint *vp) ((vp->paint.brush->flag & BRUSH_FRONTFACE_FALLOFF) != 0); } +static bool brush_use_accumulate(const Brush *brush) +{ + return (brush->flag & BRUSH_ACCUMULATE) != 0 || brush->vertexpaint_tool == PAINT_BLEND_SMEAR; +} static MDeformVert *defweight_prev_init(MDeformVert *dvert_prev, MDeformVert *dvert_curr, int index) { @@ -272,7 +276,7 @@ static uint vpaint_blend( uint color_blend = ED_vpaint_blend_tool(tool, color_curr, color_paint, alpha_i); /* if no accumulate, clip color adding with colorig & orig alpha */ - if ((brush->flag & BRUSH_ACCUMULATE) == 0) { + if (!brush_use_accumulate(brush)) { uint color_test, a; char *cp, *ct, *co; @@ -784,7 +788,7 @@ static void do_weight_paint_vertex_single( dw_mirr = NULL; } - if ((wp->paint.brush->flag & BRUSH_ACCUMULATE) == 0) { + if (!brush_use_accumulate(wp->paint.brush)) { MDeformVert *dvert_prev = ob->sculpt->mode.wpaint.dvert_prev; MDeformVert *dv_prev = defweight_prev_init(dvert_prev, me->dvert, index); if (index_mirr != -1) { @@ -900,7 +904,7 @@ static void do_weight_paint_vertex_multi( return; } - if ((wp->paint.brush->flag & BRUSH_ACCUMULATE) == 0) { + if (!brush_use_accumulate(wp->paint.brush)) { MDeformVert *dvert_prev = ob->sculpt->mode.wpaint.dvert_prev; MDeformVert *dv_prev = defweight_prev_init(dvert_prev, me->dvert, index); if (index_mirr != -1) { @@ -1031,7 +1035,7 @@ static void vertex_paint_init_session_data(const ToolSettings *ts, Object *ob) /* Create average brush arrays */ if (ob->mode == OB_MODE_VERTEX_PAINT) { - if ((brush->flag & BRUSH_ACCUMULATE) == 0) { + if (!brush_use_accumulate(brush)) { if (ob->sculpt->mode.vpaint.previous_color == NULL) { ob->sculpt->mode.vpaint.previous_color = MEM_callocN(me->totloop * sizeof(uint), __func__); @@ -1042,7 +1046,7 @@ static void vertex_paint_init_session_data(const ToolSettings *ts, Object *ob) } } else if (ob->mode == OB_MODE_WEIGHT_PAINT) { - if ((brush->flag & BRUSH_ACCUMULATE) == 0) { + if (!brush_use_accumulate(brush)) { if (ob->sculpt->mode.wpaint.alpha_weight == NULL) { ob->sculpt->mode.wpaint.alpha_weight = MEM_callocN(me->totvert * sizeof(float), __func__); @@ -1204,11 +1208,9 @@ struct WPaintData { int defbase_tot; - /* Special storage for smear brush, avoid feedback loop - update each step and swap. */ - struct { - float *weight_prev; - float *weight_curr; - } smear; + /* original weight values for use in blur/smear */ + float *precomputed_weight; + bool precomputed_weight_ready; }; /* Initialize the stroke cache invariants from operator properties */ @@ -1437,24 +1439,8 @@ static bool wpaint_stroke_test_start(bContext *C, wmOperator *op, const float mo wpd->mirror.lock = tmpflags; } - if (vp->paint.brush->vertexpaint_tool == PAINT_BLEND_SMEAR) { - wpd->smear.weight_prev = MEM_mallocN(sizeof(float) * me->totvert, __func__); - const MDeformVert *dv = me->dvert; - if (wpd->do_multipaint) { - const bool do_auto_normalize = ((ts->auto_normalize != 0) && (wpd->vgroup_validmap != NULL)); - for (int i = 0; i < me->totvert; i++, dv++) { - float weight = BKE_defvert_multipaint_collective_weight( - dv, wpd->defbase_tot, wpd->defbase_sel, wpd->defbase_tot_sel, do_auto_normalize); - CLAMP(weight, 0.0f, 1.0f); - wpd->smear.weight_prev[i] = weight; - } - } - else { - for (int i = 0; i < me->totvert; i++, dv++) { - wpd->smear.weight_prev[i] = defvert_find_weight(dv, wpd->active.index); - } - } - wpd->smear.weight_curr = MEM_dupallocN(wpd->smear.weight_prev); + if (ELEM(vp->paint.brush->vertexpaint_tool, PAINT_BLEND_SMEAR, PAINT_BLEND_BLUR)) { + wpd->precomputed_weight = MEM_mallocN(sizeof(float) * me->totvert, __func__); } /* imat for normals */ @@ -1512,6 +1498,33 @@ static float wpaint_get_active_weight(const MDeformVert *dv, const WeightPaintIn } } +static void do_wpaint_precompute_weight_cb_ex( + void *userdata, void *UNUSED(userdata_chunk), const int n, const int UNUSED(thread_id)) +{ + SculptThreadedTaskData *data = userdata; + const MDeformVert *dv = &data->me->dvert[n]; + + data->wpd->precomputed_weight[n] = wpaint_get_active_weight(dv, data->wpi); +} + +static void precompute_weight_values( + bContext *C, Object *ob, Brush *brush, struct WPaintData *wpd, WeightPaintInfo *wpi, Mesh *me) +{ + if (wpd->precomputed_weight_ready && !brush_use_accumulate(brush)) + return; + + /* threaded loop over vertices */ + SculptThreadedTaskData data = { + .C = C, .ob = ob, .wpd = wpd, .wpi = wpi, .me = me, + }; + + BLI_task_parallel_range_ex( + 0, me->totvert, &data, NULL, 0, do_wpaint_precompute_weight_cb_ex, + true, false); + + wpd->precomputed_weight_ready = true; +} + static void do_wpaint_brush_blur_task_cb_ex( void *userdata, void *UNUSED(userdata_chunk), const int n, const int UNUSED(thread_id)) { @@ -1560,8 +1573,7 @@ static void do_wpaint_brush_blur_task_cb_ex( for (int k = 0; k < mp->totloop; k++) { const int l_index = mp->loopstart + k; const MLoop *ml = &data->me->mloop[l_index]; - const MDeformVert *dv = &data->me->dvert[ml->v]; - weight_final += wpaint_get_active_weight(dv, data->wpi); + weight_final += data->wpd->precomputed_weight[ml->v]; } } @@ -1681,7 +1693,7 @@ static void do_wpaint_brush_smear_task_cb_ex( if (stroke_dot > stroke_dot_max) { stroke_dot_max = stroke_dot; - weight_final = data->wpd->smear.weight_prev[v_other_index]; + weight_final = data->wpd->precomputed_weight[v_other_index]; do_color = true; } } @@ -1693,12 +1705,13 @@ static void do_wpaint_brush_smear_task_cb_ex( const float final_alpha = brush_fade * brush_strength * grid_alpha * brush_alpha_pressure; + + if (final_alpha <= 0.0f) + continue; + do_weight_paint_vertex( data->vp, data->ob, data->wpi, v_index, final_alpha, (float)weight_final); - /* Access the weight again because it might not have been applied completely. */ - data->wpd->smear.weight_curr[v_index] = - wpaint_get_active_weight(&data->me->dvert[v_index], data->wpi); } } } @@ -2064,14 +2077,14 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P wpi.brush_alpha_value = brush_alpha_value; /* *** done setting up WeightPaintInfo *** */ + if (wpd->precomputed_weight) { + precompute_weight_values(C, ob, brush, wpd, &wpi, ob->data); + } + wpaint_do_symmetrical_brush_actions(C, ob, wp, sd, wpd, &wpi); swap_m4m4(vc->rv3d->persmat, mat); - if (wp->paint.brush->vertexpaint_tool == PAINT_BLEND_SMEAR) { - SWAP(float *, wpd->smear.weight_curr, wpd->smear.weight_prev); - } - /* calculate pivot for rotation around seletion if needed */ /* also needed for "View Selected" on last stroke */ paint_last_stroke_update(scene, vc->ar, mval); @@ -2121,10 +2134,8 @@ static void wpaint_stroke_done(const bContext *C, struct PaintStroke *stroke) MEM_freeN((void *)wpd->active.lock); if (wpd->mirror.lock) MEM_freeN((void *)wpd->mirror.lock); - if (wpd->smear.weight_prev) - MEM_freeN(wpd->smear.weight_prev); - if (wpd->smear.weight_curr) - MEM_freeN(wpd->smear.weight_curr); + if (wpd->precomputed_weight) + MEM_freeN(wpd->precomputed_weight); MEM_freeN(wpd); } diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 55ac8a32d80..29d68111bac 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -3740,7 +3740,7 @@ static const EnumPropertyItem sh_tex_prop_interpolation_items[] = { {SHD_INTERP_CLOSEST, "Closest", 0, "Closest", "No interpolation (sample closest texel)"}, {SHD_INTERP_CUBIC, "Cubic", 0, "Cubic", - "Cubic interpolation (CPU only)"}, + "Cubic interpolation"}, {SHD_INTERP_SMART, "Smart", 0, "Smart", "Bicubic when magnifying, else bilinear (OSL only)"}, {0, NULL, 0, NULL, NULL} @@ -4106,7 +4106,7 @@ static void def_sh_tex_pointdensity(StructRNA *srna) {SHD_INTERP_LINEAR, "Linear", 0, "Linear", "Linear interpolation"}, {SHD_INTERP_CUBIC, "Cubic", 0, "Cubic", - "Cubic interpolation (CPU only)"}, + "Cubic interpolation"}, {0, NULL, 0, NULL, NULL} }; diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c index c38f19397c3..841eef4c0e8 100644 --- a/source/creator/creator_args.c +++ b/source/creator/creator_args.c @@ -439,7 +439,7 @@ static void arg_py_context_restore( * \{ */ static const char arg_handle_print_version_doc[] = -"\n\tPrint Blender version and exit" +"\n\tPrint Blender version and exit." ; static int arg_handle_print_version(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -463,10 +463,10 @@ static int arg_handle_print_version(int UNUSED(argc), const char **UNUSED(argv), } static const char arg_handle_print_help_doc[] = -"\n\tPrint this help text and exit" +"\n\tPrint this help text and exit." ; static const char arg_handle_print_help_doc_win32[] = -"\n\tPrint this help text and exit (windows only)" +"\n\tPrint this help text and exit (windows only)." ; static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), void *data) { @@ -593,16 +593,16 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo printf("Argument Parsing:\n"); printf("\tArguments must be separated by white space, eg:\n"); printf("\t# blender -ba test.blend\n"); - printf("\t...will ignore the 'a'\n"); + printf("\t...will ignore the 'a'.\n"); printf("\t# blender -b test.blend -f8\n"); - printf("\t...will ignore '8' because there is no space between the '-f' and the frame value\n\n"); + printf("\t...will ignore '8' because there is no space between the '-f' and the frame value.\n\n"); printf("Argument Order:\n"); printf("\tArguments are executed in the order they are given. eg:\n"); printf("\t# blender --background test.blend --render-frame 1 --render-output '/tmp'\n"); - printf("\t...will not render to '/tmp' because '--render-frame 1' renders before the output path is set\n"); + printf("\t...will not render to '/tmp' because '--render-frame 1' renders before the output path is set.\n"); printf("\t# blender --background --render-output /tmp test.blend --render-frame 1\n"); - printf("\t...will not render to '/tmp' because loading the blend-file overwrites the render output that was set\n"); + printf("\t...will not render to '/tmp' because loading the blend-file overwrites the render output that was set.\n"); printf("\t# blender --background test.blend --render-output /tmp --render-frame 1\n"); printf("\t...works as expected.\n\n"); @@ -612,7 +612,7 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo printf(" $BLENDER_SYSTEM_SCRIPTS Directory for system wide scripts.\n"); printf(" $BLENDER_USER_DATAFILES Directory for user data files (icons, translations, ..).\n"); printf(" $BLENDER_SYSTEM_DATAFILES Directory for system wide data files.\n"); - printf(" $BLENDER_SYSTEM_PYTHON Directory for system python libraries.\n"); + printf(" $BLENDER_SYSTEM_PYTHON Directory for system Python libraries.\n"); #ifdef WIN32 printf(" $TEMP Store temporary files here.\n"); #else @@ -621,7 +621,7 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo #ifdef WITH_SDL printf(" $SDL_AUDIODRIVER LibSDL audio driver - alsa, esd, dma.\n"); #endif - printf(" $PYTHONHOME Path to the python directory, eg. /usr/lib/python.\n\n"); + printf(" $PYTHONHOME Path to the Python directory, eg. /usr/lib/python.\n\n"); exit(0); @@ -629,7 +629,7 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo } static const char arg_handle_arguments_end_doc[] = -"\n\tEnds option processing, following arguments passed unchanged. Access via Python's 'sys.argv'" +"\n\tEnd option processing, following arguments passed unchanged. Access via Python's 'sys.argv'." ; static int arg_handle_arguments_end(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -646,10 +646,10 @@ static int arg_handle_arguments_end(int UNUSED(argc), const char **UNUSED(argv), #endif static const char arg_handle_python_set_doc_enable[] = -"\n\tEnable automatic Python script execution" PY_ENABLE_AUTO +"\n\tEnable automatic Python script execution" PY_ENABLE_AUTO "." ; static const char arg_handle_python_set_doc_disable[] = -"\n\tDisable automatic Python script execution (pydrivers & startup scripts)" PY_DISABLE_AUTO +"\n\tDisable automatic Python script execution (pydrivers & startup scripts)" PY_DISABLE_AUTO "." ; #undef PY_ENABLE_AUTO #undef PY_DISABLE_AUTO @@ -667,7 +667,7 @@ static int arg_handle_python_set(int UNUSED(argc), const char **UNUSED(argv), vo } static const char arg_handle_crash_handler_disable_doc[] = -"\n\tDisable the crash handler" +"\n\tDisable the crash handler." ; static int arg_handle_crash_handler_disable(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -676,7 +676,7 @@ static int arg_handle_crash_handler_disable(int UNUSED(argc), const char **UNUSE } static const char arg_handle_abort_handler_disable_doc[] = -"\n\tDisable the abort handler" +"\n\tDisable the abort handler." ; static int arg_handle_abort_handler_disable(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -685,7 +685,7 @@ static int arg_handle_abort_handler_disable(int UNUSED(argc), const char **UNUSE } static const char arg_handle_background_mode_set_doc[] = -"\n\tRun in background (often used for UI-less rendering)" +"\n\tRun in background (often used for UI-less rendering)." ; static int arg_handle_background_mode_set(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -695,7 +695,7 @@ static int arg_handle_background_mode_set(int UNUSED(argc), const char **UNUSED( static const char arg_handle_debug_mode_set_doc[] = "\n" -"\tTurn debugging on\n" +"\tTurn debugging on.\n" "\n" "\t* Enables memory error detection\n" "\t* Disables mouse grab (to interact with a debugger in some cases)\n" @@ -720,30 +720,30 @@ static int arg_handle_debug_mode_set(int UNUSED(argc), const char **UNUSED(argv) #ifdef WITH_FFMPEG static const char arg_handle_debug_mode_generic_set_doc_ffmpeg[] = -"\n\tEnable debug messages from FFmpeg library"; +"\n\tEnable debug messages from FFmpeg library."; #endif #ifdef WITH_FREESTYLE static const char arg_handle_debug_mode_generic_set_doc_freestyle[] = -"\n\tEnable debug messages for FreeStyle"; +"\n\tEnable debug messages for FreeStyle."; #endif static const char arg_handle_debug_mode_generic_set_doc_python[] = -"\n\tEnable debug messages for Python"; +"\n\tEnable debug messages for Python."; static const char arg_handle_debug_mode_generic_set_doc_events[] = -"\n\tEnable debug messages for the event system"; +"\n\tEnable debug messages for the event system."; static const char arg_handle_debug_mode_generic_set_doc_handlers[] = -"\n\tEnable debug messages for event handling"; +"\n\tEnable debug messages for event handling."; static const char arg_handle_debug_mode_generic_set_doc_wm[] = -"\n\tEnable debug messages for the window manager, also prints every operator call"; +"\n\tEnable debug messages for the window manager, also prints every operator call."; static const char arg_handle_debug_mode_generic_set_doc_jobs[] = "\n\tEnable time profiling for background jobs."; static const char arg_handle_debug_mode_generic_set_doc_gpu[] = "\n\tEnable gpu debug context and information for OpenGL 4.3+."; static const char arg_handle_debug_mode_generic_set_doc_depsgraph[] = -"\n\tEnable debug messages from dependency graph"; +"\n\tEnable debug messages from dependency graph."; static const char arg_handle_debug_mode_generic_set_doc_depsgraph_no_threads[] = -"\n\tSwitch dependency graph to a single threaded evaluation"; +"\n\tSwitch dependency graph to a single threaded evaluation."; static const char arg_handle_debug_mode_generic_set_doc_gpumem[] = -"\n\tEnable GPU memory stats in status bar"; +"\n\tEnable GPU memory stats in status bar."; static int arg_handle_debug_mode_generic_set(int UNUSED(argc), const char **UNUSED(argv), void *data) { @@ -752,7 +752,7 @@ static int arg_handle_debug_mode_generic_set(int UNUSED(argc), const char **UNUS } static const char arg_handle_debug_mode_io_doc[] = -"\n\tEnable debug messages for I/O (collada, ...)"; +"\n\tEnable debug messages for I/O (collada, ...)."; static int arg_handle_debug_mode_io(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { G.debug |= G_DEBUG_IO; @@ -760,7 +760,7 @@ static int arg_handle_debug_mode_io(int UNUSED(argc), const char **UNUSED(argv), } static const char arg_handle_debug_mode_all_doc[] = -"\n\tEnable all debug messages"; +"\n\tEnable all debug messages."; static int arg_handle_debug_mode_all(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { G.debug |= G_DEBUG_ALL; @@ -775,7 +775,7 @@ static int arg_handle_debug_mode_all(int UNUSED(argc), const char **UNUSED(argv) #ifdef WITH_LIBMV static const char arg_handle_debug_mode_libmv_doc[] = -"\n\tEnable debug messages from libmv library" +"\n\tEnable debug messages from libmv library." ; static int arg_handle_debug_mode_libmv(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -787,7 +787,7 @@ static int arg_handle_debug_mode_libmv(int UNUSED(argc), const char **UNUSED(arg #ifdef WITH_CYCLES_LOGGING static const char arg_handle_debug_mode_cycles_doc[] = -"\n\tEnable debug messages from Cycles" +"\n\tEnable debug messages from Cycles." ; static int arg_handle_debug_mode_cycles(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -797,7 +797,7 @@ static int arg_handle_debug_mode_cycles(int UNUSED(argc), const char **UNUSED(ar #endif static const char arg_handle_debug_mode_memory_set_doc[] = -"\n\tEnable fully guarded memory allocation and debugging" +"\n\tEnable fully guarded memory allocation and debugging." ; static int arg_handle_debug_mode_memory_set(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -807,7 +807,7 @@ static int arg_handle_debug_mode_memory_set(int UNUSED(argc), const char **UNUSE static const char arg_handle_debug_value_set_doc[] = "<value>\n" -"\tSet debug value of <value> on startup\n" +"\tSet debug value of <value> on startup." ; static int arg_handle_debug_value_set(int argc, const char **argv, void *UNUSED(data)) { @@ -831,7 +831,7 @@ static int arg_handle_debug_value_set(int argc, const char **argv, void *UNUSED( } static const char arg_handle_debug_fpe_set_doc[] = -"\n\tEnable floating point exceptions" +"\n\tEnable floating point exceptions." ; static int arg_handle_debug_fpe_set(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -840,7 +840,7 @@ static int arg_handle_debug_fpe_set(int UNUSED(argc), const char **UNUSED(argv), } static const char arg_handle_factory_startup_set_doc[] = -"\n\tSkip reading the " STRINGIFY(BLENDER_STARTUP_FILE) " in the users home directory" +"\n\tSkip reading the " STRINGIFY(BLENDER_STARTUP_FILE) " in the users home directory." ; static int arg_handle_factory_startup_set(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -849,11 +849,11 @@ static int arg_handle_factory_startup_set(int UNUSED(argc), const char **UNUSED( } static const char arg_handle_env_system_set_doc_datafiles[] = -"\n\tSet the "STRINGIFY_ARG (BLENDER_SYSTEM_DATAFILES)" environment variable"; +"\n\tSet the "STRINGIFY_ARG (BLENDER_SYSTEM_DATAFILES)" environment variable."; static const char arg_handle_env_system_set_doc_scripts[] = -"\n\tSet the "STRINGIFY_ARG (BLENDER_SYSTEM_SCRIPTS)" environment variable"; +"\n\tSet the "STRINGIFY_ARG (BLENDER_SYSTEM_SCRIPTS)" environment variable."; static const char arg_handle_env_system_set_doc_python[] = -"\n\tSet the "STRINGIFY_ARG (BLENDER_SYSTEM_PYTHON)" environment variable"; +"\n\tSet the "STRINGIFY_ARG (BLENDER_SYSTEM_PYTHON)" environment variable."; static int arg_handle_env_system_set(int argc, const char **argv, void *UNUSED(data)) { @@ -879,13 +879,19 @@ static int arg_handle_env_system_set(int argc, const char **argv, void *UNUSED(d static const char arg_handle_playback_mode_doc[] = "<options> <file(s)>\n" -"\tPlayback <file(s)>, only operates this way when not running in background.\n" -"\t\t-p <sx> <sy>\tOpen with lower left corner at <sx>, <sy>\n" -"\t\t-m\t\tRead from disk (Do not buffer)\n" -"\t\t-f <fps> <fps-base>\t\tSpecify FPS to start with\n" -"\t\t-j <frame>\tSet frame step to <frame>\n" -"\t\t-s <frame>\tPlay from <frame>\n" -"\t\t-e <frame>\tPlay until <frame>" +"\tPlayback <file(s)>, only operates this way when not running in background.\n\n" +"\t-p <sx> <sy>\n" +"\t\tOpen with lower left corner at <sx>, <sy>.\n" +"\t-m\n" +"\t\tRead from disk (Do not buffer).\n" +"\t-f <fps> <fps-base>\n" +"\t\tSpecify FPS to start with.\n" +"\t-j <frame>\n" +"\t\tSet frame step to <frame>.\n" +"\t-s <frame>\n" +"\t\tPlay from <frame>.\n" +"\t-e <frame>\n" +"\t\tPlay until <frame>." ; static int arg_handle_playback_mode(int argc, const char **argv, void *UNUSED(data)) { @@ -905,7 +911,7 @@ static int arg_handle_playback_mode(int argc, const char **argv, void *UNUSED(da static const char arg_handle_window_geometry_doc[] = "<sx> <sy> <w> <h>\n" -"\tOpen with lower left corner at <sx>, <sy> and width and height as <w>, <h>" +"\tOpen with lower left corner at <sx>, <sy> and width and height as <w>, <h>." ; static int arg_handle_window_geometry(int argc, const char **argv, void *UNUSED(data)) { @@ -931,7 +937,7 @@ static int arg_handle_window_geometry(int argc, const char **argv, void *UNUSED( } static const char arg_handle_native_pixels_set_doc[] = -"\n\tDo not use native pixel size, for high resolution displays (MacBook 'Retina')" +"\n\tDo not use native pixel size, for high resolution displays (MacBook 'Retina')." ; static int arg_handle_native_pixels_set(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -940,7 +946,7 @@ static int arg_handle_native_pixels_set(int UNUSED(argc), const char **UNUSED(ar } static const char arg_handle_with_borders_doc[] = -"\n\tForce opening with borders" +"\n\tForce opening with borders." ; static int arg_handle_with_borders(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -949,7 +955,7 @@ static int arg_handle_with_borders(int UNUSED(argc), const char **UNUSED(argv), } static const char arg_handle_without_borders_doc[] = -"\n\tForce opening without borders" +"\n\tForce opening without borders." ; static int arg_handle_without_borders(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -960,7 +966,7 @@ static int arg_handle_without_borders(int UNUSED(argc), const char **UNUSED(argv extern bool wm_start_with_console; /* wm_init_exit.c */ static const char arg_handle_start_with_console_doc[] = -"\n\tStart with the console window open (ignored if -b is set), (Windows only)" +"\n\tStart with the console window open (ignored if -b is set), (Windows only)." ; static int arg_handle_start_with_console(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -969,10 +975,10 @@ static int arg_handle_start_with_console(int UNUSED(argc), const char **UNUSED(a } static const char arg_handle_register_extension_doc[] = -"\n\tRegister blend-file extension, then exit (Windows only)" +"\n\tRegister blend-file extension, then exit (Windows only)." ; static const char arg_handle_register_extension_doc_silent[] = -"\n\tSilently register blend-file extension, then exit (Windows only)" +"\n\tSilently register blend-file extension, then exit (Windows only)." ; static int arg_handle_register_extension(int UNUSED(argc), const char **UNUSED(argv), void *data) { @@ -987,7 +993,7 @@ static int arg_handle_register_extension(int UNUSED(argc), const char **UNUSED(a } static const char arg_handle_joystick_disable_doc[] = -"\n\tDisable joystick support" +"\n\tDisable joystick support." ; static int arg_handle_joystick_disable(int UNUSED(argc), const char **UNUSED(argv), void *data) { @@ -1008,7 +1014,7 @@ static int arg_handle_joystick_disable(int UNUSED(argc), const char **UNUSED(arg } static const char arg_handle_audio_disable_doc[] = -"\n\tForce sound system to None" +"\n\tForce sound system to None." ; static int arg_handle_audio_disable(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) { @@ -1017,7 +1023,7 @@ static int arg_handle_audio_disable(int UNUSED(argc), const char **UNUSED(argv), } static const char arg_handle_audio_set_doc[] = -"\n\tForce sound system to a specific device\n\tThe name is the same as found in the user preferences, e.g. OpenAL." +"\n\tForce sound system to a specific device.\n\t'NULL' 'SDL' 'OPENAL' 'JACK'." ; static int arg_handle_audio_set(int argc, const char **argv, void *UNUSED(data)) { @@ -1067,7 +1073,7 @@ static int arg_handle_output_set(int argc, const char **argv, void *data) static const char arg_handle_engine_set_doc[] = "<engine>\n" -"\tSpecify the render engine\n\tuse -E help to list available engines" +"\tSpecify the render engine.\n\tUse -E help to list available engines." ; static int arg_handle_engine_set(int argc, const char **argv, void *data) { @@ -1110,11 +1116,11 @@ static int arg_handle_engine_set(int argc, const char **argv, void *data) static const char arg_handle_image_type_set_doc[] = "<format>\n" -"\tSet the render format, Valid options are...\n" -"\t\tTGA RAWTGA JPEG IRIS IRIZ\n" -"\t\tAVIRAW AVIJPEG PNG BMP\n" -"\t(formats that can be compiled into blender, not available on all systems)\n" -"\t\tHDR TIFF EXR MULTILAYER MPEG FRAMESERVER CINEON DPX DDS JP2" +"\tSet the render format.\n" +"\tValid options are 'TGA' 'RAWTGA' 'JPEG' 'IRIS' 'IRIZ' 'AVIRAW' 'AVIJPEG' 'PNG' 'BMP'\n" +"\n" +"\tFormats that can be compiled into Blender, not available on all systems: 'HDR' 'TIFF' 'EXR' 'MULTILAYER'\n" +"\t'MPEG' 'FRAMESERVER' 'CINEON' 'DPX' 'DDS' 'JP2'" ; static int arg_handle_image_type_set(int argc, const char **argv, void *data) { @@ -1202,7 +1208,7 @@ static int arg_handle_verbosity_set(int argc, const char **argv, void *UNUSED(da static const char arg_handle_extension_set_doc[] = "<bool>\n" -"\tSet option to add the file extension to the end of the file" +"\tSet option to add the file extension to the end of the file." ; static int arg_handle_extension_set(int argc, const char **argv, void *data) { @@ -1234,10 +1240,15 @@ static int arg_handle_extension_set(int argc, const char **argv, void *data) static const char arg_handle_ge_parameters_set_doc[] = "Game Engine specific options\n" -"\t-g fixedtime\t\tRun on 50 hertz without dropping frames\n" -"\t-g vertexarrays\t\tUse Vertex Arrays for rendering (usually faster)\n" -"\t-g nomipmap\t\tNo Texture Mipmapping\n" -"\t-g linearmipmap\t\tLinear Texture Mipmapping instead of Nearest (default)" +"\n" +"\t'fixedtime'\n" +"\t\tRun on 50 hertz without dropping frames.\n" +"\t'vertexarrays'\n" +"\t\tUse Vertex Arrays for rendering (usually faster).\n" +"\t'nomipmap'\n" +"\t\tNo Texture Mipmapping.\n" +"\t'linearmipmap'\n" +"\t\tLinear Texture Mipmapping instead of Nearest (default)." ; static int arg_handle_ge_parameters_set(int argc, const char **argv, void *data) { @@ -1270,7 +1281,7 @@ static int arg_handle_ge_parameters_set(int argc, const char **argv, void *data) #endif } else { - printf("error: argument assignment (%s) without value.\n", paramname); + printf("Error: argument assignment (%s) without value.\n", paramname); return 0; } /* name arg eaten */ @@ -1361,7 +1372,7 @@ static int arg_handle_render_frame(int argc, const char **argv, void *data) } static const char arg_handle_render_animation_doc[] = -"\n\tRender frames from start to end (inclusive)" +"\n\tRender frames from start to end (inclusive)." ; static int arg_handle_render_animation(int UNUSED(argc), const char **UNUSED(argv), void *data) { @@ -1387,7 +1398,7 @@ static int arg_handle_render_animation(int UNUSED(argc), const char **UNUSED(arg static const char arg_handle_scene_set_doc[] = "<name>\n" -"\tSet the active scene <name> for rendering" +"\tSet the active scene <name> for rendering." ; static int arg_handle_scene_set(int argc, const char **argv, void *data) { @@ -1469,7 +1480,7 @@ static int arg_handle_frame_end_set(int argc, const char **argv, void *data) static const char arg_handle_frame_skip_set_doc[] = "<frames>\n" -"\tSet number of frames to step forward after each rendered frame" +"\tSet number of frames to step forward after each rendered frame." ; static int arg_handle_frame_skip_set(int argc, const char **argv, void *data) { @@ -1497,7 +1508,7 @@ static int arg_handle_frame_skip_set(int argc, const char **argv, void *data) static const char arg_handle_python_file_run_doc[] = "<filename>\n" -"\tRun the given Python script file" +"\tRun the given Python script file." ; static int arg_handle_python_file_run(int argc, const char **argv, void *data) { @@ -1525,14 +1536,14 @@ static int arg_handle_python_file_run(int argc, const char **argv, void *data) } #else UNUSED_VARS(argc, argv, data); - printf("This blender was built without python support\n"); + printf("This Blender was built without Python support\n"); return 0; #endif /* WITH_PYTHON */ } static const char arg_handle_python_text_run_doc[] = "<name>\n" -"\tRun the given Python script text block" +"\tRun the given Python script text block." ; static int arg_handle_python_text_run(int argc, const char **argv, void *data) { @@ -1566,14 +1577,14 @@ static int arg_handle_python_text_run(int argc, const char **argv, void *data) } #else UNUSED_VARS(argc, argv, data); - printf("This blender was built without python support\n"); + printf("This Blender was built without Python support\n"); return 0; #endif /* WITH_PYTHON */ } static const char arg_handle_python_expr_run_doc[] = "<expression>\n" -"\tRun the given expression as a Python script" +"\tRun the given expression as a Python script." ; static int arg_handle_python_expr_run(int argc, const char **argv, void *data) { @@ -1596,13 +1607,13 @@ static int arg_handle_python_expr_run(int argc, const char **argv, void *data) } #else UNUSED_VARS(argc, argv, data); - printf("This blender was built without python support\n"); + printf("This Blender was built without Python support\n"); return 0; #endif /* WITH_PYTHON */ } static const char arg_handle_python_console_run_doc[] = -"\n\tRun blender with an interactive console" +"\n\tRun Blender with an interactive console." ; static int arg_handle_python_console_run(int UNUSED(argc), const char **argv, void *data) { @@ -1614,7 +1625,7 @@ static int arg_handle_python_console_run(int UNUSED(argc), const char **argv, vo return 0; #else UNUSED_VARS(argv, data); - printf("This blender was built without python support\n"); + printf("This Blender was built without python support\n"); return 0; #endif /* WITH_PYTHON */ } @@ -1646,7 +1657,7 @@ static int arg_handle_python_exit_code_set(int argc, const char **argv, void *UN } static const char arg_handle_addons_set_doc[] = -"\n\tComma separated list of add-ons (no spaces)" +"\n\tComma separated list of add-ons (no spaces)." ; static int arg_handle_addons_set(int argc, const char **argv, void *data) { |