[Bf-blender-cvs] [181b44d76a0] soc-2019-npr: LANPR: Fixing chained line normal value errors.
Commit: 181b44d76a0251a18b497616646230b00e3b4b95 Author: YimingWu Date: Mon Aug 5 11:22:22 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB181b44d76a0251a18b497616646230b00e3b4b95 LANPR: Fixing chained line normal value errors. === M source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl M source/blender/editors/lanpr/lanpr_chain.c === diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl index 004028a94cc..6db3e4fa5c9 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl @@ -200,7 +200,7 @@ void decide_line_style(int component_id) if (component_id == 0) { out_color = contour_color; -use_thickness = th * enable_contour; +use_thickness = th * thickness_contour * enable_contour; return; } if (component_id == 1) { diff --git a/source/blender/editors/lanpr/lanpr_chain.c b/source/blender/editors/lanpr/lanpr_chain.c index 1632a4022e6..75aa19dcd95 100644 --- a/source/blender/editors/lanpr/lanpr_chain.c +++ b/source/blender/editors/lanpr/lanpr_chain.c @@ -240,18 +240,18 @@ void ED_lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb) while (ba && (new_rl = lanpr_get_connected_render_line(ba, new_rv, _rv, rl->flags))) { new_rl->flags |= LANPR_EDGE_FLAG_CHAIN_PICKED; - N[0] = N[1] = N[2] = 0; - if (new_rl->tl) { -N[0] += new_rl->tl->gn[0]; -N[1] += new_rl->tl->gn[1]; -N[2] += new_rl->tl->gn[2]; - } - if (new_rl->tr) { -N[0] += new_rl->tr->gn[0]; -N[1] += new_rl->tr->gn[1]; -N[2] += new_rl->tr->gn[2]; - } - if (rl->tl || rl->tr) { + if (new_rl->tl || new_rl->tr) { +zero_v3(N); +if (new_rl->tl) { + N[0] += new_rl->tl->gn[0]; + N[1] += new_rl->tl->gn[1]; + N[2] += new_rl->tl->gn[2]; +} +if (new_rl->tr) { + N[0] += new_rl->tr->gn[0]; + N[1] += new_rl->tr->gn[1]; + N[2] += new_rl->tr->gn[2]; +} normalize_v3(N); } @@ -338,6 +338,21 @@ void ED_lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb) while (ba && (new_rl = lanpr_get_connected_render_line(ba, new_rv, _rv, rl->flags))) { new_rl->flags |= LANPR_EDGE_FLAG_CHAIN_PICKED; + if (new_rl->tl || new_rl->tr) { +zero_v3(N); +if (new_rl->tl) { + N[0] += new_rl->tl->gn[0]; + N[1] += new_rl->tl->gn[1]; + N[2] += new_rl->tl->gn[2]; +} +if (new_rl->tr) { + N[0] += new_rl->tr->gn[0]; + N[1] += new_rl->tr->gn[1]; + N[2] += new_rl->tr->gn[2]; +} +normalize_v3(N); + } + /* fix leading vertex type */ rlci = rlc->chain.last; rlci->line_type = new_rl->flags & LANPR_EDGE_FLAG_ALL_TYPE; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [8b4f00269c9] master: UI: rename rotate to orbit for viewport sensitivity
Commit: 8b4f00269c91cff040792717122d959392141ad3 Author: Campbell Barton Date: Mon Aug 5 13:07:55 2019 +1000 Branches: master https://developer.blender.org/rB8b4f00269c91cff040792717122d959392141ad3 UI: rename rotate to orbit for viewport sensitivity Matches names of related preferences. === M source/blender/makesrna/intern/rna_userdef.c === diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index e649a95fb06..bed06171cbf 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -5236,14 +5236,14 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_property_float_default(prop, DEG2RADF(0.4f)); RNA_def_property_ui_range(prop, DEG2RADF(0.001f), DEG2RADF(15.0f), 1.0f, 2); RNA_def_property_ui_text(prop, - "Rotate Sensitivity", - "Rotation amount per-pixel to control how fast the viewport rotates"); + "Orbit Sensitivity", + "Rotation amount per-pixel to control how fast the viewport orbits"); prop = RNA_def_property(srna, "view_rotate_sensitivity_trackball", PROP_FLOAT, PROP_FACTOR); RNA_def_property_range(prop, 0.1f, 10.0f); RNA_def_property_float_default(prop, 1.0f); RNA_def_property_ui_range(prop, 0.1f, 2.0f, 0.01f, 2); - RNA_def_property_ui_text(prop, "Rotate Sensitivity", "Scale trackball rotation sensitivity"); + RNA_def_property_ui_text(prop, "Orbit Sensitivity", "Scale trackball orbit sensitivity"); /* tweak tablet & mouse preset */ prop = RNA_def_property(srna, "drag_threshold_mouse", PROP_INT, PROP_PIXEL); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [5462908a296] soc-2019-npr: LANPR: Add checkbox to normal controlled line weight.
Commit: 5462908a2962bb30867b5ece161ea3a0f88640ed Author: YimingWu Date: Mon Aug 5 10:48:43 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB5462908a2962bb30867b5ece161ea3a0f88640ed LANPR: Add checkbox to normal controlled line weight. === M release/scripts/startup/bl_ui/properties_render.py M source/blender/draw/engines/lanpr/lanpr_cpu.c M source/blender/editors/lanpr/lanpr_cpu.c M source/blender/makesdna/DNA_lanpr_types.h M source/blender/makesrna/intern/rna_lanpr.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 12577e78146..ff13da1f977 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -897,10 +897,9 @@ class RENDER_PT_lanpr_line_normal_effects(RenderButtonsPanel, Panel): active_layer = lanpr.layers.active_layer return scene.render.engine=="BLENDER_LANPR" and active_layer and lanpr.master_mode == "SOFTWARE" -# sub panel doesn't support this? -#def draw_header(self, context): -#active_layer = lanpr.layers.active_layer -#self.layout.prop(context.scene.lanpr, "enabled", text="") +def draw_header(self, context): +active_layer = context.scene.lanpr.layers.active_layer +self.layout.prop(active_layer, "normal_enabled", text="") def draw(self, context): scene = context.scene diff --git a/source/blender/draw/engines/lanpr/lanpr_cpu.c b/source/blender/draw/engines/lanpr/lanpr_cpu.c index 6d2d49eac15..be4f1668044 100644 --- a/source/blender/draw/engines/lanpr/lanpr_cpu.c +++ b/source/blender/draw/engines/lanpr/lanpr_cpu.c @@ -161,9 +161,10 @@ void ED_lanpr_rebuild_all_command(SceneLANPR *lanpr) void ED_lanpr_calculate_normal_object_vector(LANPR_LineLayer *ll, float *normal_object_direction) { Object *ob; + if(!ll->normal_enabled){ +return; + } switch (ll->normal_mode) { -case LANPR_NORMAL_DONT_CARE: - return; case LANPR_NORMAL_DIRECTIONAL: if (!(ob = ll->normal_control_object)) { normal_object_direction[0] = 0; @@ -217,6 +218,7 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) float clear_depth = 1.0f; uint clear_stencil = 0xFF; eGPUFrameBufferBits clear_bits = GPU_DEPTH_BIT | GPU_COLOR_BIT; + static int zero_value = 0; if (lanpr->use_world_background) { copy_v3_v3(use_background_color, >world->horr); @@ -327,7 +329,7 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) DRW_shgroup_uniform_int( rb->ChainShgrp, "enable_intersection", >intersection.enabled, 1); -DRW_shgroup_uniform_int(rb->ChainShgrp, "normal_mode", >normal_mode, 1); +DRW_shgroup_uniform_int(rb->ChainShgrp, "normal_mode", ll->normal_enabled?>normal_mode:_value, 1); DRW_shgroup_uniform_int( rb->ChainShgrp, "normal_effect_inverse", >normal_effect_inverse, 1); DRW_shgroup_uniform_float(rb->ChainShgrp, "normal_ramp_begin", >normal_ramp_begin, 1); @@ -427,7 +429,7 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) DRW_shgroup_uniform_vec4(ll->shgrp, "preview_viewport", stl->g_data->dpix_viewport, 1); DRW_shgroup_uniform_vec4(ll->shgrp, "output_viewport", stl->g_data->output_viewport, 1); - DRW_shgroup_uniform_int(ll->shgrp, "normal_mode", >normal_mode, 1); + DRW_shgroup_uniform_int(ll->shgrp, "normal_mode", ll->normal_enabled?>normal_mode:_value, 1); DRW_shgroup_uniform_int( ll->shgrp, "normal_effect_inverse", >normal_effect_inverse, 1); DRW_shgroup_uniform_float(ll->shgrp, "normal_ramp_begin", >normal_ramp_begin, 1); diff --git a/source/blender/editors/lanpr/lanpr_cpu.c b/source/blender/editors/lanpr/lanpr_cpu.c index 1085dac6685..514d918fd0d 100644 --- a/source/blender/editors/lanpr/lanpr_cpu.c +++ b/source/blender/editors/lanpr/lanpr_cpu.c @@ -150,6 +150,8 @@ LANPR_LineLayer *ED_lanpr_new_line_layer(SceneLANPR *lanpr) ll->normal_ramp_begin = 0.0f; ll->normal_ramp_end = 1.0f; + ll->normal_mode = LANPR_NORMAL_DIRECTIONAL; + lanpr->active_layer = ll; BLI_addtail(>line_layers, ll); diff --git a/source/blender/makesdna/DNA_lanpr_types.h b/source/blender/makesdna/DNA_lanpr_types.h index 317af82d911..1add9bd61d7 100644 --- a/source/blender/makesdna/DNA_lanpr_types.h +++ b/source/blender/makesdna/DNA_lanpr_types.h @@ -46,7 +46,8 @@ typedef enum LANPR_TaperSettings { } LANPR_TaperSettings; typedef enum LANPR_NomalEffect { - LANPR_NORMAL_DONT_CARE = 0, + /* Shouldn't have access to zero value. */ + /* Enable/disable is another flag. */ LANPR_NORMAL_DIRECTIONAL = 1, LANPR_NORMAL_POINT = 2, }
[Bf-blender-cvs] [cd02fe5d705] master: Cleanup: remove underscore prefix for used vars
Commit: cd02fe5d70506539800c50544dc75a9ae1c72b9d Author: Campbell Barton Date: Mon Aug 5 12:47:55 2019 +1000 Branches: master https://developer.blender.org/rBcd02fe5d70506539800c50544dc75a9ae1c72b9d Cleanup: remove underscore prefix for used vars Also remove unused vars. === M release/scripts/startup/bl_ui/space_clip.py M release/scripts/startup/bl_ui/space_text.py M release/scripts/startup/bl_ui/space_topbar.py === diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index ff2dfca6cf8..37c76bf327c 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -1442,10 +1442,10 @@ class CLIP_MT_tracking_context_menu(Menu): def poll(cls, context): return context.space_data.clip -def draw(self, _context): +def draw(self, context): layout = self.layout -mode = _context.space_data.mode +mode = context.space_data.mode if mode == 'TRACKING': diff --git a/release/scripts/startup/bl_ui/space_text.py b/release/scripts/startup/bl_ui/space_text.py index 534561efab4..7a50b690ad8 100644 --- a/release/scripts/startup/bl_ui/space_text.py +++ b/release/scripts/startup/bl_ui/space_text.py @@ -129,10 +129,10 @@ class TEXT_PT_properties(Panel): flow.active = False row = flow.row(align=True) st = context.space_data -row.prop(st, "show_margin", text = "Margin") +row.prop(st, "show_margin", text="Margin") rowsub = row.row() rowsub.active = st.show_margin -rowsub.prop(st, "margin_column", text = "") +rowsub.prop(st, "margin_column", text="") flow.prop(st, "font_size") flow.prop(st, "tab_width") @@ -285,8 +285,6 @@ class TEXT_MT_format(Menu): def draw(self, _context): layout = self.layout -st = _context.space_data -text = st.text layout.operator("text.indent") layout.operator("text.unindent") @@ -321,12 +319,11 @@ class TEXT_MT_edit(Menu): @classmethod def poll(cls, context): -return (context.space_data.text) +return context.space_data.text is not None -def draw(self, _context): +def draw(self, context): layout = self.layout -st = _context.space_data -text = st.text +st = context.space_data layout.operator("ed.undo") layout.operator("ed.redo") @@ -369,8 +366,6 @@ class TEXT_MT_toolbox(Menu): def draw(self, _context): layout = self.layout -st = _context.space_data -text = st.text layout.operator_context = 'INVOKE_DEFAULT' diff --git a/release/scripts/startup/bl_ui/space_topbar.py b/release/scripts/startup/bl_ui/space_topbar.py index a3382908ea1..f735e7b770f 100644 --- a/release/scripts/startup/bl_ui/space_topbar.py +++ b/release/scripts/startup/bl_ui/space_topbar.py @@ -154,10 +154,10 @@ class TOPBAR_MT_editor_menus(Menu): bl_idname = "TOPBAR_MT_editor_menus" bl_label = "" -def draw(self, _context): +def draw(self, context): layout = self.layout -if _context.area.show_menus: +if context.area.show_menus: layout.menu("TOPBAR_MT_app", text="", icon='BLENDER') else: layout.menu("TOPBAR_MT_app", text="Blender") ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [f69ea92599a] master: Cleanup: add braces
Commit: f69ea92599aaf032276cc519f8bccd0a66ac30a5 Author: Campbell Barton Date: Mon Aug 5 12:33:00 2019 +1000 Branches: master https://developer.blender.org/rBf69ea92599aaf032276cc519f8bccd0a66ac30a5 Cleanup: add braces === M source/blender/editors/gpencil/gpencil_ops.c === diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c index d259bb9183c..a1645a5c67d 100644 --- a/source/blender/editors/gpencil/gpencil_ops.c +++ b/source/blender/editors/gpencil/gpencil_ops.c @@ -81,12 +81,14 @@ static bool gp_stroke_paintmode_poll_with_tool(bContext *C, const char gpencil_t { /* TODO: limit this to mode, but review 2D editors */ bGPdata *gpd = CTX_data_gpencil_data(C); - if (!gpd) + if (!gpd) { return false; + } ToolSettings *ts = CTX_data_tool_settings(C); - if (!ts || !ts->gp_paint) + if (!ts || !ts->gp_paint) { return false; + } Brush *brush = BKE_paint_brush(>gp_paint->paint); return ((gpd->flag & GP_DATA_STROKE_PAINTMODE) && (brush && brush->gpencil_settings) && ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [8621c634a92] soc-2019-npr: LANPR: Default values for normal style.
Commit: 8621c634a92714e4449d13eeebdbdcd1813a4d91 Author: YimingWu Date: Mon Aug 5 10:17:08 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB8621c634a92714e4449d13eeebdbdcd1813a4d91 LANPR: Default values for normal style. === M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/editors/lanpr/lanpr_cpu.c M source/blender/makesdna/DNA_lanpr_types.h === diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 75136e929f4..95df026f91a 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -725,18 +725,16 @@ DrawEngineType draw_engine_lanpr_type = { NULL, NULL, N_("LANPR"), -_data_size, /* why should we have the "&" ? */ +_data_size, _engine_init, _engine_free, _cache_init, _cache_populate, _cache_finish, NULL, /* draw background */ -_draw_scene, /* draw scene, looks like that not much difference except a camera overlay -*/ - /* image. */ +_draw_scene, /* draw scene */ _view_update, -_id_update, /* _id_update, wait till I figure out how to do this. */ +_id_update, _render_to_image, }; @@ -749,7 +747,7 @@ RenderEngineType DRW_engine_viewport_lanpr_type = { NULL, /* update */ _render_to_image, /* render to img */ NULL, /* bake */ -NULL, /* doesn't seem to be what I thought it was... _view_update,// view update */ +NULL, /* view update */ NULL, /* render to view */ NULL, /* update in script */ NULL, /* update in render pass */ diff --git a/source/blender/editors/lanpr/lanpr_cpu.c b/source/blender/editors/lanpr/lanpr_cpu.c index ae5d6a7ff3e..1085dac6685 100644 --- a/source/blender/editors/lanpr/lanpr_cpu.c +++ b/source/blender/editors/lanpr/lanpr_cpu.c @@ -145,6 +145,11 @@ LANPR_LineLayer *ED_lanpr_new_line_layer(SceneLANPR *lanpr) ll->edge_mark.enabled = 1; ll->intersection.enabled = 1; + ll->normal_thickness_begin = 0.2f; + ll->normal_thickness_end = 1.5f; + ll->normal_ramp_begin = 0.0f; + ll->normal_ramp_end = 1.0f; + lanpr->active_layer = ll; BLI_addtail(>line_layers, ll); diff --git a/source/blender/makesdna/DNA_lanpr_types.h b/source/blender/makesdna/DNA_lanpr_types.h index d0140fbddb0..317af82d911 100644 --- a/source/blender/makesdna/DNA_lanpr_types.h +++ b/source/blender/makesdna/DNA_lanpr_types.h @@ -95,9 +95,10 @@ typedef struct LANPR_LineLayer { int use_multiple_levels; int qi_begin; - int qi_end; /* these are for QI Range thing... just occlusion levels */ + int qi_end; - char name[64]; /* to be displayed on the list */ + /** To be displayed on the list */ + char name[64]; LANPR_LineType contour; LANPR_LineType crease; @@ -119,13 +120,12 @@ typedef struct LANPR_LineLayer { float normal_thickness_end; struct Object *normal_control_object; - int logic_mode; /* for component evaluation */ + /** For component evaluation */ + int logic_mode; int _pad2; ListBase components; - // still need legacy mode - // should use runtime pointer struct DRWShadingGroup *shgrp; struct GPUBatch *batch; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [51cc9d8fdfd] soc-2019-npr: Cleanup: comment format in two headers.
Commit: 51cc9d8fdfd77b86796d11d0b3ac8401a0b6581e Author: YimingWu Date: Mon Aug 5 08:47:20 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB51cc9d8fdfd77b86796d11d0b3ac8401a0b6581e Cleanup: comment format in two headers. === M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/editors/include/ED_lanpr.h === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 426c3449332..ff0b7ec25d0 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -71,7 +71,7 @@ extern struct DrawEngineType draw_engine_lanpr_type; typedef struct LANPR_RenderBuffer LANPR_RenderBuffer; typedef struct LANPR_PassList { - /* Snake */ + /* Image filtering */ struct DRWPass *depth_pass; struct DRWPass *color_pass; struct DRWPass *normal_pass; @@ -79,7 +79,7 @@ typedef struct LANPR_PassList { struct DRWPass *edge_thinning; struct DRWPass *snake_pass; - /* DPIX */ + /* GPU */ struct DRWPass *dpix_transform_pass; struct DRWPass *dpix_preview_pass; @@ -90,16 +90,16 @@ typedef struct LANPR_PassList { typedef struct LANPR_FramebufferList { - /* Snake */ + /* CPU */ struct GPUFrameBuffer *passes; struct GPUFrameBuffer *edge_intermediate; struct GPUFrameBuffer *edge_thinning; - /* DPIX */ + /* GPU */ struct GPUFrameBuffer *dpix_transform; struct GPUFrameBuffer *dpix_preview; - /* Software */ + /* Image filtering */ struct GPUFrameBuffer *software_ms; } LANPR_FramebufferList; @@ -111,18 +111,21 @@ typedef struct LANPR_TextureList { struct GPUTexture *depth; struct GPUTexture *edge_intermediate; - struct GPUTexture *dpix_in_pl;/* point l */ - struct GPUTexture *dpix_in_pr;/* point r */ - struct GPUTexture *dpix_in_nl;/* normal l */ - struct GPUTexture *dpix_in_nr;/* normal r */ - struct GPUTexture *dpix_in_edge_mask; /* RGBA, r:Material, G: Freestyle Edge Mark, BA:Reserved - for future usage */ + struct GPUTexture *dpix_in_pl; + struct GPUTexture *dpix_in_pr; + struct GPUTexture *dpix_in_nl; + struct GPUTexture *dpix_in_nr; + + /** RGBA texture format, + * R:Material, G: Freestyle Edge Mark, + * BA:Reserved for future usages */ + struct GPUTexture *dpix_in_edge_mask; struct GPUTexture *dpix_out_pl; struct GPUTexture *dpix_out_pr; struct GPUTexture *dpix_out_length; - /* multisample resolve */ + /** Multisample resolve */ struct GPUTexture *ms_resolve_depth; struct GPUTexture *ms_resolve_color; @@ -139,7 +142,7 @@ typedef struct LANPR_PrivateData { DRWShadingGroup *debug_shgrp; - /* snake */ + /* Image filtering */ float normal_clamp; float normal_strength; @@ -149,18 +152,21 @@ typedef struct LANPR_PrivateData { float zfar; float znear; - int stage; /* thinning */ + /** Thinning stage */ + int stage; float *line_result; unsigned char *line_result_8bit; - int width, height; /* if not match recreate buffer. */ + + /** If not match then recreate buffer. */ + int width, height; void **sample_table; ListBase pending_samples; ListBase erased_samples; ListBase line_strips; - /* dpix data */ + /* dpix data */ void *atlas_pl; void *atlas_pr; @@ -180,7 +186,7 @@ typedef struct LANPR_PrivateData { float dpix_znear; float dpix_zfar; - /* drawing */ + /* drawing */ unsigned v_buf; unsigned i_buf; @@ -211,8 +217,6 @@ typedef struct LANPR_Data { /* functions */ -/* dpix */ - void lanpr_init_atlas_inputs(void *ved); void lanpr_destroy_atlas(void *ved); int lanpr_feed_atlas_data_obj(void *vedata, diff --git a/source/blender/editors/include/ED_lanpr.h b/source/blender/editors/include/ED_lanpr.h index 24cd32578da..9fa8f7f9eac 100644 --- a/source/blender/editors/include/ED_lanpr.h +++ b/source/blender/editors/include/ED_lanpr.h @@ -25,7 +25,6 @@ #define __ED_LANPR_H__ #include -/* #include "lanpr_all.h" */ #include "BLI_listbase.h" #include "BLI_linklist.h" #include "BLI_threads.h" @@ -62,7 +61,7 @@ typedef int tnsVector2i[2]; typedef struct LANPR_StaticMemPoolNode { Link item; int used_byte; - /* <--- User Mem Start Here */ + /* User memory starts here */ } LANPR_StaticMemPoolNode; typedef struct LANPR_StaticMemPool { @@ -74,7 +73,8 @@ typedef struct LANPR_StaticMemPool { typedef struct LANPR_TextureSample { struct LANPR_TextureSample *next, *prev; int X, Y; - float Z; /* for future usage */ + /** For future usage */ + float Z; } LANPR_TextureSample; typedef struct LANPR_LineStripPoint { @@ -99,12 +99,13 @@ typedef struct LANPR_RenderTriangle { short material_id; ListBase intersecting_verts; char cull_status; - struct
[Bf-blender-cvs] [4ddc14c7325] soc-2019-npr: Cleanup: make format.
Commit: 4ddc14c7325f3c229720e1d99049733349fe841b Author: YimingWu Date: Mon Aug 5 08:48:21 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB4ddc14c7325f3c229720e1d99049733349fe841b Cleanup: make format. === M source/blender/blenkernel/intern/scene.c M source/blender/blentranslation/msgfmt/msgfmt.c M source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain_draw.c M source/blender/draw/engines/lanpr/lanpr_cpu.c M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/intern/draw_cache_impl_mesh.c M source/blender/editors/include/ED_lanpr.h M source/blender/editors/lanpr/lanpr_chain.c M source/blender/editors/lanpr/lanpr_cpu.c M source/blender/editors/lanpr/lanpr_util.c M source/blender/editors/mesh/editmesh_path.c M source/blender/editors/space_buttons/buttons_context.c M source/blender/makesdna/DNA_lanpr_types.h M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_brush.c M source/blender/makesrna/intern/rna_scene.c === diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 435ee6d917d..b8e2e6b2f88 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -234,13 +234,13 @@ void BKE_lanpr_copy_data(const Scene *from, Scene *to) LANPR_LineLayer *ll, *new_ll; LANPR_LineLayerComponent *llc, *new_llc; - to->lanpr.line_layers.first = to->lanpr.line_layers.last=NULL; - memset(>lanpr.line_layers,0,sizeof(ListBase)); + to->lanpr.line_layers.first = to->lanpr.line_layers.last = NULL; + memset(>lanpr.line_layers, 0, sizeof(ListBase)); for (ll = lanpr->line_layers.first; ll; ll = ll->next) { new_ll = MEM_callocN(sizeof(LANPR_LineLayer), "Copied Line Layer"); memcpy(new_ll, ll, sizeof(LANPR_LineLayer)); -memset(_ll->components,0,sizeof(ListBase)); +memset(_ll->components, 0, sizeof(ListBase)); new_ll->next = new_ll->prev = NULL; BLI_addtail(>lanpr.line_layers, new_ll); for (llc = ll->components.first; llc; llc = llc->next) { @@ -365,7 +365,7 @@ void BKE_scene_copy_data(Main *bmain, Scene *sce_dst, const Scene *sce_src, cons /* lanpr data */ - BKE_lanpr_copy_data(sce_src, sce_dst); + BKE_lanpr_copy_data(sce_src, sce_dst); } Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type) @@ -508,8 +508,8 @@ void BKE_lanpr_free_everything(Scene *s) LANPR_LineLayer *ll; LANPR_LineLayerComponent *llc; - while ((ll = BLI_pophead(>line_layers))!=NULL) { -while ((llc = BLI_pophead(>components))!=NULL){ + while ((ll = BLI_pophead(>line_layers)) != NULL) { +while ((llc = BLI_pophead(>components)) != NULL) { MEM_freeN(llc); } MEM_freeN(ll); diff --git a/source/blender/blentranslation/msgfmt/msgfmt.c b/source/blender/blentranslation/msgfmt/msgfmt.c index 86d55e203d9..215c92f87de 100644 --- a/source/blender/blentranslation/msgfmt/msgfmt.c +++ b/source/blender/blentranslation/msgfmt/msgfmt.c @@ -82,12 +82,12 @@ static char *trim(char *str) return str; } - for (i = 0; i < len && ELEM(str[0], ' ', '\t', '\r','\n'); str++, i++) { + for (i = 0; i < len && ELEM(str[0], ' ', '\t', '\r', '\n'); str++, i++) { /* pass */ } char *end = [len - 1 - i]; - for (i = len; i > 0 && ELEM(end[0], ' ', '\t', '\r','\n'); end--, i--) { + for (i = len; i > 0 && ELEM(end[0], ' ', '\t', '\r', '\n'); end--, i--) { /* pass */ } diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl index 8281a696b35..96d4b3eca34 100644 --- a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl +++ b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl @@ -76,11 +76,11 @@ void main() } /* gradient */ - if (gradient_f < 1.0) { + if (gradient_f < 1.0) { float dist = abs(mTexCoord.y - 0.5) * 2.0; float decay = dist * (1.0 - gradient_f) * fragColor.a; fragColor.a = clamp(fragColor.a - decay, 0.0, 1.0); - } + } if (fragColor.a < 0.0035) { discard; diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index ff0b7ec25d0..1ff1b844e7a 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -111,7 +111,7 @@ typedef struct LANPR_TextureList { struct GPUTexture *depth; struct GPUTexture *edge_intermediate; - struct GPUTexture *dpix_in_pl; + struct GPUTexture *dpix_in_pl; struct GPUTexture *dpix_in_pr; struct GPUTexture *dpix_in_nl; struct GPUTexture
[Bf-blender-cvs] [a49b749385c] soc-2019-npr: Merge remote-tracking branch 'origin/master' into soc-2019-npr
Commit: a49b749385ca62ad0a64a090d54002f2dbfa63ed Author: YimingWu Date: Mon Aug 5 08:24:30 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBa49b749385ca62ad0a64a090d54002f2dbfa63ed Merge remote-tracking branch 'origin/master' into soc-2019-npr === === diff --cc source/blender/blenkernel/intern/gpencil.c index 7fbb63f1b12,731e9aff926..3f5ec06f001 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@@ -2663,315 -2057,84 +2663,397 @@@ bool BKE_gpencil_close_stroke(bGPDstrok return true; } +/* Helper function to check materials with same color */ +static int gpencil_check_same_material_color(Object *ob_gp, float color[4], Material *r_mat) +{ + Material *ma = NULL; + float color_cu[4]; + linearrgb_to_srgb_v3_v3(color_cu, color); + float hsv1[4]; + rgb_to_hsv_v(color_cu, hsv1); + hsv1[3] = color[3]; + + for (int i = 1; i <= ob_gp->totcol; i++) { +ma = give_current_material(ob_gp, i); +MaterialGPencilStyle *gp_style = ma->gp_style; +/* Check color with small tolerance (better in HSV). */ +float hsv2[4]; +rgb_to_hsv_v(gp_style->fill_rgba, hsv2); +hsv2[3] = gp_style->fill_rgba[3]; +if (compare_v4v4(hsv1, hsv2, 0.01f)) { + r_mat = ma; + return i - 1; +} + } + + r_mat = NULL; + return -1; +} + +/* Add gpencil material using curve material as base */ +static Material *gpencil_add_from_curve_material(Main *bmain, + Object *ob_gp, + float cu_color[4], + const bool gpencil_lines, + const bool fill, + int *r_idx) +{ + Material *mat_gp = BKE_gpencil_object_material_new( + bmain, ob_gp, (fill) ? "Material" : "Unassigned", r_idx); + MaterialGPencilStyle *gp_style = mat_gp->gp_style; + + /* Stroke color. */ + if (gpencil_lines) { +ARRAY_SET_ITEMS(gp_style->stroke_rgba, 0.0f, 0.0f, 0.0f, 1.0f); + } + else { +linearrgb_to_srgb_v4(gp_style->stroke_rgba, cu_color); + } + + /* Fill color. */ + linearrgb_to_srgb_v4(gp_style->fill_rgba, cu_color); + /* Fill is false if the original curva hasn't material assigned. */ + if (fill) { +gp_style->flag |= GP_STYLE_FILL_SHOW; + } + + return mat_gp; +} + +/* Helper function to create new stroke section */ +static void gpencil_add_new_points(bGPDstroke *gps, + float *coord_array, + float pressure, + int init, + int totpoints, + float init_co[3], + bool last) +{ + for (int i = 0; i < totpoints; i++) { +bGPDspoint *pt = >points[i + init]; +copy_v3_v3(>x, _array[3 * i]); +/* Be sure the last point is not on top of the first point of the curve or + * the close of the stroke will produce glitches. */ +if ((last) && (i > 0) && (i == totpoints - 1)) { + float dist = len_v3v3(init_co, >x); + if (dist < 0.1f) { +/* Interpolate between previous point and current to back slightly. */ +bGPDspoint *pt_prev = >points[i + init - 1]; +interp_v3_v3v3(>x, _prev->x, >x, 0.95f); + } +} + +pt->pressure = pressure; +pt->strength = 1.0f; + } +} + +/* Helper function to get the first collection that includes the object. */ +static Collection *gpencil_get_parent_collection(Scene *scene, Object *ob) +{ + Collection *mycol = NULL; + FOREACH_SCENE_COLLECTION_BEGIN (scene, collection) { +for (CollectionObject *cob = collection->gobject.first; cob; cob = cob->next) { + if ((mycol == NULL) && (cob->ob == ob)) { +mycol = collection; + } +} + } + FOREACH_SCENE_COLLECTION_END; + + return mycol; +} + +/* Helper function to convert one spline to grease pencil stroke. */ +static void gpencil_convert_spline(Main *bmain, + Scene *scene, + Object *ob_gp, + Object *ob_cu, + const bool gpencil_lines, + const bool use_collections, + bGPDframe *gpf, + Nurb *nu) +{ + Curve *cu = (Curve *)ob_cu->data; + bool cyclic = true; + + /* Create Stroke. */ + bGPDstroke *gps = MEM_callocN(sizeof(bGPDstroke), "bGPDstroke"); + gps->thickness = 1.0f; + gps->gradient_f = 1.0f; + ARRAY_SET_ITEMS(gps->gradient_s, 1.0f, 1.0f); + ARRAY_SET_ITEMS(gps->caps,
[Bf-blender-cvs] [8708a96ddec] soc-2019-npr: LANPR: UI refactor: naming fixes.
Commit: 8708a96ddec516e8435332f0ccb3d2b2923902ea Author: YimingWu Date: Mon Aug 5 08:29:05 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB8708a96ddec516e8435332f0ccb3d2b2923902ea LANPR: UI refactor: naming fixes. === M release/scripts/startup/bl_ui/properties_lanpr.py M release/scripts/startup/bl_ui/properties_render.py === diff --git a/release/scripts/startup/bl_ui/properties_lanpr.py b/release/scripts/startup/bl_ui/properties_lanpr.py index e20228c09d8..3277921d2b9 100644 --- a/release/scripts/startup/bl_ui/properties_lanpr.py +++ b/release/scripts/startup/bl_ui/properties_lanpr.py @@ -81,7 +81,7 @@ class OBJECT_PT_lanpr_settings(LanprButtonsPanel, Panel): layout.prop(md,'enable_modifier_mark') class OBJECT_PT_lanpr_modifier_target(LanprButtonsPanel, Panel): -bl_label = "GPencil Target" +bl_label = "Grease Pencil" bl_parent_id = "OBJECT_PT_lanpr_settings" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} @@ -101,13 +101,7 @@ class OBJECT_PT_lanpr_modifier_target(LanprButtonsPanel, Panel): layout.use_property_split = True layout.use_property_decorate = False -split = layout.split(factor=0.5) -col = split.column() -col.label(text="Object:") -col.prop(md, "target", text="") -col = split.column() -col.label(text="Vertex Group:") -col.label(text="Inoperative") +layout.prop(md, "target") if md.target: if not is_unit_transformation(md.target): diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index dcd0b503e93..12577e78146 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -832,15 +832,15 @@ class RENDER_PT_lanpr_layer_settings(RenderButtonsPanel, Panel): col = layout.column(align=True) if not expand: col.prop(active_layer, "color") -col.prop(active_layer, "thickness") +col.prop(active_layer, "thickness", text="Main Thickness") -lanpr_make_line_type(expand,layout,active_layer.contour,"Draw Contour") -lanpr_make_line_type(expand,layout,active_layer.crease,"Draw Crease") -lanpr_make_line_type(expand,layout,active_layer.edge_mark,"Draw EdgeMark") - lanpr_make_line_type(expand,layout,active_layer.material_separate,"Draw Material") +lanpr_make_line_type(expand,layout,active_layer.contour,"Contour") +lanpr_make_line_type(expand,layout,active_layer.crease,"Crease") +lanpr_make_line_type(expand,layout,active_layer.edge_mark,"EdgeMark") + lanpr_make_line_type(expand,layout,active_layer.material_separate,"Material") if lanpr.enable_intersections: -lanpr_make_line_type(expand,layout,active_layer.intersection,"Draw Intersection") + lanpr_make_line_type(expand,layout,active_layer.intersection,"Intersection") else: layout.label(text= "Intersection calculation disabled.") @@ -1065,7 +1065,7 @@ class RENDER_PT_lanpr_gpencil(RenderButtonsPanel, Panel): layout.prop(lanpr,"auto_update", text='Auto Update') layout.prop(lanpr,"gpencil_overwrite", text='Overwrite') if not lanpr.auto_update: -layout.operator("scene.lanpr_update_gp_strokes", icon='FILE_REFRESH', text='Update GPencil Targets') +layout.operator("scene.lanpr_update_gp_strokes", icon='FILE_REFRESH', text='Update Grease Pencil Targets') layout.operator("scene.lanpr_bake_gp_strokes", icon='RENDER_ANIMATION', text='Bake All Frames') class RENDER_PT_lanpr_software_chain_styles(RenderButtonsPanel, Panel): @@ -1133,8 +1133,8 @@ class RENDER_PT_lanpr_options(RenderButtonsPanel, Panel): layout.prop(lanpr,"enable_intersections") layout.prop(lanpr, "disable_edge_splits") -if scene.render.engine=='BLENDER_LANPR': -layout.prop(lanpr,"enable_chaining", text = "Chain lines") +if scene.render.engine=='BLENDER_LANPR' and lanpr.master_mode=='SOFTWARE': +layout.prop(lanpr,"enable_chaining", text = "Chained Lines") classes = ( ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [9fbf522dd8c] master: Cleanup: Fix eeve_lut arrays being duplicated in blender binary.
Commit: 9fbf522dd8c0cf5008e46534ffadcabed2bae60c Author: Lazydodo Date: Sun Aug 4 14:32:53 2019 -0600 Branches: master https://developer.blender.org/rB9fbf522dd8c0cf5008e46534ffadcabed2bae60c Cleanup: Fix eeve_lut arrays being duplicated in blender binary. Both eevee_materials.c and workbench_deferred.c include eeve_lut.h which has its arrays marked as static leading to the blue_noise array being embedded into our binary twice. This change takes the arrays out of the header and properly marks them as const since they are lookup tables and should not be written to. Reviewers: fclem, brecht Differential Revision: https://developer.blender.org/D5346 === M source/blender/draw/CMakeLists.txt A source/blender/draw/engines/eevee/eevee_lut.c M source/blender/draw/engines/eevee/eevee_lut.h === diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt index 016cd628969..8dc4972bcc1 100644 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@ -94,6 +94,7 @@ set(SRC engines/eevee/eevee_lightprobes.c engines/eevee/eevee_lights.c engines/eevee/eevee_lookdev.c + engines/eevee/eevee_lut.c engines/eevee/eevee_materials.c engines/eevee/eevee_mist.c engines/eevee/eevee_motion_blur.c diff --git a/source/blender/draw/engines/eevee/eevee_lut.h b/source/blender/draw/engines/eevee/eevee_lut.c similarity index 99% copy from source/blender/draw/engines/eevee/eevee_lut.h copy to source/blender/draw/engines/eevee/eevee_lut.c index 9b9adc2b7d3..8db45e4cee6 100644 --- a/source/blender/draw/engines/eevee/eevee_lut.h +++ b/source/blender/draw/engines/eevee/eevee_lut.c @@ -21,10 +21,7 @@ * \ingroup gpu */ -#ifndef __EEVEE_LUT_H__ -#define __EEVEE_LUT_H__ - -static float ltc_mat_ggx[64 * 64 * 4] = { +const float ltc_mat_ggx[64 * 64 * 4] = { 1.00, 0.00, 0.00, 0.20, 1.00, 0.00, 0.00, 0.000504, 1.00, 0.00, 0.00, 0.002016, 1.00, 0.00, 0.00, 0.004535, 1.00, 0.00, 0.00, 0.008063, 1.00, 0.00, 0.00, 0.012598, @@ -2074,7 +2071,8 @@ static float ltc_mat_ggx[64 * 64 * 4] = { 0.964420, -0.165154, 0.163178, 1.473200, 0.979856, -0.139302, 0.127531, 1.535740, 0.982561, -0.111340, 0.090346, 1.599820, 0.996389, -0.080812, 0.048901, 1.657700, }; -static float ltc_mag_ggx[64 * 64 * 2] = { + +const float ltc_mag_ggx[64 * 64 * 2] = { 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 0.00, 0.98, 0.00, 0.94, 0.00, 0.89, @@ -2988,7 +2986,7 @@ static float ltc_mag_ggx[64 * 64 * 2] = { 0.932164, 0.047190, }; -static float bsdf_split_sum_ggx[64 * 64 * 2] = { +const float bsdf_split_sum_ggx[64 * 64 * 2] = { 1.00f, 0.00f, 1.00f, 0.00f, 1.00f, 0.00f, 1.00f, 0.00f, 1.00f, 0.00f, 1.00f, 0.00f, 0.999512f, 0.00f, 0.999512f, 0.00f, 0.999512f, 0.00f, 0.999023f, 0.01f, 0.999023f, 0.01f, 0.998535f, 0.01f, @@ -4015,7 +4013,7 @@ static float bsdf_split_sum_ggx[64 * 64 * 2] = { 0.626953f, 0.023544f, 0.616699f, 0.022186f, 0.605957f, 0.020920f, 0.594727f, 0.019730f, }; -static float ltc_disk_integral[64 * 64] = { +const float ltc_disk_integral[64 * 64] = { 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, 0.00f, @@ -4530,7 +4528,7 @@ static float ltc_disk_integral[64 * 64] = { 0.89f, 0.904762f, 0.920635f, 0.936508f, 0.952381f, 0.968254f, 0.984127f, 1.00f, }; -static float btdf_split_sum_ggx[32][64 * 64] = { +const float btdf_split_sum_ggx[32][64 * 64] = { { 0.00f, 1.00f, 0.999512f, 1.00f, 1.00f, 1.00f, 1.00f, 1.00f, 1.00f, 1.00f, 0.999512f, 1.00f, 1.00f, 0.999512f, 1.00f, 1.00f, @@ -20981,7 +20979,7 @@ static float btdf_split_sum_ggx[32][64 * 64] = { }}; /* 4 different blue noise, one per channel */ -static float blue_noise[64 * 64][4] = { +const float blue_noise[64 * 64][4] = { {0.367188f, 0.855469f, 0.523438f, 0.375000f}, {0.242188f, 0.699219f, 0.164062f, 0.292969f}, {0.828125f, 0.257812f, 0.449219f, 0.679688f}, {0.128906f, 0.523438f, 0.058594f, 0.164062f}, {0.214844f, 0.648438f, 0.75f, 0.492188f}, {0.535156f, 0.226562f, 0.492188f, 0.429688f}, @@ -23031,5 +23029,3 @@ static float blue_noise[64 * 64][4] = { {0.621094f, 0.089844f, 0.50f, 0.394531f}, {0.523438f,
[Bf-blender-cvs] [418fdee5dc9] master: Cleanup: Mark large arrays of of constant data as const.
Commit: 418fdee5dc9950fef17c1d2fc9f6137af5a42ac9 Author: Lazydodo Date: Sun Aug 4 14:24:29 2019 -0600 Branches: master https://developer.blender.org/rB418fdee5dc9950fef17c1d2fc9f6137af5a42ac9 Cleanup: Mark large arrays of of constant data as const. For background information see D5345 Reviewers: brecht, sergey Differential Revision: https://developer.blender.org/D5345 === M intern/cycles/render/sobol.cpp M source/blender/datatoc/datatoc.c === diff --git a/intern/cycles/render/sobol.cpp b/intern/cycles/render/sobol.cpp index 5fb3531b03b..c821249b239 100644 --- a/intern/cycles/render/sobol.cpp +++ b/intern/cycles/render/sobol.cpp @@ -62,7 +62,7 @@ typedef struct SobolDirectionNumbers { /* Keep simple alignment. */ /* clang-format off */ -static SobolDirectionNumbers SOBOL_NUMBERS[SOBOL_MAX_DIMENSIONS - 1] = { +static const SobolDirectionNumbers SOBOL_NUMBERS[SOBOL_MAX_DIMENSIONS - 1] = { {2, 1, 0, {1}}, {3, 2, 1, {1, 3}}, {4, 3, 1, {1, 3, 1}}, @@ -21279,10 +21279,10 @@ void sobol_generate_direction_vectors(uint vectors[][SOBOL_BITS], int dimensions v[i] = 1 << (31 - i); // all m's = 1 for (int dim = 1; dim < dimensions; dim++) { -SobolDirectionNumbers *numbers = _NUMBERS[dim - 1]; -uint s = numbers->s; -uint a = numbers->a; -uint *m = numbers->m; +const SobolDirectionNumbers *numbers = _NUMBERS[dim - 1]; +const uint s = numbers->s; +const uint a = numbers->a; +const uint *m = numbers->m; v = vectors[dim]; diff --git a/source/blender/datatoc/datatoc.c b/source/blender/datatoc/datatoc.c index 6fe2650d66c..cf8d17e5e7e 100644 --- a/source/blender/datatoc/datatoc.c +++ b/source/blender/datatoc/datatoc.c @@ -94,11 +94,11 @@ int main(int argc, char **argv) fprintf(fpout, "/* DataToC output of file <%s> */\n\n", argv[1]); /* Quiet 'missing-variable-declarations' warning. */ - fprintf(fpout, "extern int datatoc_%s_size;\n", argv[1]); - fprintf(fpout, "extern char datatoc_%s[];\n\n", argv[1]); + fprintf(fpout, "extern const int datatoc_%s_size;\n", argv[1]); + fprintf(fpout, "extern const char datatoc_%s[];\n\n", argv[1]); - fprintf(fpout, "int datatoc_%s_size = %d;\n", argv[1], (int)size); - fprintf(fpout, "char datatoc_%s[] = {\n", argv[1]); + fprintf(fpout, "const int datatoc_%s_size = %d;\n", argv[1], (int)size); + fprintf(fpout, "const char datatoc_%s[] = {\n", argv[1]); while (size--) { /* if we want to open in an editor * this is nicer to avoid very long lines */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [749e4bf0f35] soc-2019-cycles-procedural: Added Fraction operator to Vector Math node.
Commit: 749e4bf0f35ac9a976b7e4d3ddfcf363ad81f87c Author: OmarSquircleArt Date: Sun Aug 4 21:31:15 2019 +0200 Branches: soc-2019-cycles-procedural https://developer.blender.org/rB749e4bf0f35ac9a976b7e4d3ddfcf363ad81f87c Added Fraction operator to Vector Math node. === M intern/cycles/kernel/shaders/node_vector_math.osl M intern/cycles/kernel/svm/svm_math_util.h M intern/cycles/kernel/svm/svm_types.h M intern/cycles/render/nodes.cpp M intern/cycles/util/util_math_float3.h M source/blender/gpu/shaders/gpu_shader_material.glsl M source/blender/makesdna/DNA_node_types.h M source/blender/makesrna/intern/rna_nodetree.c M source/blender/nodes/shader/nodes/node_shader_vectMath.c === diff --git a/intern/cycles/kernel/shaders/node_vector_math.osl b/intern/cycles/kernel/shaders/node_vector_math.osl index 2c67cf6b880..20683067eed 100644 --- a/intern/cycles/kernel/shaders/node_vector_math.osl +++ b/intern/cycles/kernel/shaders/node_vector_math.osl @@ -96,6 +96,9 @@ shader node_vector_math(string type = "add", else if (type == "modulo") { Vector = mod(A, B); } + else if (type == "fraction") { +Vector = A - floor(A); + } else if (type == "absolute") { Vector = abs(A); } diff --git a/intern/cycles/kernel/svm/svm_math_util.h b/intern/cycles/kernel/svm/svm_math_util.h index adbf46de6f7..6661691938a 100644 --- a/intern/cycles/kernel/svm/svm_math_util.h +++ b/intern/cycles/kernel/svm/svm_math_util.h @@ -70,6 +70,9 @@ ccl_device void svm_vector_math( case NODE_VECTOR_MATH_MODULO: *vector = make_float3(safe_modulo(a.x, b.x), safe_modulo(a.y, b.y), safe_modulo(a.z, b.z)); break; +case NODE_VECTOR_MATH_FRACTION: + *vector = fract(a); + break; case NODE_VECTOR_MATH_ABSOLUTE: *vector = fabs(a); break; diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index f8f50105fe5..d7808065211 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -298,6 +298,7 @@ typedef enum NodeVectorMathType { NODE_VECTOR_MATH_FLOOR, NODE_VECTOR_MATH_CEIL, NODE_VECTOR_MATH_MODULO, + NODE_VECTOR_MATH_FRACTION, NODE_VECTOR_MATH_ABSOLUTE, NODE_VECTOR_MATH_MINIMUM, NODE_VECTOR_MATH_MAXIMUM, diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 270a69c9cd9..45dcc283056 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -5727,6 +5727,7 @@ NODE_DEFINE(VectorMathNode) type_enum.insert("floor", NODE_VECTOR_MATH_FLOOR); type_enum.insert("ceil", NODE_VECTOR_MATH_CEIL); type_enum.insert("modulo", NODE_VECTOR_MATH_MODULO); + type_enum.insert("fraction", NODE_VECTOR_MATH_FRACTION); type_enum.insert("absolute", NODE_VECTOR_MATH_ABSOLUTE); type_enum.insert("minimum", NODE_VECTOR_MATH_MINIMUM); type_enum.insert("maximum", NODE_VECTOR_MATH_MAXIMUM); diff --git a/intern/cycles/util/util_math_float3.h b/intern/cycles/util/util_math_float3.h index 095134cc13e..ec59f2b2d7b 100644 --- a/intern/cycles/util/util_math_float3.h +++ b/intern/cycles/util/util_math_float3.h @@ -61,6 +61,7 @@ ccl_device_inline float3 rcp(const float3 ); ccl_device_inline float3 sqrt(const float3 ); ccl_device_inline float3 floor(const float3 ); ccl_device_inline float3 ceil(const float3 ); +ccl_device_inline float3 fract(const float3 ); #endif /* !__KERNEL_OPENCL__ */ ccl_device_inline float min3(float3 a); @@ -312,6 +313,11 @@ ccl_device_inline float3 ceil(const float3 ) # endif } +ccl_device_inline float3 fract(const float3 ) +{ + return a - floor(a); +} + ccl_device_inline float3 mix(const float3 , const float3 , float t) { return a + t * (b - a); diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index 07bca5737e5..b729af3ce3f 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -564,6 +564,11 @@ void vec_math_modulo(vec3 a, vec3 b, float scale, out vec3 outvec, out float out math_modulo(a.z, b.z, outvec.z); } +void vec_math_fraction(vec3 a, vec3 b, float scale, out vec3 outvec, out float outval) +{ + outvec = fract(a); +} + void vec_math_absolute(vec3 a, vec3 b, float scale, out vec3 outvec, out float outval) { outvec = abs(a); diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 63a19aa6c65..f187ecd0764 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -1225,9 +1225,10 @@ enum { NODE_VECTOR_MATH_FLOOR = 13, NODE_VECTOR_MATH_CEIL = 14, NODE_VECTOR_MATH_MODULO = 15, - NODE_VECTOR_MATH_ABSOLUTE = 16, - NODE_VECTOR_MATH_MINIMUM = 17, - NODE_VECTOR_MATH_MAXIMUM = 18, +
[Bf-blender-cvs] [37cef86f0d7] master: Fix: msgfmt add support for cr-lf style line endings
Commit: 37cef86f0d7a4c617d651f56b1c5347e7ec7d479 Author: Lazydodo Date: Sun Aug 4 11:46:00 2019 -0600 Branches: master https://developer.blender.org/rB37cef86f0d7a4c617d651f56b1c5347e7ec7d479 Fix: msgfmt add support for cr-lf style line endings linux did not recognize cr as a valid character. Reviewers: brecht Differential Revision: https://developer.blender.org/D5337 === M source/blender/blentranslation/msgfmt/msgfmt.c === diff --git a/source/blender/blentranslation/msgfmt/msgfmt.c b/source/blender/blentranslation/msgfmt/msgfmt.c index f226699d8bf..86d55e203d9 100644 --- a/source/blender/blentranslation/msgfmt/msgfmt.c +++ b/source/blender/blentranslation/msgfmt/msgfmt.c @@ -82,12 +82,12 @@ static char *trim(char *str) return str; } - for (i = 0; i < len && ELEM(str[0], ' ', '\t', '\n'); str++, i++) { + for (i = 0; i < len && ELEM(str[0], ' ', '\t', '\r','\n'); str++, i++) { /* pass */ } char *end = [len - 1 - i]; - for (i = len; i > 0 && ELEM(end[0], ' ', '\t', '\n'); end--, i--) { + for (i = len; i > 0 && ELEM(end[0], ' ', '\t', '\r','\n'); end--, i--) { /* pass */ } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [ee50bed139f] soc-2019-cycles-procedural: Add Ceiling operator to Vector Math node.
Commit: ee50bed139fcbe2f5caa4105836ed1e642e154d8 Author: OmarSquircleArt Date: Sun Aug 4 18:00:20 2019 +0200 Branches: soc-2019-cycles-procedural https://developer.blender.org/rBee50bed139fcbe2f5caa4105836ed1e642e154d8 Add Ceiling operator to Vector Math node. === M intern/cycles/kernel/shaders/node_vector_math.osl M intern/cycles/kernel/svm/svm_math_util.h M intern/cycles/kernel/svm/svm_types.h M intern/cycles/render/bake.cpp M intern/cycles/render/nodes.cpp M intern/cycles/subd/subd_dice.cpp M intern/cycles/subd/subd_split.cpp M intern/cycles/util/util_math_float3.h M source/blender/gpu/shaders/gpu_shader_material.glsl M source/blender/makesdna/DNA_node_types.h M source/blender/makesrna/intern/rna_nodetree.c M source/blender/nodes/shader/nodes/node_shader_vectMath.c === diff --git a/intern/cycles/kernel/shaders/node_vector_math.osl b/intern/cycles/kernel/shaders/node_vector_math.osl index c8220724801..2c67cf6b880 100644 --- a/intern/cycles/kernel/shaders/node_vector_math.osl +++ b/intern/cycles/kernel/shaders/node_vector_math.osl @@ -90,6 +90,9 @@ shader node_vector_math(string type = "add", else if (type == "floor") { Vector = floor(A); } + else if (type == "ceil") { +Vector = ceil(A); + } else if (type == "modulo") { Vector = mod(A, B); } diff --git a/intern/cycles/kernel/svm/svm_math_util.h b/intern/cycles/kernel/svm/svm_math_util.h index ae78e0749ab..adbf46de6f7 100644 --- a/intern/cycles/kernel/svm/svm_math_util.h +++ b/intern/cycles/kernel/svm/svm_math_util.h @@ -64,6 +64,9 @@ ccl_device void svm_vector_math( case NODE_VECTOR_MATH_FLOOR: *vector = floor(a); break; +case NODE_VECTOR_MATH_CEIL: + *vector = ceil(a); + break; case NODE_VECTOR_MATH_MODULO: *vector = make_float3(safe_modulo(a.x, b.x), safe_modulo(a.y, b.y), safe_modulo(a.z, b.z)); break; diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 971c22988f2..f8f50105fe5 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -296,6 +296,7 @@ typedef enum NodeVectorMathType { NODE_VECTOR_MATH_SNAP, NODE_VECTOR_MATH_FLOOR, + NODE_VECTOR_MATH_CEIL, NODE_VECTOR_MATH_MODULO, NODE_VECTOR_MATH_ABSOLUTE, NODE_VECTOR_MATH_MINIMUM, diff --git a/intern/cycles/render/bake.cpp b/intern/cycles/render/bake.cpp index 73893921500..56bf1295446 100644 --- a/intern/cycles/render/bake.cpp +++ b/intern/cycles/render/bake.cpp @@ -124,7 +124,7 @@ BakeData *BakeManager::init(const int object, const size_t tri_offset, const siz void BakeManager::set_shader_limit(const size_t x, const size_t y) { m_shader_limit = x * y; - m_shader_limit = (size_t)pow(2, ceil(log(m_shader_limit) / log(2))); + m_shader_limit = (size_t)pow(2, ceilf(logf(m_shader_limit) / logf(2))); } bool BakeManager::bake(Device *device, diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 0925b3218fb..270a69c9cd9 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -5725,6 +5725,7 @@ NODE_DEFINE(VectorMathNode) type_enum.insert("snap", NODE_VECTOR_MATH_SNAP); type_enum.insert("floor", NODE_VECTOR_MATH_FLOOR); + type_enum.insert("ceil", NODE_VECTOR_MATH_CEIL); type_enum.insert("modulo", NODE_VECTOR_MATH_MODULO); type_enum.insert("absolute", NODE_VECTOR_MATH_ABSOLUTE); type_enum.insert("minimum", NODE_VECTOR_MATH_MINIMUM); diff --git a/intern/cycles/subd/subd_dice.cpp b/intern/cycles/subd/subd_dice.cpp index fb96be5065b..914b408911e 100644 --- a/intern/cycles/subd/subd_dice.cpp +++ b/intern/cycles/subd/subd_dice.cpp @@ -323,8 +323,8 @@ void QuadDice::dice(SubPatch , EdgeFactors ) float S = 1.0f; #endif - Mu = max((int)ceil(S * Mu), 2); // XXX handle 0 & 1? - Mv = max((int)ceil(S * Mv), 2); // XXX handle 0 & 1? + Mu = max((int)ceilf(S * Mu), 2); // XXX handle 0 & 1? + Mv = max((int)ceilf(S * Mv), 2); // XXX handle 0 & 1? /* reserve space for new verts */ int offset = params.mesh->verts.size(); diff --git a/intern/cycles/subd/subd_split.cpp b/intern/cycles/subd/subd_split.cpp index 1c99ca80507..e5b85fcfd60 100644 --- a/intern/cycles/subd/subd_split.cpp +++ b/intern/cycles/subd/subd_split.cpp @@ -80,9 +80,9 @@ int DiagSplit::T(Patch *patch, float2 Pstart, float2 Pend) Plast = P; } - int tmin = (int)ceil(Lsum / params.dicing_rate); - int tmax = (int)ceil((params.test_steps - 1) * Lmax / - params.dicing_rate); // XXX paper says N instead of N-1, seems wrong? + int tmin = (int)ceilf(Lsum / params.dicing_rate); + int tmax = (int)ceilf((params.test_steps - 1) * Lmax / +params.dicing_rate); // XXX paper says N instead of N-1, seems wrong? if (tmax -
[Bf-blender-cvs] [f08662d3ed0] master: Sculpting: Remove Show Diffuse Color Option
Commit: f08662d3ed0c0e0054d45b398a77106822d43a95 Author: Your Name Date: Sun Aug 4 11:53:48 2019 -0400 Branches: master https://developer.blender.org/rBf08662d3ed0c0e0054d45b398a77106822d43a95 Sculpting: Remove Show Diffuse Color Option This should have been removed in 2.80 as the functionality was removed. This feature now does not do anything and can be removed. Differential Revision: https://developer.blender.org/D5411 === M release/scripts/startup/bl_ui/space_view3d.py M release/scripts/startup/bl_ui/space_view3d_toolbar.py M source/blender/blenkernel/BKE_paint.h M source/blender/blenkernel/BKE_pbvh.h M source/blender/blenkernel/intern/cdderivedmesh.c M source/blender/blenkernel/intern/paint.c M source/blender/blenkernel/intern/pbvh.c M source/blender/blenkernel/intern/pbvh_intern.h M source/blender/blenkernel/intern/subsurf_ccg.c M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_sculpt_paint.c === diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index ca65fa52ea3..582d4fe1258 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -2862,7 +2862,6 @@ class VIEW3D_MT_sculpt(Menu): layout.prop(sculpt, "show_low_resolution") layout.prop(sculpt, "show_brush") layout.prop(sculpt, "use_deform_only") -layout.prop(sculpt, "show_diffuse_color") layout.prop(sculpt, "show_mask") @@ -5760,8 +5759,6 @@ class VIEW3D_PT_overlay_sculpt(Panel): view = context.space_data overlay = view.overlay -layout.prop(sculpt, "show_diffuse_color") - row = layout.row(align=True) row.prop(sculpt, "show_mask", text="") sub = row.row() diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index 262fafa596d..c4f69e18c43 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -431,7 +431,7 @@ class VIEW3D_PT_tools_brush_color(Panel, View3DPaintPanel): if context.vertex_paint_object: brush_texpaint_common_color(self, context, layout, brush, settings, True) - + else: layout.prop(brush, "color_type", expand=True) @@ -1118,8 +1118,6 @@ class VIEW3D_PT_sculpt_options(Panel, View3DPaintPanel): col = flow.column() col.prop(sculpt, "use_deform_only") col = flow.column() -col.prop(sculpt, "show_diffuse_color") -col = flow.column() col.prop(sculpt, "show_mask") diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index cf9608e7c0f..cbe250d0ac8 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -242,7 +242,6 @@ typedef struct SculptSession { /* PBVH acceleration structure */ struct PBVH *pbvh; - bool show_diffuse_color; bool show_mask; /* Painting on deformed mesh */ diff --git a/source/blender/blenkernel/BKE_pbvh.h b/source/blender/blenkernel/BKE_pbvh.h index 79b462e749c..3806868e060 100644 --- a/source/blender/blenkernel/BKE_pbvh.h +++ b/source/blender/blenkernel/BKE_pbvh.h @@ -409,7 +409,6 @@ bool BKE_pbvh_node_vert_update_check_any(PBVH *bvh, PBVHNode *node); // void BKE_pbvh_node_BB_expand(PBVHNode *node, float co[3]); bool pbvh_has_mask(PBVH *bvh); -void pbvh_show_diffuse_color_set(PBVH *bvh, bool show_diffuse_color); void pbvh_show_mask_set(PBVH *bvh, bool show_mask); #endif /* __BKE_PBVH_H__ */ diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index eb1e8311a12..28bd9c0cea5 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -270,7 +270,6 @@ static PBVH *cdDM_getPBVH(Object *ob, DerivedMesh *dm) ob->sculpt->cd_vert_node_offset, ob->sculpt->cd_face_node_offset); -pbvh_show_diffuse_color_set(cddm->pbvh, ob->sculpt->show_diffuse_color); pbvh_show_mask_set(cddm->pbvh, ob->sculpt->show_mask); } @@ -300,7 +299,6 @@ static PBVH *cdDM_getPBVH(Object *ob, DerivedMesh *dm) looptri, looptris_num); -pbvh_show_diffuse_color_set(cddm->pbvh, ob->sculpt->show_diffuse_color); pbvh_show_mask_set(cddm->pbvh, ob->sculpt->show_mask); deformed = check_sculpt_object_deformed(ob, true); diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 99ae19c3c30..0e93c80ecb5 100644 --- a/source/blender/blenkernel/intern/paint.c +++
[Bf-blender-cvs] [025c0f44411] soc-2019-cycles-procedural: Add Floor operator to Vector Math node.
Commit: 025c0f44411f9da74ce66da22af148e81b13eaeb Author: OmarSquircleArt Date: Sun Aug 4 17:25:08 2019 +0200 Branches: soc-2019-cycles-procedural https://developer.blender.org/rB025c0f44411f9da74ce66da22af148e81b13eaeb Add Floor operator to Vector Math node. === M intern/cycles/kernel/shaders/node_vector_math.osl M intern/cycles/kernel/svm/svm_math_util.h M intern/cycles/kernel/svm/svm_types.h M intern/cycles/render/nodes.cpp M source/blender/gpu/shaders/gpu_shader_material.glsl M source/blender/makesdna/DNA_node_types.h M source/blender/makesrna/intern/rna_nodetree.c M source/blender/nodes/shader/nodes/node_shader_vectMath.c === diff --git a/intern/cycles/kernel/shaders/node_vector_math.osl b/intern/cycles/kernel/shaders/node_vector_math.osl index cba2b9f6487..c8220724801 100644 --- a/intern/cycles/kernel/shaders/node_vector_math.osl +++ b/intern/cycles/kernel/shaders/node_vector_math.osl @@ -87,6 +87,9 @@ shader node_vector_math(string type = "add", else if (type == "snap") { Vector = snap(A, B); } + else if (type == "floor") { +Vector = floor(A); + } else if (type == "modulo") { Vector = mod(A, B); } diff --git a/intern/cycles/kernel/svm/svm_math_util.h b/intern/cycles/kernel/svm/svm_math_util.h index 50c13929532..ae78e0749ab 100644 --- a/intern/cycles/kernel/svm/svm_math_util.h +++ b/intern/cycles/kernel/svm/svm_math_util.h @@ -61,6 +61,9 @@ ccl_device void svm_vector_math( floorf(safe_divide(a.y, b.y)) * b.y, floorf(safe_divide(a.z, b.z)) * b.z); break; +case NODE_VECTOR_MATH_FLOOR: + *vector = floor(a); + break; case NODE_VECTOR_MATH_MODULO: *vector = make_float3(safe_modulo(a.x, b.x), safe_modulo(a.y, b.y), safe_modulo(a.z, b.z)); break; diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 33ede286211..971c22988f2 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -295,6 +295,7 @@ typedef enum NodeVectorMathType { NODE_VECTOR_MATH_NORMALIZE, NODE_VECTOR_MATH_SNAP, + NODE_VECTOR_MATH_FLOOR, NODE_VECTOR_MATH_MODULO, NODE_VECTOR_MATH_ABSOLUTE, NODE_VECTOR_MATH_MINIMUM, diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index be7748f46e0..0925b3218fb 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -5724,6 +5724,7 @@ NODE_DEFINE(VectorMathNode) type_enum.insert("normalize", NODE_VECTOR_MATH_NORMALIZE); type_enum.insert("snap", NODE_VECTOR_MATH_SNAP); + type_enum.insert("floor", NODE_VECTOR_MATH_FLOOR); type_enum.insert("modulo", NODE_VECTOR_MATH_MODULO); type_enum.insert("absolute", NODE_VECTOR_MATH_ABSOLUTE); type_enum.insert("minimum", NODE_VECTOR_MATH_MINIMUM); diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index 7d9f5fc1b18..c830e08c99f 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -547,6 +547,11 @@ void vec_math_snap(vec3 a, vec3 b, float scale, out vec3 outvec, out float outva outvec.z = (b.z != 0.0) ? floor(a.z / b.z) * b.z : 0.0; } +void vec_math_floor(vec3 a, vec3 b, float scale, out vec3 outvec, out float outval) +{ + outvec = floor(a); +} + void vec_math_modulo(vec3 a, vec3 b, float scale, out vec3 outvec, out float outval) { math_modulo(a.x, b.x, outvec.x); diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 929ae1840f9..d1c9ba02fb1 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -1222,10 +1222,11 @@ enum { NODE_VECTOR_MATH_NORMALIZE = 11, NODE_VECTOR_MATH_SNAP = 12, - NODE_VECTOR_MATH_MODULO = 13, - NODE_VECTOR_MATH_ABSOLUTE = 14, - NODE_VECTOR_MATH_MINIMUM = 15, - NODE_VECTOR_MATH_MAXIMUM = 16, + NODE_VECTOR_MATH_FLOOR = 13, + NODE_VECTOR_MATH_MODULO = 14, + NODE_VECTOR_MATH_ABSOLUTE = 15, + NODE_VECTOR_MATH_MINIMUM = 16, + NODE_VECTOR_MATH_MAXIMUM = 17, }; /* mix rgb node flags */ diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index cefcf7e1995..48b3ddf3b26 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -168,6 +168,7 @@ const EnumPropertyItem rna_enum_node_vec_math_items[] = { {NODE_VECTOR_MATH_NORMALIZE, "NORMALIZE", 0, "Normalize", "Normalize A"}, {0, "", ICON_NONE, NULL, NULL}, {NODE_VECTOR_MATH_SNAP, "SNAP", 0, "Snap", "Round A to the nearest integer multiple of B"}, +{NODE_VECTOR_MATH_FLOOR, "FLOOR", 0, "Floor", "Entrywise floor"},
[Bf-blender-cvs] [ebd26aaee42] soc-2019-cycles-procedural: Remove Average vector meth operator.
Commit: ebd26aaee427bba3c714ff8968c4bf436538a463 Author: OmarSquircleArt Date: Sun Aug 4 16:57:51 2019 +0200 Branches: soc-2019-cycles-procedural https://developer.blender.org/rBebd26aaee427bba3c714ff8968c4bf436538a463 Remove Average vector meth operator. === M intern/cycles/kernel/shaders/node_vector_math.osl M intern/cycles/kernel/svm/svm_math_util.h M intern/cycles/kernel/svm/svm_types.h M intern/cycles/render/nodes.cpp M source/blender/blenloader/intern/versioning_cycles.c M source/blender/gpu/shaders/gpu_shader_material.glsl M source/blender/makesdna/DNA_node_types.h M source/blender/makesrna/intern/rna_nodetree.c M source/blender/nodes/shader/nodes/node_shader_vectMath.c === diff --git a/intern/cycles/kernel/shaders/node_vector_math.osl b/intern/cycles/kernel/shaders/node_vector_math.osl index 496cb22cf54..cba2b9f6487 100644 --- a/intern/cycles/kernel/shaders/node_vector_math.osl +++ b/intern/cycles/kernel/shaders/node_vector_math.osl @@ -69,9 +69,6 @@ shader node_vector_math(string type = "add", else if (type == "reflect") { Vector = reflect(A, B); } - else if (type == "average") { -Vector = normalize(A + B); - } else if (type == "dot_product") { Value = dot(A, B); } diff --git a/intern/cycles/kernel/svm/svm_math_util.h b/intern/cycles/kernel/svm/svm_math_util.h index 9ba1e31b1d7..50c13929532 100644 --- a/intern/cycles/kernel/svm/svm_math_util.h +++ b/intern/cycles/kernel/svm/svm_math_util.h @@ -41,9 +41,6 @@ ccl_device void svm_vector_math( case NODE_VECTOR_MATH_REFLECT: *vector = reflect(a, b); break; -case NODE_VECTOR_MATH_AVERAGE: - *vector = safe_normalize(a + b); - break; case NODE_VECTOR_MATH_DOT_PRODUCT: *value = dot(a, b); break; diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index a4bedc8ad16..33ede286211 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -281,20 +281,18 @@ typedef enum NodeMathType { typedef enum NodeVectorMathType { NODE_VECTOR_MATH_ADD, NODE_VECTOR_MATH_SUBTRACT, - NODE_VECTOR_MATH_AVERAGE, - NODE_VECTOR_MATH_DOT_PRODUCT, - NODE_VECTOR_MATH_CROSS_PRODUCT, - NODE_VECTOR_MATH_NORMALIZE, - NODE_VECTOR_MATH_MULTIPLY, NODE_VECTOR_MATH_DIVIDE, + NODE_VECTOR_MATH_CROSS_PRODUCT, NODE_VECTOR_MATH_PROJECT, NODE_VECTOR_MATH_REFLECT, + NODE_VECTOR_MATH_DOT_PRODUCT, NODE_VECTOR_MATH_DISTANCE, NODE_VECTOR_MATH_LENGTH, NODE_VECTOR_MATH_SCALE, + NODE_VECTOR_MATH_NORMALIZE, NODE_VECTOR_MATH_SNAP, NODE_VECTOR_MATH_MODULO, diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 1a61d3b9096..be7748f46e0 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -5716,9 +5716,8 @@ NODE_DEFINE(VectorMathNode) type_enum.insert("cross_product", NODE_VECTOR_MATH_CROSS_PRODUCT); type_enum.insert("project", NODE_VECTOR_MATH_PROJECT); type_enum.insert("reflect", NODE_VECTOR_MATH_REFLECT); - type_enum.insert("average", NODE_VECTOR_MATH_AVERAGE); - type_enum.insert("dot_product", NODE_VECTOR_MATH_DOT_PRODUCT); + type_enum.insert("distance", NODE_VECTOR_MATH_DISTANCE); type_enum.insert("length", NODE_VECTOR_MATH_LENGTH); type_enum.insert("scale", NODE_VECTOR_MATH_SCALE); diff --git a/source/blender/blenloader/intern/versioning_cycles.c b/source/blender/blenloader/intern/versioning_cycles.c index 4eab08c8f47..3fcec749432 100644 --- a/source/blender/blenloader/intern/versioning_cycles.c +++ b/source/blender/blenloader/intern/versioning_cycles.c @@ -730,6 +730,38 @@ static void update_vector_normalize_operators(bNodeTree *ntree) } } +/* The Average operator is no longer available in the Vector Math node. + * This altered the order of operators in the vector math type enum. + * To fix this, we remap the enum values according to the following rules: + * + * NODE_VECTOR_MATH_DOT_PRODUCT : 3 -> 7 + * NODE_VECTOR_MATH_NORMALIZE : 5 -> 11 + * + * Additionally, NODE_VECTOR_MATH_AVERAGE is assigned a value of -1 to be + * identified later in the versioning code: + * + * NODE_VECTOR_MATH_AVERAGE : 2 -> -1 + * + */ +static void update_vector_math_operators_enum_mapping(bNodeTree *ntree) +{ + for (bNode *node = ntree->nodes.first; node; node = node->next) { +if (node->type == SH_NODE_VECTOR_MATH) { + switch (node->custom1) { +case 2: + node->custom1 = -1; + break; +case 3: + node->custom1 = 7; + break; +case 5: + node->custom1 = 11; + break; + } +} + } +} + /* The Average operator is no longer available in the Vector Math node. * The Vector output was equal to the normalized sum of inputs vectors while * the Value output was equal
[Bf-blender-cvs] [fa622f66ee0] soc-2019-cycles-procedural: Merge remote-tracking branch 'origin/master' into soc-2019-cycles-procedural
Commit: fa622f66ee00549f9ccd43d4f335b9643156c55f Author: OmarSquircleArt Date: Sun Aug 4 14:56:55 2019 +0200 Branches: soc-2019-cycles-procedural https://developer.blender.org/rBfa622f66ee00549f9ccd43d4f335b9643156c55f Merge remote-tracking branch 'origin/master' into soc-2019-cycles-procedural === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [47335b4e61d] master: Add a new Copy As Driver context menu option for properties.
Commit: 47335b4e61db11e1ee2e38f421dc86fa3c3dd375 Author: Alexander Gavrilov Date: Wed Jul 31 18:42:03 2019 +0300 Branches: master https://developer.blender.org/rB47335b4e61db11e1ee2e38f421dc86fa3c3dd375 Add a new Copy As Driver context menu option for properties. It is a very common need to create drivers that set the value of a property to the value of some other property, but it currently requires multiple actions: Copy Data Path on the input property, adding a driver to the output property, selecting the input ID reference, and pasting the path. This adds a new Copy As Driver context menu option, which creates a complete driver in the clipboard that reads the current property, so all that remains is to paste it to the output property. It is also possible to paste just the new driver variable into an existing driver to combine multiple inputs. Reviewers: brecht, billreynish Differential Revision: https://developer.blender.org/D5382 === M source/blender/editors/animation/drivers.c M source/blender/editors/include/ED_keyframing.h M source/blender/editors/interface/interface_context_menu.c M source/blender/editors/interface/interface_ops.c === diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index 7ca0f95d6c4..935d11a388f 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -23,6 +23,7 @@ #include #include +#include #include "MEM_guardedalloc.h" @@ -95,56 +96,65 @@ FCurve *verify_driver_fcurve(ID *id, const char rna_path[], const int array_inde if ((fcu == NULL) && (add)) { /* use default settings to make a F-Curve */ -fcu = MEM_callocN(sizeof(FCurve), "FCurve"); +fcu = alloc_driver_fcurve(rna_path, array_index, add); -fcu->flag = (FCURVE_VISIBLE | FCURVE_SELECTED); -fcu->auto_smoothing = FCURVE_SMOOTH_CONT_ACCEL; +/* just add F-Curve to end of driver list */ +BLI_addtail(>drivers, fcu); + } -/* store path - make copy, and store that */ -fcu->rna_path = BLI_strdup(rna_path); -fcu->array_index = array_index; - -/* If add is negative, don't init this data yet, - * since it will be filled in by the pasted driver. */ -if (add > 0) { - BezTriple *bezt; - size_t i; - - /* add some new driver data */ - fcu->driver = MEM_callocN(sizeof(ChannelDriver), "ChannelDriver"); - - /* F-Modifier or Keyframes? */ - // FIXME: replace these magic numbers with defines - if (add == 2) { -/* Python API Backwards compatibility hack: - * Create FModifier so that old scripts won't break - * for now before 2.7 series -- (September 4, 2013) - */ -add_fmodifier(>modifiers, FMODIFIER_TYPE_GENERATOR, fcu); - } - else { -/* add 2 keyframes so that user has something to work with - * - These are configured to 0,0 and 1,1 to give a 1-1 mapping - * which can be easily tweaked from there. - */ -insert_vert_fcurve(fcu, 0.0f, 0.0f, BEZT_KEYTYPE_KEYFRAME, INSERTKEY_FAST); -insert_vert_fcurve(fcu, 1.0f, 1.0f, BEZT_KEYTYPE_KEYFRAME, INSERTKEY_FAST); + /* return the F-Curve */ + return fcu; +} -/* configure this curve to extrapolate */ -for (i = 0, bezt = fcu->bezt; (i < fcu->totvert) && bezt; i++, bezt++) { - bezt->h1 = bezt->h2 = HD_VECT; -} +struct FCurve *alloc_driver_fcurve(const char rna_path[], const int array_index, short add) +{ + FCurve *fcu = MEM_callocN(sizeof(FCurve), "FCurve"); -fcu->extend = FCURVE_EXTRAPOLATE_LINEAR; -calchandles_fcurve(fcu); - } + fcu->flag = (FCURVE_VISIBLE | FCURVE_SELECTED); + fcu->auto_smoothing = FCURVE_SMOOTH_CONT_ACCEL; + + /* store path - make copy, and store that */ + if (rna_path) { +fcu->rna_path = BLI_strdup(rna_path); + } + fcu->array_index = array_index; + + /* If add is negative, don't init this data yet, + * since it will be filled in by the pasted driver. */ + if (add > 0) { +BezTriple *bezt; +size_t i; + +/* add some new driver data */ +fcu->driver = MEM_callocN(sizeof(ChannelDriver), "ChannelDriver"); + +/* F-Modifier or Keyframes? */ +// FIXME: replace these magic numbers with defines +if (add == 2) { + /* Python API Backwards compatibility hack: + * Create FModifier so that old scripts won't break + * for now before 2.7 series -- (September 4, 2013) + */ + add_fmodifier(>modifiers, FMODIFIER_TYPE_GENERATOR, fcu); } +else { + /* add 2 keyframes so that user has something to work with + * - These are configured to 0,0 and 1,1 to give a 1-1 mapping + * which can be easily tweaked from there. + */ + insert_vert_fcurve(fcu, 0.0f, 0.0f,
[Bf-blender-cvs] [a2fe386153e] master: Text Editor UI
Commit: a2fe386153ee976bf5b687257f117ca4efb1ef8f Author: William Reynish Date: Sun Aug 4 12:51:28 2019 +0200 Branches: master https://developer.blender.org/rBa2fe386153ee976bf5b687257f117ca4efb1ef8f Text Editor UI Tweak Text Editor to fit better with the rest of Blender 2.8: - Move sidebar to the right - Add proper context menu - Move view toggles to the View menu - Change the indentation option to be an enum between spaces and tabs - Several layout tweaks Patch by @tintwotin / Peter Fog with additional tweaks by me. Differential Revision https://developer.blender.org/D5028 Reviewers: Brecht, Campbell === M release/scripts/startup/bl_ui/space_text.py M source/blender/blenloader/intern/versioning_280.c M source/blender/editors/space_text/space_text.c M source/blender/makesrna/intern/rna_text.c === diff --git a/release/scripts/startup/bl_ui/space_text.py b/release/scripts/startup/bl_ui/space_text.py index cf264bf6149..534561efab4 100644 --- a/release/scripts/startup/bl_ui/space_text.py +++ b/release/scripts/startup/bl_ui/space_text.py @@ -47,11 +47,6 @@ class TEXT_HT_header(Header): layout.separator_spacer() -row = layout.row(align=True) -row.prop(st, "show_line_numbers", text="") -row.prop(st, "show_word_wrap", text="") -row.prop(st, "show_syntax_highlight", text="") - if text: is_osl = text.name.endswith((".osl", ".osl")) @@ -125,60 +120,63 @@ class TEXT_PT_properties(Panel): def draw(self, context): layout = self.layout - +layout.use_property_split = True +layout.use_property_decorate = False st = context.space_data flow = layout.column_flow() -flow.prop(st, "show_line_numbers") -flow.prop(st, "show_word_wrap") -flow.prop(st, "show_syntax_highlight") -flow.prop(st, "show_line_highlight") -flow.prop(st, "use_live_edit") +if not st.text: +flow.active = False +row = flow.row(align=True) +st = context.space_data +row.prop(st, "show_margin", text = "Margin") +rowsub = row.row() +rowsub.active = st.show_margin +rowsub.prop(st, "margin_column", text = "") -flow = layout.column_flow() flow.prop(st, "font_size") flow.prop(st, "tab_width") text = st.text if text: -flow.prop(text, "use_tabs_as_spaces") - -flow.prop(st, "show_margin") -col = flow.column() -col.active = st.show_margin -col.prop(st, "margin_column") +layout.prop(text, "indentation") class TEXT_PT_find(Panel): bl_space_type = 'TEXT_EDITOR' bl_region_type = 'UI' bl_category = "Text" -bl_label = "Find" +bl_label = "Find & Replace" def draw(self, context): layout = self.layout - st = context.space_data # find -col = layout.column(align=True) +col = layout.column() row = col.row(align=True) -row.prop(st, "find_text", text="") -row.operator("text.find_set_selected", text="", icon='TEXT') +row.prop(st, "find_text", icon='VIEWZOOM', text="") +row.operator("text.find_set_selected", text="", icon='EYEDROPPER') col.operator("text.find") +layout.separator() + # replace -col = layout.column(align=True) +col = layout.column() row = col.row(align=True) -row.prop(st, "replace_text", text="") -row.operator("text.replace_set_selected", text="", icon='TEXT') +row.prop(st, "replace_text", icon='DECORATE_OVERRIDE', text="") +row.operator("text.replace_set_selected", text="", icon='EYEDROPPER') col.operator("text.replace") +layout.separator() + # settings -layout.prop(st, "use_match_case") row = layout.row(align=True) -row.prop(st, "use_find_wrap", text="Wrap") -row.prop(st, "use_find_all", text="All") +if not st.text: +row.active = False +row.prop(st, "use_match_case", text="Case", toggle=True) +row.prop(st, "use_find_wrap", text="Wrap", toggle=True) +row.prop(st, "use_find_all", text="All", toggle=True) class TEXT_MT_view(Menu): @@ -193,6 +191,13 @@ class TEXT_MT_view(Menu): layout.separator() +layout.prop(st, "show_line_numbers") +layout.prop(st, "show_word_wrap") +layout.prop(st, "show_syntax_highlight") +layout.prop(st, "show_line_highlight") + +layout.separator() + layout.operator("text.move", text="Top of File", ).type = 'FILE_TOP' @@ -280,6 +285,8 @@ class TEXT_MT_format(Menu): def draw(self, _context): layout = self.layout +
[Bf-blender-cvs] [c0aada58c98] master: Tweak Brush Gradient UI
Commit: c0aada58c9820b36176ec54d281513eeac65ca0c Author: William Reynish Date: Sun Aug 4 12:37:22 2019 +0200 Branches: master https://developer.blender.org/rBc0aada58c9820b36176ec54d281513eeac65ca0c Tweak Brush Gradient UI Gradient and Color are mutually exclusive, so we now communicate this in the UI much more clearly Differential Revision: https://developer.blender.org/D5395 Reviewers: brechrt === M release/scripts/startup/bl_ui/space_image.py M release/scripts/startup/bl_ui/space_view3d_toolbar.py M source/blender/makesrna/intern/rna_brush.c === diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py index a483ff3f291..eea34beaad1 100644 --- a/release/scripts/startup/bl_ui/space_image.py +++ b/release/scripts/startup/bl_ui/space_image.py @@ -1077,9 +1077,12 @@ class IMAGE_PT_paint_color(Panel, ImagePaintPanel): settings = context.tool_settings.image_paint brush = settings.brush -layout.active = not brush.use_gradient +layout.prop(brush, "color_type", expand=True) -brush_texpaint_common_color(self, context, layout, brush, settings, True) +if brush.color_type == 'COLOR': +brush_texpaint_common_color(self, context, layout, brush, settings, True) +elif brush.color_type == 'GRADIENT': +brush_texpaint_common_gradient(self, context, layout, brush, settings, True) class IMAGE_PT_paint_swatches(Panel, ImagePaintPanel): @@ -1106,38 +1109,6 @@ class IMAGE_PT_paint_swatches(Panel, ImagePaintPanel): layout.template_palette(settings, "palette", color=True) -class IMAGE_PT_paint_gradient(Panel, ImagePaintPanel): -bl_category = "Tool" -bl_context = ".paint_common_2d" -bl_parent_id = "IMAGE_PT_paint" -bl_label = "Gradient" -bl_options = {'DEFAULT_CLOSED'} - -@classmethod -def poll(cls, context): -settings = context.tool_settings.image_paint -brush = settings.brush -capabilities = brush.image_paint_capabilities - -return capabilities.has_color - -def draw_header(self, context): -settings = context.tool_settings.image_paint -brush = settings.brush -self.layout.prop(brush, "use_gradient", text="") - -def draw(self, context): -layout = self.layout -layout.use_property_split = False -layout.use_property_decorate = False # No animation. -settings = context.tool_settings.image_paint -brush = settings.brush - -layout.active = brush.use_gradient - -brush_texpaint_common_gradient(self, context, layout, brush, settings, True) - - class IMAGE_PT_paint_clone(Panel, ImagePaintPanel): bl_category = "Tool" bl_context = ".paint_common_2d" @@ -1740,7 +1711,6 @@ classes = ( IMAGE_PT_paint, IMAGE_PT_paint_color, IMAGE_PT_paint_swatches, -IMAGE_PT_paint_gradient, IMAGE_PT_paint_clone, IMAGE_PT_paint_options, IMAGE_PT_tools_brush_texture, diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index df605229922..262fafa596d 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -429,9 +429,16 @@ class VIEW3D_PT_tools_brush_color(Panel, View3DPaintPanel): settings = self.paint_settings(context) brush = settings.brush -layout.active = not brush.use_gradient +if context.vertex_paint_object: +brush_texpaint_common_color(self, context, layout, brush, settings, True) + +else: +layout.prop(brush, "color_type", expand=True) -brush_texpaint_common_color(self, context, layout, brush, settings, True) +if brush.color_type == 'COLOR': +brush_texpaint_common_color(self, context, layout, brush, settings, True) +elif brush.color_type == 'GRADIENT': +brush_texpaint_common_gradient(self, context, layout, brush, settings, True) class VIEW3D_PT_tools_brush_swatches(Panel, View3DPaintPanel): @@ -461,37 +468,6 @@ class VIEW3D_PT_tools_brush_swatches(Panel, View3DPaintPanel): layout.template_palette(settings, "palette", color=True) -class VIEW3D_PT_tools_brush_gradient(Panel, View3DPaintPanel): -bl_context = ".paint_common" # dot on purpose (access from topbar) -bl_parent_id = "VIEW3D_PT_tools_brush" -bl_label = "Gradient" -bl_options = {'DEFAULT_CLOSED'} - -@classmethod -def poll(cls, context): -settings = cls.paint_settings(context) -brush = settings.brush -capabilities = brush.image_paint_capabilities - -return capabilities.has_color and context.image_paint_object - -def draw_header(self,
[Bf-blender-cvs] [dd3cdf6f1e9] master: Fix T68202: GPencil Set Origin do not refresh until object is moved
Commit: dd3cdf6f1e9d7b19cc0b4bb85136a12e558e291d Author: Antonio Vazquez Date: Sun Aug 4 10:21:02 2019 +0200 Branches: master https://developer.blender.org/rBdd3cdf6f1e9d7b19cc0b4bb85136a12e558e291d Fix T68202: GPencil Set Origin do not refresh until object is moved === M source/blender/editors/object/object_transform.c === diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index 5934eab62bb..975aa0f5bac 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -1337,12 +1337,13 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) } } } -DEG_id_tag_update(>id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY); - tot_change++; if (centermode == ORIGIN_TO_GEOMETRY) { copy_v3_v3(ob->loc, gpcenter); } +DEG_id_tag_update(>id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY); +DEG_id_tag_update(>id, ID_RECALC_TRANSFORM); + ob->id.tag |= LIB_TAG_DOIT; do_inverse_offset = true; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs