[Bf-blender-cvs] [46866fb907b] soc-2018-npr: Solve merge errors in shader calls.

2019-05-15 Thread YimingWu
Commit: 46866fb907b9379b35522d877e97cea1f230d4b8
Author: YimingWu
Date:   Thu May 16 10:03:21 2019 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB46866fb907b9379b35522d877e97cea1f230d4b8

Solve merge errors in shader calls.

===

M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/draw/engines/lanpr/lanpr_snake.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c 
b/source/blender/draw/engines/lanpr/lanpr_engine.c
index a8d5f95ceab..c66d7011dc1 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -241,13 +241,13 @@ static void lanpr_cache_init(void *vedata){
DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, 
"normal_strength", >g_data->normal_strength, 1);// normal strength
DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, 
"depth_clamp", >g_data->depth_clamp, 1);// depth clamp
DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, 
"depth_strength", >g_data->depth_strength, 1);// depth strength
-   DRW_shgroup_call_add(stl->g_data->edge_detect_shgrp, quad, 
NULL);
+   DRW_shgroup_call(stl->g_data->edge_detect_shgrp, quad, NULL);
 
psl->edge_thinning = DRW_pass_create("Edge Thinning Stage 1", 
DRW_STATE_WRITE_COLOR);
stl->g_data->edge_thinning_shgrp = 
DRW_shgroup_create(lanpr_share.edge_thinning_shader, psl->edge_thinning);

DRW_shgroup_uniform_texture_ref(stl->g_data->edge_thinning_shgrp, 
"tex_sample_0", >color);
DRW_shgroup_uniform_int(stl->g_data->edge_thinning_shgrp, 
"stage", >g_data->stage, 1);
-   DRW_shgroup_call_add(stl->g_data->edge_thinning_shgrp, quad, 
NULL);
+   DRW_shgroup_call(stl->g_data->edge_thinning_shgrp, quad, NULL);
 
}
elif(lanpr->master_mode == LANPR_MASTER_MODE_DPIX && 
lanpr->active_layer)
@@ -345,7 +345,7 @@ static void lanpr_cache_populate(void *vedata, Object *ob){
 
struct GPUBatch *geom = DRW_cache_object_surface_get(ob);
if (geom) {
-   
DRW_shgroup_call_object_add_no_cull(stl->g_data->multipass_shgrp, geom, ob);
+   DRW_shgroup_call_object_no_cull(stl->g_data->multipass_shgrp, 
geom, ob);
}
 
if (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && 
lanpr->active_layer) {
@@ -393,13 +393,13 @@ static void lanpr_cache_finish(void *vedata){
 
LANPR_BatchItem *bi;
for (bi = pd->dpix_batch_list.first; bi; bi = (void 
*)bi->Item.next) {
-   DRW_shgroup_call_add(pd->dpix_transform_shgrp, 
bi->dpix_transform_batch, bi->ob->obmat);
-   DRW_shgroup_call_add(pd->dpix_preview_shgrp, 
bi->dpix_preview_batch, 0);
+   DRW_shgroup_call(pd->dpix_transform_shgrp, 
bi->dpix_transform_batch, bi->ob->obmat);
+   DRW_shgroup_call(pd->dpix_preview_shgrp, 
bi->dpix_preview_batch, 0);
}
 
if (lanpr->render_buffer && 
lanpr->render_buffer->DPIXIntersectionBatch) {
-   DRW_shgroup_call_add(pd->dpix_transform_shgrp, 
lanpr->render_buffer->DPIXIntersectionTransformBatch, 0);
-   DRW_shgroup_call_add(pd->dpix_preview_shgrp, 
lanpr->render_buffer->DPIXIntersectionBatch, 0);
+   DRW_shgroup_call(pd->dpix_transform_shgrp, 
lanpr->render_buffer->DPIXIntersectionTransformBatch, 0);
+   DRW_shgroup_call(pd->dpix_preview_shgrp, 
lanpr->render_buffer->DPIXIntersectionBatch, 0);
}
}
 }
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 104a881505c..c94669745d5 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -3308,7 +3308,7 @@ void lanpr_software_draw_scene(void *vedata, 
GPUFrameBuffer *dfb, int is_render)
DRW_shgroup_uniform_float(rb->ChainShgrp, 
"taper_r_strength", lanpr->use_same_taper ? tls : trs, 1);
 
//need to add component enable/disable option.
-   DRW_shgroup_call_add(rb->ChainShgrp, 
lanpr->render_buffer->ChainDrawBatch, NULL);
+   DRW_shgroup_call(rb->ChainShgrp, 
lanpr->render_buffer->ChainDrawBatch, NULL);
// deb

[Bf-blender-cvs] [54804117e89] soc-2018-npr: Merge branch 'master' into soc-2018-npr

2019-05-15 Thread YimingWu
Commit: 54804117e89931a1e7bfa67b2aaf4fe237881ab6
Author: YimingWu
Date:   Thu May 16 09:48:45 2019 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB54804117e89931a1e7bfa67b2aaf4fe237881ab6

Merge branch 'master' into soc-2018-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [f37533fc44c] soc-2019-npr: Merge branch 'master' into soc-2019-npr

2019-05-28 Thread YimingWu
Commit: f37533fc44cfb8a7eec919df0dae38998de10e2f
Author: YimingWu
Date:   Tue May 28 15:39:42 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBf37533fc44cfb8a7eec919df0dae38998de10e2f

Merge branch 'master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [847192b3d6e] soc-2019-npr: Use DRW_view APIs. (Potentially not doing it correctly.)

2019-05-28 Thread YimingWu
Commit: 847192b3d6e8cb572be44002dbe5c26e70592f81
Author: YimingWu
Date:   Tue May 28 16:32:11 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB847192b3d6e8cb572be44002dbe5c26e70592f81

Use DRW_view APIs. (Potentially not doing it correctly.)

===

M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c 
b/source/blender/draw/engines/lanpr/lanpr_engine.c
index c66d7011dc1..f56bc1948aa 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -477,7 +477,7 @@ void LANPR_render_cache(
 
 }
 
-static void workbench_render_matrices_init(RenderEngine *engine, Depsgraph 
*depsgraph)
+static void lanpr_render_matrices_init(RenderEngine *engine, Depsgraph 
*depsgraph)
 {
/* TODO(sergey): Shall render hold pointer to an evaluated camera 
instead? */
Scene *scene = DEG_get_evaluated_scene(depsgraph);
@@ -500,12 +500,9 @@ static void workbench_render_matrices_init(RenderEngine 
*engine, Depsgraph *deps
 
unit_m4(unitmat);
 
-   DRW_viewport_matrix_override_set(persmat, DRW_MAT_PERS);
-   DRW_viewport_matrix_override_set(persinv, DRW_MAT_PERSINV);
-   DRW_viewport_matrix_override_set(winmat, DRW_MAT_WIN);
-   DRW_viewport_matrix_override_set(wininv, DRW_MAT_WININV);
-   DRW_viewport_matrix_override_set(viewmat, DRW_MAT_VIEW);
-   DRW_viewport_matrix_override_set(viewinv, DRW_MAT_VIEWINV);
+   DRWView *view = DRW_view_create(viewmat, winmat, NULL, NULL, NULL);
+   DRW_view_default_set(view);
+   DRW_view_set_active(view);
 }
 
 int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR 
*lanpr, Scene *scene);
@@ -550,7 +547,7 @@ static void lanpr_render_to_image(LANPR_Data *vedata, 
RenderEngine *engine, stru
}
}
 
-   workbench_render_matrices_init(engine, draw_ctx->depsgraph);
+   lanpr_render_matrices_init(engine, draw_ctx->depsgraph);
 
/* refered to eevee's code */
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index c94669745d5..65607ad9989 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -3252,13 +3252,10 @@ void lanpr_software_draw_scene(void *vedata, 
GPUFrameBuffer *dfb, int is_render)
pd->dpix_viewport[3] = texh;
 
unit_m4(indentity_mat);
-
-   DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_PERS);
-   DRW_viewport_matrix_override_set(indentity_mat, 
DRW_MAT_PERSINV);
-   DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_WIN);
-   DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_WININV);
-   DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_VIEW);
-   DRW_viewport_matrix_override_set(indentity_mat, 
DRW_MAT_VIEWINV);
+   
+   DRWView *view = DRW_view_create(indentity_mat, indentity_mat, 
NULL, NULL, NULL);
+   DRW_view_default_set(view);
+   DRW_view_set_active(view);
 
if (lanpr->enable_chaining && 
lanpr->render_buffer->ChainDrawBatch) {
for (ll = lanpr->line_layers.last; ll; ll = ll->prev) {

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [c536d7b778e] soc-2019-npr: LANPR: Added a placeholder for GPencil sample modifier.

2019-06-04 Thread YimingWu
Commit: c536d7b778e0320cdbd804c7b3718fb3a2648564
Author: YimingWu
Date:   Tue Jun 4 18:31:09 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBc536d7b778e0320cdbd804c7b3718fb3a2648564

LANPR: Added a placeholder for GPencil sample modifier.

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/gpencil_modifiers/CMakeLists.txt
M   source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
M   source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
A   source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
M   source/blender/makesdna/DNA_gpencil_modifier_types.h
M   source/blender/makesrna/RNA_access.h
M   source/blender/makesrna/intern/rna_gpencil_modifier.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 5a078d22295..fbccf42f780 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -2267,6 +2267,10 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, 
Panel):
 row.prop(md, "layer_pass", text="Pass")
 row.prop(md, "invert_layer_pass", text="", icon='ARROW_LEFTRIGHT')
 
+def GP_SAMPLE(self, layout, ob, md):
+col = layout.column()
+col.prop(md, "length")
+
 
 classes = (
 DATA_PT_modifiers,
diff --git a/source/blender/gpencil_modifiers/CMakeLists.txt 
b/source/blender/gpencil_modifiers/CMakeLists.txt
index 6f0468426ac..d716f5465c1 100644
--- a/source/blender/gpencil_modifiers/CMakeLists.txt
+++ b/source/blender/gpencil_modifiers/CMakeLists.txt
@@ -58,6 +58,7 @@ set(SRC
   intern/MOD_gpencilsimplify.c
   intern/MOD_gpencilsmooth.c
   intern/MOD_gpencilstroke.c
+  intern/MOD_gpencilsample.c
   intern/MOD_gpencilsubdiv.c
   intern/MOD_gpencilthick.c
   intern/MOD_gpenciltime.c
diff --git a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h 
b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
index 6287ec0f56e..a6f2bc8e9e5 100644
--- a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
+++ b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
@@ -43,6 +43,7 @@ extern GpencilModifierTypeInfo modifierType_Gpencil_Offset;
 extern GpencilModifierTypeInfo modifierType_Gpencil_Armature;
 extern GpencilModifierTypeInfo modifierType_Gpencil_Time;
 extern GpencilModifierTypeInfo modifierType_Gpencil_Stroke;
+extern GpencilModifierTypeInfo modifierType_Gpencil_Sample;
 
 /* MOD_gpencil_util.c */
 void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[]);
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
index c46947fb6f5..150edae4f56 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
@@ -59,6 +59,7 @@ void gpencil_modifier_type_init(GpencilModifierTypeInfo 
*types[])
   INIT_GP_TYPE(Subdiv);
   INIT_GP_TYPE(Simplify);
   INIT_GP_TYPE(Stroke);
+  INIT_GP_TYPE(Sample);
   INIT_GP_TYPE(Thick);
   INIT_GP_TYPE(Tint);
   INIT_GP_TYPE(Color);
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
similarity index 77%
copy from source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
copy to source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
index 18cbf1f173f..fb23de84b67 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
@@ -72,8 +72,7 @@
 
 static void initData(GpencilModifierData *md)
 {
-  StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
-  gpmd->object = NULL;
+  SampleGpencilModifierData *gpmd = (SampleGpencilModifierData *)md;
 }
 
 static void copyData(const GpencilModifierData *md, GpencilModifierData 
*target)
@@ -91,7 +90,7 @@ static void bakeModifier(Main *UNUSED(bmain),
 
   for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
 for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
-  // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf);
+//stuff
   return;
 }
   }
@@ -103,19 +102,12 @@ static void bakeModifier(Main *UNUSED(bmain),
 static void generateStrokes(
 GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, 
bGPDframe *gpf)
 {
-  // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf);
-  lanpr_update_data_for_external(depsgraph);
-  lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf);
+  //stuff
 }
 
 static void updateDepsgraph(Gp

[Bf-blender-cvs] [bff6b5330f8] soc-2019-npr: Merge remote-tracking branch 'origin/master' into soc-2019-npr

2019-06-03 Thread YimingWu
Commit: bff6b5330f894247d5458d3f90e4e055c0a5780e
Author: YimingWu
Date:   Mon Jun 3 12:06:09 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBbff6b5330f894247d5458d3f90e4e055c0a5780e

Merge remote-tracking branch 'origin/master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [90137bbfa46] soc-2019-npr: Fix chaining occlusion error and formatted source files.

2019-06-03 Thread YimingWu
Commit: 90137bbfa46e79add94f68b05144c434f401c51b
Author: YimingWu
Date:   Mon Jun 3 15:24:15 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB90137bbfa46e79add94f68b05144c434f401c51b

Fix chaining occlusion error and formatted source files.

===

M   intern/ghost/intern/GHOST_ContextCGL.mm
M   intern/ghost/intern/GHOST_SystemCocoa.mm
M   source/blender/collada/AnimationImporter.cpp
M   source/blender/collada/AnimationImporter.h
M   source/blender/collada/ArmatureImporter.cpp
M   source/blender/collada/BCAnimationCurve.cpp
M   source/blender/collada/BCAnimationCurve.h
M   source/blender/collada/BCMath.h
M   source/blender/collada/BCSampleData.cpp
M   source/blender/collada/ControllerExporter.cpp
M   source/blender/draw/engines/gpencil/gpencil_engine.c
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
M   source/blender/makesdna/DNA_gpencil_types.h
M   source/blender/makesrna/intern/rna_gpencil.c
M   source/blender/makesrna/intern/rna_modifier.c

===

diff --git a/intern/ghost/intern/GHOST_ContextCGL.mm 
b/intern/ghost/intern/GHOST_ContextCGL.mm
index 12c340ffe97..0fca41306a6 100644
--- a/intern/ghost/intern/GHOST_ContextCGL.mm
+++ b/intern/ghost/intern/GHOST_ContextCGL.mm
@@ -34,7 +34,8 @@
 
 static void ghost_fatal_error_dialog(const char *msg)
 {
-  @autoreleasepool {
+  @autoreleasepool
+  {
 NSString *message = [NSString stringWithFormat:@"Error opening 
window:\n%s", msg];
 
 NSAlert *alert = [[NSAlert alloc] init];
@@ -337,7 +338,8 @@ static const OSType METAL_CORE_VIDEO_PIXEL_FORMAT = 
kCVPixelFormatType_32BGRA;
 
 void GHOST_ContextCGL::metalInit()
 {
-  @autoreleasepool {
+  @autoreleasepool
+  {
 id device = m_metalLayer.device;
 
 // Create a command queue for blit/present operation
@@ -532,7 +534,8 @@ void GHOST_ContextCGL::metalUpdateFramebuffer()
 
 void GHOST_ContextCGL::metalSwapBuffers()
 {
-  @autoreleasepool {
+  @autoreleasepool
+  {
 updateDrawingContext();
 glFlush();
 
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm 
b/intern/ghost/intern/GHOST_SystemCocoa.mm
index 376ebfa2a21..80a521a7ca5 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.mm
+++ b/intern/ghost/intern/GHOST_SystemCocoa.mm
@@ -1358,7 +1358,8 @@ bool GHOST_SystemCocoa::handleOpenDocumentRequest(void 
*filepathStr)
 
   // Check open windows if some changes are not saved
   if (m_windowManager->getAnyModifiedState()) {
-@autoreleasepool {
+@autoreleasepool
+{
   NSAlert *alert = [[NSAlert alloc] init];
   NSString *title = [NSString stringWithFormat:@"Opening %@", [filepath 
lastPathComponent]];
   NSString *text = @"Current document has not been saved.\nDo you really 
want to proceed?";
diff --git a/source/blender/collada/AnimationImporter.cpp 
b/source/blender/collada/AnimationImporter.cpp
index ef6c81efff7..be748110fb9 100644
--- a/source/blender/collada/AnimationImporter.cpp
+++ b/source/blender/collada/AnimationImporter.cpp
@@ -1376,7 +1376,7 @@ void AnimationImporter::add_bone_animation_sampled(Object 
*ob,
 for (int i = 0; i < totcu; i++) {
   if (i < 4) {
 add_bezt(newcu[i], fra, qref.quat()[i]);
- }
+  }
   else if (i < 7) {
 add_bezt(newcu[i], fra, loc[i - 4]);
   }
@@ -1842,7 +1842,7 @@ Object *AnimationImporter::translate_animation_OLD(
   if (is_rotation || is_matrix) {
 if (is_joint) {
   bPoseChannel *chan = BKE_pose_channel_find_name(ob->pose, bone_name);
-  chan->rotmode = (is_matrix)? ROT_MODE_QUAT : ROT_MODE_EUL;
+  chan->rotmode = (is_matrix) ? ROT_MODE_QUAT : ROT_MODE_EUL;
 }
 else {
   ob->rotmode = (is_matrix) ? ROT_MODE_QUAT : ROT_MODE_EUL;
diff --git a/source/blender/collada/AnimationImporter.h 
b/source/blender/collada/AnimationImporter.h
index c62ffdbafd3..0043dad7116 100644
--- a/source/blender/collada/AnimationImporter.h
+++ b/source/blender/collada/AnimationImporter.h
@@ -195,7 +195,10 @@ class AnimationImporter : private TransformReader, public 
AnimationImporterBase
 
   int setAnimType(const COLLADAFW::Animatable *prop, int type, int addition);
 
-  void modify_fcurve(std::vector *curves, const char *rna_path, int 
array_index, int scale=1);
+  void modify_fcurve(std::vector *curves,
+ const char *rna_path,
+ int array_index,
+ int

[Bf-blender-cvs] [dfbd3e4d9ef] soc-2019-npr: Grease pencil composition depth option added.

2019-06-03 Thread YimingWu
Commit: dfbd3e4d9efa9536d8e241746b3a816d6b86b028
Author: YimingWu
Date:   Mon Jun 3 13:57:52 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBdfbd3e4d9efa9536d8e241746b3a816d6b86b028

Grease pencil composition depth option added.

===

M   release/scripts/startup/bl_ui/properties_data_gpencil.py
M   source/blender/draw/engines/gpencil/gpencil_engine.c
M   source/blender/makesdna/DNA_gpencil_types.h
M   source/blender/makesrna/intern/rna_gpencil.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_gpencil.py 
b/release/scripts/startup/bl_ui/properties_data_gpencil.py
index 44a7990d570..cf3a780a146 100644
--- a/release/scripts/startup/bl_ui/properties_data_gpencil.py
+++ b/release/scripts/startup/bl_ui/properties_data_gpencil.py
@@ -396,6 +396,9 @@ class DATA_PT_gpencil_strokes(DataButtonsPanel, Panel):
 ob = context.object
 gpd = context.gpencil
 
+col = layout.column(align=True)
+col.prop(gpd, "disable_depth_composition", expand=True, 
icon='IMAGE_ZDEPTH')
+
 col = layout.column(align=True)
 col.prop(gpd, "stroke_depth_order")
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c 
b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 62b893867f3..a97a4a27833 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -1036,6 +1036,10 @@ void GPENCIL_draw_scene(void *ved)
 }
 
 /* draw mix pass */
+if(gpd->no_depth){
+  DRW_pass_state_remove(psl->mix_pass,
DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS);
+  
//DRW_pass_state_remove(psl->mix_pass_noblend,DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS);
+}
 DRW_draw_pass(psl->mix_pass);
 
 /* disable select flag */
diff --git a/source/blender/makesdna/DNA_gpencil_types.h 
b/source/blender/makesdna/DNA_gpencil_types.h
index 5a32f9bc23c..10cc8ec833f 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -468,7 +468,10 @@ typedef struct bGPdata {
   /** Settings for this datablock. */
   int flag;
 
-  char _pad1[4];
+  /** Not composite depth when drawing the layer*/
+  int no_depth;
+  
+  //char _pad1[4];
 
   /* Palettes */
   /** List of bGPDpalette's   - Deprecated (2.78 - 2.79 only). */
diff --git a/source/blender/makesrna/intern/rna_gpencil.c 
b/source/blender/makesrna/intern/rna_gpencil.c
index 276b685e93f..2b49f82f8d4 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -1659,6 +1659,13 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
   RNA_def_property_collection_funcs(
   prop, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
"rna_IDMaterials_assign_int");
 
+  /* composition Depth */
+  prop = RNA_def_property(srna, "disable_depth_composition", PROP_BOOLEAN, 
PROP_NONE);
+  RNA_def_property_boolean_sdna(prop, NULL, "no_depth",0);
+  RNA_def_property_ui_text(
+  prop, "Disable Depth Composition", "Do not use depth when rendering 
GPencil to 3D scene.");
+  RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
+
   /* Depth */
   prop = RNA_def_property(srna, "stroke_depth_order", PROP_ENUM, PROP_NONE);
   RNA_def_property_enum_sdna(prop, NULL, "draw_mode");

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [461008a3e8b] soc-2019-npr: Image and viewport now both support GPencil stroke overlay

2019-06-03 Thread YimingWu
Commit: 461008a3e8b00f0a48d0cd1704906575a42f0f9a
Author: YimingWu
Date:   Mon Jun 3 14:20:52 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB461008a3e8b00f0a48d0cd1704906575a42f0f9a

Image and viewport now both support GPencil stroke overlay

===

M   source/blender/draw/engines/gpencil/gpencil_engine.c
M   source/blender/draw/engines/gpencil/gpencil_engine.h
M   source/blender/draw/engines/gpencil/gpencil_render.c

===

diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c 
b/source/blender/draw/engines/gpencil/gpencil_engine.c
index a97a4a27833..6d48f40ee61 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -1035,13 +1035,20 @@ void GPENCIL_draw_scene(void *ved)
   stl->storage->do_select_outline = 0;
 }
 
+stl->storage->no_depth_composition = gpd->no_depth;
+
 /* draw mix pass */
 if(gpd->no_depth){
-  DRW_pass_state_remove(psl->mix_pass,
DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS);
-  
//DRW_pass_state_remove(psl->mix_pass_noblend,DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS);
-}
+
DRW_pass_state_remove(psl->mix_pass,DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS);
+  }
+
 DRW_draw_pass(psl->mix_pass);
 
+/* restore */
+if(gpd->no_depth){
+  
DRW_pass_state_add(psl->mix_pass,DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS);
+}
+
 /* disable select flag */
 stl->storage->do_select_outline = 0;
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h 
b/source/blender/draw/engines/gpencil/gpencil_engine.h
index a7e4c9d58d6..14a94e50323 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -172,6 +172,8 @@ typedef struct GPENCIL_Storage {
 
   short framebuffer_flag; /* flag what framebuffer need to create */
 
+  int no_depth_composition;
+
   int blend_mode;
   int clamp_layer;
   float blend_opacity;
diff --git a/source/blender/draw/engines/gpencil/gpencil_render.c 
b/source/blender/draw/engines/gpencil/gpencil_render.c
index 301c29af335..41c9ef0a177 100644
--- a/source/blender/draw/engines/gpencil/gpencil_render.c
+++ b/source/blender/draw/engines/gpencil/gpencil_render.c
@@ -345,8 +345,8 @@ void GPENCIL_render_to_image(void *vedata,
   /* check grease pencil render transparency */
   if (gp_pixel_rgba[3] > 0.0f) {
 if (src_pixel_rgba[3] > 0.0f) {
-  /* check z-depth */
-  if (gp_pixel_depth[0] > src_pixel_depth[0]) {
+  /* if depth enabled, then check z-depth */
+  if (!stl->storage->no_depth_composition && gp_pixel_depth[0] > 
src_pixel_depth[0]) {
 /* copy source z-depth */
 gp_pixel_depth[0] = src_pixel_depth[0];
 /* blend object on top */

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [bb48fcac2f3] soc-2019-npr: Render data distroy functions

2019-06-03 Thread YimingWu
Commit: bb48fcac2f31312a960daafcc1d83436696c77b2
Author: YimingWu
Date:   Mon Jun 3 15:06:32 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBbb48fcac2f31312a960daafcc1d83436696c77b2

Render data distroy functions

===

M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_engine.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h 
b/source/blender/draw/engines/lanpr/lanpr_access.h
index ad3f47e1dc8..608ad3f2a73 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -20,4 +20,6 @@ void lanpr_generate_gpencil_from_chain(
 
 int lanpr_count_chain(LANPR_RenderLineChain *rlc);
 
+void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb);
+
 #endif
diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h 
b/source/blender/draw/engines/lanpr/lanpr_all.h
index 30f889c0bdc..addcdc2124b 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -229,6 +229,8 @@ typedef struct LANPR_PrivateData {
 
   ListBase dpix_batch_list;
 
+  LANPR_RenderBuffer* rb_ref;
+
 } LANPR_PrivateData;
 
 typedef struct LANPR_StorageList {
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c 
b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 8523a55d893..3188b24bb37 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -4,6 +4,7 @@
 #include "BLI_linklist.h"
 #include "BLI_math_matrix.h"
 #include "lanpr_all.h"
+#include "lanpr_access.h"
 #include "DRW_render.h"
 #include "BKE_object.h"
 #include "DNA_mesh_types.h"
@@ -168,6 +169,8 @@ static void lanpr_engine_free(void)
 
   lanpr_destroy_atlas(vedata);
 
+  lanpr_destroy_render_data(stl->g_data->rb_ref);
+
   stl->g_data = 0;
 }
 
@@ -531,6 +534,9 @@ static void lanpr_draw_scene_exec(void *vedata, 
GPUFrameBuffer *dfb, int is_rend
 // should isolate these into a seperate function.
 lanpr_software_draw_scene(vedata, dfb, is_render);
   }
+
+  // Draw can create stuff there.
+  pd->rb_ref = lanpr->render_buffer;
 }
 
 static void lanpr_draw_scene(void *vedata)
@@ -651,6 +657,9 @@ static void lanpr_render_to_image(LANPR_Data *vedata,
   lanpr_cache_init(vedata);
   DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, 
LANPR_render_cache);
   lanpr_cache_finish(vedata);
+  
+  /* get ref for destroy data */
+  stl->g_data->rb_ref = lanpr->render_buffer;
 
   DRW_render_instance_buffer_finish();

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [acc075f33ca] soc-2019-npr: LANPR: GP stroke now automatically updates LANPR cache.

2019-06-03 Thread YimingWu
Commit: acc075f33ca8c38a46d4954e59258e74999c4c06
Author: YimingWu
Date:   Mon Jun 3 17:49:24 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBacc075f33ca8c38a46d4954e59258e74999c4c06

LANPR: GP stroke now automatically updates LANPR cache.

===

M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 85c9327d99f..8f1b4670c94 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -243,6 +243,7 @@ void lanpr_generate_gpencil_from_chain(
 printf("NULL LANPR rb!\n");
 return;
   }
+  if (scene->lanpr.master_mode != LANPR_MASTER_MODE_SOFTWARE) return;
 
   int color_idx = 0;
   int tot_points = 0;
@@ -279,3 +280,12 @@ void lanpr_generate_gpencil_from_chain(
 BKE_gpencil_stroke_add_points(gps, stroke_data, count, mat);
   }
 }
+
+void lanpr_update_data_for_external(Depsgraph *depsgraph){
+  Scene *scene = DEG_get_evaluated_scene(depsgraph);
+  SceneLANPR *lanpr = >lanpr;
+  if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE) return;
+  if (lanpr->render_buffer && lanpr->render_buffer->cached_for_frame !=  
scene->r.cfra){
+lanpr_compute_feature_lines_internal(depsgraph, lanpr, scene);
+  }
+}
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h 
b/source/blender/draw/engines/lanpr/lanpr_access.h
index be5b8b4a743..baa9dbb07ea 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -16,8 +16,14 @@ void lanpr_generate_gpencil_geometry(
 void lanpr_generate_gpencil_from_chain(
 GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, 
bGPDframe *gpf);
 
+void lanpr_update_data_for_external(Depsgraph *depsgraph);
+
+
 int lanpr_count_chain(LANPR_RenderLineChain *rlc);
 
+int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR 
*lanpr, Scene *scene);
+
 void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb);
 
+
 #endif
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
index 01dd03ee319..18cbf1f173f 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
@@ -104,6 +104,7 @@ static void generateStrokes(
 GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, 
bGPDframe *gpf)
 {
   // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf);
+  lanpr_update_data_for_external(depsgraph);
   lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf);
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [2897c90597b] soc-2019-npr: LANPR: rollback no-depth composition for GP, use object in front. Fixing chaining artefacts.

2019-06-03 Thread YimingWu
Commit: 2897c90597bde05c653998c7790fac8f767d515c
Author: YimingWu
Date:   Mon Jun 3 18:28:09 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB2897c90597bde05c653998c7790fac8f767d515c

LANPR: rollback no-depth composition for GP, use object in front. Fixing 
chaining artefacts.

===

M   release/scripts/startup/bl_ui/properties_data_gpencil.py
M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/draw/engines/gpencil/gpencil_engine.c
M   source/blender/draw/engines/gpencil/gpencil_engine.h
M   source/blender/draw/engines/gpencil/gpencil_render.c
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/makesdna/DNA_gpencil_types.h
M   source/blender/makesrna/intern/rna_gpencil.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_gpencil.py 
b/release/scripts/startup/bl_ui/properties_data_gpencil.py
index cf3a780a146..44a7990d570 100644
--- a/release/scripts/startup/bl_ui/properties_data_gpencil.py
+++ b/release/scripts/startup/bl_ui/properties_data_gpencil.py
@@ -396,9 +396,6 @@ class DATA_PT_gpencil_strokes(DataButtonsPanel, Panel):
 ob = context.object
 gpd = context.gpencil
 
-col = layout.column(align=True)
-col.prop(gpd, "disable_depth_composition", expand=True, 
icon='IMAGE_ZDEPTH')
-
 col = layout.column(align=True)
 col.prop(gpd, "stroke_depth_order")
 
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index a2c19ebbd74..5a078d22295 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -2250,6 +2250,8 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, 
Panel):
 col = layout.column()
 col.prop(md, "offset_object", text="Object")
 
+col.prop(ob,"show_in_front", text='Overlay', expand=True)
+
 col = layout.column()
 col.separator()
 col.label(text="Material:")
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c 
b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 3466ea721b5..49cad084a5f 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -1035,20 +1035,8 @@ void GPENCIL_draw_scene(void *ved)
   stl->storage->do_select_outline = 0;
 }
 
-stl->storage->no_depth_composition = gpd->no_depth;
-
-/* draw mix pass */
-if (gpd->no_depth) {
-  DRW_pass_state_remove(psl->mix_pass, DRW_STATE_WRITE_DEPTH | 
DRW_STATE_DEPTH_LESS);
-}
-
 DRW_draw_pass(psl->mix_pass);
 
-/* restore */
-if (gpd->no_depth) {
-  DRW_pass_state_add(psl->mix_pass, DRW_STATE_WRITE_DEPTH | 
DRW_STATE_DEPTH_LESS);
-}
-
 /* disable select flag */
 stl->storage->do_select_outline = 0;
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h 
b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 14a94e50323..a7e4c9d58d6 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -172,8 +172,6 @@ typedef struct GPENCIL_Storage {
 
   short framebuffer_flag; /* flag what framebuffer need to create */
 
-  int no_depth_composition;
-
   int blend_mode;
   int clamp_layer;
   float blend_opacity;
diff --git a/source/blender/draw/engines/gpencil/gpencil_render.c 
b/source/blender/draw/engines/gpencil/gpencil_render.c
index 41c9ef0a177..7d5d7cfab0b 100644
--- a/source/blender/draw/engines/gpencil/gpencil_render.c
+++ b/source/blender/draw/engines/gpencil/gpencil_render.c
@@ -346,7 +346,7 @@ void GPENCIL_render_to_image(void *vedata,
   if (gp_pixel_rgba[3] > 0.0f) {
 if (src_pixel_rgba[3] > 0.0f) {
   /* if depth enabled, then check z-depth */
-  if (!stl->storage->no_depth_composition && gp_pixel_depth[0] > 
src_pixel_depth[0]) {
+  if (gp_pixel_depth[0] > src_pixel_depth[0]) {
 /* copy source z-depth */
 gp_pixel_depth[0] = src_pixel_depth[0];
 /* blend object on top */
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 8f1b4670c94..524a08eacd5 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -268,7 +268,7 @@ void lanpr_generate_gpencil_from_chain(
 float *stroke_data = BLI_array_alloca(stroke_data, count * 
GP_PRIM_DATABUF_SIZE);
 
 for (rlci = rlc->chain.first; rlc

[Bf-blender-cvs] [4cc14267833] soc-2019-npr: LANPR: Memory now all in RenderBuffer->pool. engine_free() not called.

2019-06-03 Thread YimingWu
Commit: 4cc14267833837c0bb28fd23b49b12f07d25b8c1
Author: YimingWu
Date:   Mon Jun 3 16:28:29 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB4cc14267833837c0bb28fd23b49b12f07d25b8c1

LANPR: Memory now all in RenderBuffer->pool. engine_free() not called.

===

M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h 
b/source/blender/draw/engines/lanpr/lanpr_all.h
index 8bdaf0122a2..30812d3cba2 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -68,6 +68,9 @@
 
 #define tnsLinearItp(l, r, T) ((l) * (1.0f - (T)) + (r) * (T))
 
+extern struct RenderEngineType DRW_engine_viewport_lanpr_type;
+extern struct DrawEngineType draw_engine_lanpr_type;
+
 typedef struct LANPR_RenderBuffer LANPR_RenderBuffer;
 
 typedef struct LANPR_SharedResource {
@@ -418,8 +421,6 @@ typedef struct LANPR_BoundingArea {
 //#define TNS_OVERRIDE_ALL_OTHERS_IN_GROUP  3
 //#define TNS_OVERRIDE_ALL_OTHERS   4
 
-extern RenderEngineType DRW_engine_viewport_lanpr_type;
-
 #define tnsLinearItp(l, r, T) ((l) * (1.0f - (T)) + (r) * (T))
 
 #define TNS_TILE(tile, r, c, CCount) tile[r * CCount + c]
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 61e27b1bff2..da96096d54a 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -1123,8 +1123,7 @@ void lanpr_THREAD_calculate_line_occlusion(TaskPool 
*__restrict pool,
 void lanpr_THREAD_calculate_line_occlusion_begin(LANPR_RenderBuffer *rb)
 {
   int thread_count = rb->thread_count;
-  LANPR_RenderTaskInfo *rti = MEM_callocN(sizeof(LANPR_RenderTaskInfo) * 
thread_count,
-  "render task info");
+  LANPR_RenderTaskInfo *rti = MEM_callocN(sizeof(LANPR_RenderTaskInfo) * 
thread_count,"Task Pool");
   TaskScheduler *scheduler = BLI_task_scheduler_get();
   int i;
 
@@ -1142,7 +1141,8 @@ void 
lanpr_THREAD_calculate_line_occlusion_begin(LANPR_RenderBuffer *rb)
 BLI_task_pool_push(tp, lanpr_THREAD_calculate_line_occlusion, [i], 0, 
TASK_PRIORITY_HIGH);
   }
   BLI_task_pool_work_and_wait(tp);
-
+  BLI_task_pool_free(tp);
+  
   MEM_freeN(rti);
 }
 
@@ -1356,9 +1356,7 @@ LANPR_RenderElementLinkNode 
*lanpr_new_cull_triangle_space64(LANPR_RenderBuffer
 {
   LANPR_RenderElementLinkNode *reln;
 
-  LANPR_RenderTriangle *RenderTriangles = MEM_callocN(
-  64 * rb->triangle_size,
-  "render triangle space");  // CreateNewBuffer(LANPR_RenderTriangle, 64);
+  LANPR_RenderTriangle *RenderTriangles = 
mem_static_aquire(>render_data_pool, 64 * rb->triangle_size);  // 
CreateNewBuffer(LANPR_RenderTriangle, 64);
 
   reln = list_append_pointer_static_sized(>triangle_buffer_pointers,
   >render_data_pool,
@@ -1373,9 +1371,7 @@ LANPR_RenderElementLinkNode 
*lanpr_new_cull_point_space64(LANPR_RenderBuffer *rb
 {
   LANPR_RenderElementLinkNode *reln;
 
-  LANPR_RenderVert *Rendervertices = MEM_callocN(
-  sizeof(LANPR_RenderVert) * 64,
-  "render vert space");  // CreateNewBuffer(LANPR_RenderVert, 64);
+  LANPR_RenderVert *Rendervertices = mem_static_aquire(>render_data_pool, 
sizeof(LANPR_RenderVert) * 64);  // CreateNewBuffer(LANPR_RenderVert, 64);
 
   reln = list_append_pointer_static_sized(>vertex_buffer_pointers,
   >render_data_pool,
@@ -2073,11 +2069,9 @@ void lanpr_make_render_geometry_buffers_object(Object *o,
   CanFindFreestyle = 1;
 }
 
-orv = MEM_callocN(sizeof(LANPR_RenderVert) * bm->totvert, "object render 
verts");
-ort = MEM_callocN(
-bm->totface * rb->triangle_size,
-"object render triangles");  // CreateNewBuffer(LANPR_RenderTriangle, 
mo->triangle_count);
-orl = MEM_callocN(sizeof(LANPR_RenderLine) * bm->totedge, "object render 
edge");
+orv = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderVert) * 
bm->totvert);
+ort = mem_static_aquire(>render_data_pool, bm->totface * 
rb->triangle_size);
+orl = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderLine) * 
bm->totedge);
 
 reln = list_append_pointer_static_sized(>vertex_buffer_pointers,
 >render_data_pool,
@@ -2206,10 +2200,8 @@ void lanpr_make_render_geometry_buffers(Depsgraph 
*depsgraph,
   tmat_inverse_44d(rb->vp_inverse, rb->view_projection);
 
   void *a;
-  while (a = BLI_pophead(>triangle_buffer_pointers))
-MEM_freeN(a);
-  while (a = BLI_pophead(>vertex_buffer_pointers)

[Bf-blender-cvs] [a4b0a65909e] soc-2019-npr: GPencil: Backbone Stretcher modifier

2019-06-04 Thread YimingWu
Commit: a4b0a65909e85acb2bf613ccc8db492242b23832
Author: YimingWu
Date:   Wed Jun 5 12:20:48 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBa4b0a65909e85acb2bf613ccc8db492242b23832

GPencil: Backbone Stretcher modifier

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/blenkernel/BKE_gpencil.h
M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/editors/interface/interface_templates.c
M   source/blender/editors/screen/screen_ops.c
M   source/blender/editors/space_file/filesel.c
M   source/blender/editors/undo/ed_undo.c
M   source/blender/gpencil_modifiers/CMakeLists.txt
M   source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
M   source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
A   source/blender/gpencil_modifiers/intern/MOD_gpencilbackbonestretch.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
M   source/blender/makesdna/DNA_gpencil_modifier_types.h
M   source/blender/makesdna/DNA_gpencil_types.h
M   source/blender/makesrna/RNA_access.h
M   source/blender/makesrna/intern/rna_constraint.c
M   source/blender/makesrna/intern/rna_gpencil.c
M   source/blender/makesrna/intern/rna_gpencil_modifier.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index fbccf42f780..687d41a4d44 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -2270,6 +2270,10 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, 
Panel):
 def GP_SAMPLE(self, layout, ob, md):
 col = layout.column()
 col.prop(md, "length")
+
+def GP_BACKBONE(self, layout, ob, md):
+col = layout.column()
+col.prop(md, "length")
 
 
 classes = (
diff --git a/source/blender/blenkernel/BKE_gpencil.h 
b/source/blender/blenkernel/BKE_gpencil.h
index ae19b40f7bf..ebc21493b53 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -212,6 +212,7 @@ void BKE_gpencil_stroke_2d_flat_ref(const struct bGPDspoint 
*ref_points,
 void BKE_gpencil_transform(struct bGPdata *gpd, float mat[4][4]);
 
 bool BKE_gpencil_sample_stroke(struct bGPDstroke *gps, float dist);
+bool BKE_gpencil_stretch_stroke(struct bGPDstroke *gps, float dist);
 bool BKE_gpencil_smooth_stroke(struct bGPDstroke *gps, int i, float inf);
 bool BKE_gpencil_smooth_stroke_strength(struct bGPDstroke *gps, int 
point_index, float influence);
 bool BKE_gpencil_smooth_stroke_thickness(struct bGPDstroke *gps, int 
point_index, float influence);
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 7c54cfd1737..1bc1c0e1257 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1397,49 +1397,60 @@ void BKE_gpencil_dvert_ensure(bGPDstroke *gps)
 
 /* ** */
 
-static int stroke_march_next_point(bGPDstroke *gps, int next_point_index, 
float* current, float dist, float *result, float* pressure, float* strength){
-  float remaining_till_next=0.0f;
+static int stroke_march_next_point(bGPDstroke *gps,
+   int next_point_index,
+   float *current,
+   float dist,
+   float *result,
+   float *pressure,
+   float *strength)
+{
+  float remaining_till_next = 0.0f;
   float remaining_march = dist;
   float step_start[3];
   float point[3];
 
-  if(!(next_point_indextotpoints)) return -1;
+  if (!(next_point_index < gps->totpoints))
+return -1;
 
-  copy_v3_v3(step_start,current);
+  copy_v3_v3(step_start, current);
 
   point[0] = gps->points[next_point_index].x;
   point[1] = gps->points[next_point_index].y;
   point[2] = gps->points[next_point_index].z;
-  remaining_till_next = len_v3v3(point,step_start);
+  remaining_till_next = len_v3v3(point, step_start);
 
-  while(remaining_till_next < remaining_march){
+  while (remaining_till_next < remaining_march) {
 remaining_march -= remaining_till_next;
 point[0] = gps->points[next_point_index].x;
 point[1] = gps->points[next_point_index].y;
 point[2] = gps->points[next_point_index].z;
-copy_v3_v3(step_start,point);
+copy_v3_v3(step_start, point);
 next_

[Bf-blender-cvs] [f8f010887b6] soc-2019-npr: Merge remote-tracking branch 'origin/master' into soc-2019-npr

2019-06-04 Thread YimingWu
Commit: f8f010887b6da8595d11a5aa076f59148df30c15
Author: YimingWu
Date:   Wed Jun 5 11:09:28 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBf8f010887b6da8595d11a5aa076f59148df30c15

Merge remote-tracking branch 'origin/master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [4f2b6c95faa] soc-2019-npr: Merge branch 'master' into soc-2019-npr

2019-05-30 Thread YimingWu
Commit: 4f2b6c95faa3ae267249f19f3710d97618b91617
Author: YimingWu
Date:   Fri May 31 08:12:45 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB4f2b6c95faa3ae267249f19f3710d97618b91617

Merge branch 'master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [be9ef613fce] soc-2019-npr: Fixed smooth contour modifier not showing up bug.

2019-05-30 Thread YimingWu
Commit: be9ef613fceccb014a95c729038975aa2cdac3c1
Author: YimingWu
Date:   Fri May 31 10:47:57 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBbe9ef613fceccb014a95c729038975aa2cdac3c1

Fixed smooth contour modifier not showing up bug.

===

M   source/blender/makesrna/intern/rna_modifier.c

===

diff --git a/source/blender/makesrna/intern/rna_modifier.c 
b/source/blender/makesrna/intern/rna_modifier.c
index 4c2bcb66064..6838b3a89df 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -104,6 +104,11 @@ const EnumPropertyItem 
rna_enum_object_modifier_type_items[] = {
  ICON_MOD_WIREFRAME,
  "Wireframe",
  "Generate a wireframe on the edges of a mesh"},
+ {eModifierType_MyBMesh,
+ "MY_BMESH",
+ ICON_MOD_SMOOTH,
+ "Smooth Contour",
+ "Generate smooth contour geometry for feature line rendering."},
 {0, "", 0, N_("Deform"), ""},
 {eModifierType_Armature, "ARMATURE", ICON_MOD_ARMATURE, "Armature", ""},
 {eModifierType_Cast, "CAST", ICON_MOD_CAST, "Cast", ""},

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [b3d98f35321] soc-2019-npr: Grease pencil conversion now projects onto 3D space now. Need perspective correction fix for cut points.

2019-05-30 Thread YimingWu
Commit: b3d98f35321581ddd8c17f5790f348fb9bf02d25
Author: YimingWu
Date:   Fri May 31 10:20:35 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBb3d98f35321581ddd8c17f5790f348fb9bf02d25

Grease pencil conversion now projects onto 3D space now. Need perspective 
correction fix for cut points.

===

M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_snake.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 5d667a8a040..417974234aa 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -270,9 +270,9 @@ void lanpr_generate_gpencil_from_chain(
 
for(rlci = 
rlc->chain.first;rlci;rlci=(LANPR_RenderLineChainItem*)rlci->item.next){
float opatity=rlci->occlusion?0.1f:1.0f;
-   stroke_data[array_idx] = rlci->pos[0];
-   stroke_data[array_idx + 1] = rlci->pos[1];
-   stroke_data[array_idx + 2] = rlci->pos[2];
+   stroke_data[array_idx] = rlci->gpos[0];
+   stroke_data[array_idx + 1] = rlci->gpos[1];
+   stroke_data[array_idx + 2] = rlci->gpos[2];
stroke_data[array_idx + 3] = opatity; //thickness
stroke_data[array_idx + 4] = opatity; //hardness?
array_idx+=5;
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 3f315187e15..045ca737e1a 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -95,6 +95,7 @@ LANPR_RenderLineChainItem 
*lanpr_append_render_line_chain_point(LANPR_RenderBuff
 
LANPR_RenderLineChain *rlc,
 float x,
 float y,
+float gx, 
float gy, float gz,
 float *normal,
 char type,
 int level)
@@ -104,6 +105,9 @@ LANPR_RenderLineChainItem 
*lanpr_append_render_line_chain_point(LANPR_RenderBuff
 
   rlci->pos[0] = x;
   rlci->pos[1] = y;
+  rlci->gpos[0] = gx;
+  rlci->gpos[1] = gy;
+  rlci->gpos[2] = gz;
   copy_v3_v3(rlci->normal, normal);
   rlci->line_type = type & LANPR_EDGE_FLAG_ALL_TYPE;
   rlci->occlusion = level;
@@ -118,6 +122,7 @@ LANPR_RenderLineChainItem 
*lanpr_push_render_line_chain_point(LANPR_RenderBuffer
   
LANPR_RenderLineChain *rlc,
   float x,
   float y,
+  float gx, float 
gy, float gz,
   float *normal,
   char type,
   int level)
@@ -127,6 +132,9 @@ LANPR_RenderLineChainItem 
*lanpr_push_render_line_chain_point(LANPR_RenderBuffer
 
   rlci->pos[0] = x;
   rlci->pos[1] = y;
+  rlci->gpos[0] = gx;
+  rlci->gpos[1] = gy;
+  rlci->gpos[2] = gz;
   copy_v3_v3(rlci->normal, normal);
   rlci->line_type = type & LANPR_EDGE_FLAG_ALL_TYPE;
   rlci->occlusion = level;
@@ -190,6 +198,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
   LANPR_RenderLine *rl;
   LANPR_BoundingArea *ba;
   LANPR_RenderLineSegment *rls;
+  real* inv = rb->vp_inverse;
 
   for (rl = rb->all_render_lines.first; rl; rl = 
(LANPR_RenderLine*)rl->item.next) {
 
@@ -224,7 +233,11 @@ void 
lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
 new_rv = rl->l;
 rls = rl->segments.first;
 lanpr_push_render_line_chain_point(
-rb, rlc, new_rv->fbcoord[0], new_rv->fbcoord[1], N, rl->flags, 
rls->occlusion);
+rb, rlc, new_rv->fbcoord[0], new_rv->fbcoord[1],
+new_rv->gloc[0],
+new_rv->gloc[1],
+new_rv->gloc[2],
+ N, rl->flags, rls->occlusion);
 while (ba && (new_rl

[Bf-blender-cvs] [14ffd946280] soc-2019-npr: Finished structure naming convention changes in lanpr_all.h

2019-05-28 Thread YimingWu
Commit: 14ffd9462808c70aaacf54f6e50d1c57919937d6
Author: YimingWu
Date:   Tue May 28 21:54:04 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB14ffd9462808c70aaacf54f6e50d1c57919937d6

Finished structure naming convention changes in lanpr_all.h

===

M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_dpix.c
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/draw/engines/lanpr/lanpr_snake.c
M   
source/blender/draw/engines/lanpr/shaders/lanpr_snake_image_peel_frag.glsl

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h 
b/source/blender/draw/engines/lanpr/lanpr_all.h
index 6f5bcb76a26..899082f4740 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -44,7 +44,7 @@
 #define tMatDist2v(p1, p2) \
   sqrt(((p1)[0] - (p2)[0]) * ((p1)[0] - (p2)[0]) + ((p1)[1] - (p2)[1]) * 
((p1)[1] - (p2)[1]))
 
-#define tnsLinearItp(L, R, T) ((L) * (1.0f - (T)) + (R) * (T))
+#define tnsLinearItp(l, r, T) ((l) * (1.0f - (T)) + (r) * (T))
 
 typedef struct LANPR_RenderBuffer LANPR_RenderBuffer;
 
@@ -82,18 +82,18 @@ typedef struct LANPR_SharedResource {
 #define TNS_DPIX_TEXTURE_SIZE 2048
 
 typedef struct LANPR_TextureSample {
-  Link Item;
+  Link item;
   int X, Y;
   float Z;  // for future usage
 } LANPR_TextureSample;
 
 typedef struct LANPR_LineStripPoint {
-  Link Item;
+  Link item;
   float P[3];
 } LANPR_LineStripPoint;
 
 typedef struct LANPR_LineStrip {
-  Link Item;
+  Link item;
   ListBase points;
   int point_count;
   float total_length;
@@ -140,11 +140,11 @@ 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
+  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_out_pl;
@@ -232,7 +232,7 @@ typedef struct LANPR_StorageList {
 } LANPR_StorageList;
 
 typedef struct LANPR_BatchItem {
-  Link Item;
+  Link item;
   GPUBatch *dpix_transform_batch;
   GPUBatch *dpix_preview_batch;
   Object *ob;
@@ -383,9 +383,9 @@ typedef struct LANPR_RenderBuffer {
 #define TNS_CULL_USED 1
 
 typedef struct LANPR_RenderTriangle {
-  Link Item;
-  struct LANPR_RenderVert *V[3];
-  struct LANPR_RenderLine *RL[3];
+  Link item;
+  struct LANPR_RenderVert *v[3];
+  struct LANPR_RenderLine *rl[3];
   real gn[3];
   real gc[3];
   // struct BMFace *F;
@@ -396,37 +396,37 @@ typedef struct LANPR_RenderTriangle {
 } LANPR_RenderTriangle;
 
 typedef struct LANPR_RenderTriangleThread {
-  struct LANPR_RenderTriangle Base;
+  struct LANPR_RenderTriangle base;
   struct LANPR_RenderLine *testing[127];  // max thread support;
 } LANPR_RenderTriangleThread;
 
 typedef struct LANPR_RenderElementLinkNode {
-  Link Item;
-  void *Pointer;
-  int ElementCount;
-  void *ObjectRef;
-  char Additional;
+  Link item;
+  void *pointer;
+  int element_count;
+  void *object_ref;
+  char additional;
 } LANPR_RenderElementLinkNode;
 
 typedef struct LANPR_RenderLineSegment {
-  Link Item;
-  real at; // at==0: leftat==1: right
-  u8bit OcclusionLevel;// after "at" point
-  short MaterialMaskMark;  // e.g. to determine lines beind a glass window 
material.
+  Link item;
+  real at;   // at==0: leftat==1: right
+  u8bit occlusion;   // after "at" point
+  short material_mask_mark;  // e.g. to determine lines beind a glass window 
material.
 } LANPR_RenderLineSegment;
 
 typedef struct LANPR_RenderVert {
-  Link Item;
-  real GLocation[4];
-  real FrameBufferCoord[4];
-  int FrameBufferCoordi[2];
-  struct BMVert *V;  // Used As R When Intersecting
-  struct LANPR_RenderLine *IntersectingLine;
-  struct LANPR_RenderLine *IntersectintLine2;
-  struct LANPR_RenderTriangle *IntersectWith;  //   Positive 1 
Negative 0
+  Link item;
+  real gloc[4];
+  real fbcoord[4];
+  int fbcoordi[2];
+  struct BMVert *v;  // Used As r When Intersecting
+  struct LANPR_RenderLine *intersecting_line;
+  struct LANPR_RenderLine *intersecting_line2;
+  struct 

[Bf-blender-cvs] [0d1bf0623b4] soc-2019-npr: Adding lanpr to grease pencil strokes modifier.

2019-05-30 Thread YimingWu
Commit: 0d1bf0623b4767d8e688b509277f1f64130a839e
Author: YimingWu
Date:   Thu May 30 15:16:58 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB0d1bf0623b4767d8e688b509277f1f64130a839e

Adding lanpr to grease pencil strokes  modifier.

===

M   release/datafiles/locale
M   release/scripts/addons
M   release/scripts/addons_contrib
M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/draw/CMakeLists.txt
A   source/blender/draw/engines/lanpr/lanpr_access.c
A   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
A   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/draw/engines/lanpr/lanpr_snake.c
M   source/blender/draw/engines/lanpr/lanpr_util.c
M   source/blender/draw/engines/lanpr/lanpr_util.h
M   source/blender/gpencil_modifiers/CMakeLists.txt
M   source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
M   source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
A   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
M   source/blender/makesdna/DNA_gpencil_modifier_types.h
M   source/blender/makesrna/RNA_access.h
M   source/blender/makesrna/intern/rna_gpencil_modifier.c
M   source/tools

===

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 469c949d1ca..ad82c4ce43e 16
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 469c949d1ca882be19daa128842f813b72a944d8
+Subproject commit ad82c4ce43ef2801ef51e75af1f9702992478b02
diff --git a/release/scripts/addons b/release/scripts/addons
index c88411ff777..8e6f485cf5b 16
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit c88411ff7776a2db5d6ef6117a1b2faa42a95611
+Subproject commit 8e6f485cf5b160c425d7da7c743879b20f3d6a96
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 310578043de..7077ff07384 16
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 310578043dec1aae382eb6a447ae1d103792d7e6
+Subproject commit 7077ff07384491d1f7630484995557f1c7302dae
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 5b83cfe354e..a2c19ebbd74 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -2243,6 +2243,27 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, 
Panel):
 sub = row.row(align=True)
 sub.active = bool(md.vertex_group)
 sub.prop(md, "invert_vertex_group", text="", icon='ARROW_LEFTRIGHT')
+
+def GP_STROKE(self, layout, ob, md):
+gpd = ob.data
+
+col = layout.column()
+col.prop(md, "offset_object", text="Object")
+
+col = layout.column()
+col.separator()
+col.label(text="Material:")
+row = col.row(align=True)
+row.prop(md, "pass_index", text="Pass")
+row.prop(md, "invert_material_pass", text="", icon='ARROW_LEFTRIGHT')
+
+col.label(text="Layer:")
+row = col.row(align=True)
+row.prop_search(md, "layer", gpd, "layers", text="", 
icon='GREASEPENCIL')
+row.prop(md, "invert_layers", text="", icon='ARROW_LEFTRIGHT')
+row = layout.row(align=True)
+row.prop(md, "layer_pass", text="Pass")
+row.prop(md, "invert_layer_pass", text="", icon='ARROW_LEFTRIGHT')
 
 
 classes = (
diff --git a/source/blender/draw/CMakeLists.txt 
b/source/blender/draw/CMakeLists.txt
index 3cdf07fd7ff..1e44cae7a8c 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -132,7 +132,7 @@ set(SRC
engines/lanpr/lanpr_ops.c
engines/lanpr/lanpr_util.c
engines/lanpr/lanpr_chain.c
-
+  engines/lanpr/lanpr_access.c
 
   DRW_engine.h
   intern/DRW_render.h
@@ -159,6 +159,8 @@ set(SRC
   engines/workbench/workbench_private.h
engines/lanpr/lanpr_util.h
engines/lanpr/lanpr_all.h
+  engines/lanpr/lanpr_access.h
+  engines/lanpr/lanpr_data_types.h
 )
 
 set(LIB
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
new file mode 100644
index 000..f61e256
--- /dev/null
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -0,0 +1,233 @@
+#include "DNA_gpe

[Bf-blender-cvs] [413b2256d90] soc-2019-npr: Spell check

2019-05-30 Thread YimingWu
Commit: 413b2256d90e9f575e128926fddd4011c387944f
Author: YimingWu
Date:   Thu May 30 21:10:16 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB413b2256d90e9f575e128926fddd4011c387944f

Spell check

===

M   source/blender/makesrna/intern/rna_material.c

===

diff --git a/source/blender/makesrna/intern/rna_material.c 
b/source/blender/makesrna/intern/rna_material.c
index ae3f0ff1f46..764996b828a 100644
--- a/source/blender/makesrna/intern/rna_material.c
+++ b/source/blender/makesrna/intern/rna_material.c
@@ -469,7 +469,7 @@ static void rna_def_material_display(StructRNA *srna)
   RNA_def_property_update(prop, 0, "rna_Material_update");
 }
 
-static void rna_def_material_lanpr(struct StructRNA *srna, struct BlenerRNA 
*brna)
+static void rna_def_material_lanpr(struct StructRNA *srna, struct BlenderRNA 
*brna)
 {
   PropertyRNA *prop;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [37cc7063c7c] soc-2019-npr: Fixing LANPR structure naming to blender's style

2019-05-28 Thread YimingWu
Commit: 37cc7063c7c6fa29f73b84ca7c8b012f7a90db4f
Author: YimingWu
Date:   Tue May 28 20:52:17 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB37cc7063c7c6fa29f73b84ca7c8b012f7a90db4f

Fixing LANPR structure naming to blender's style

===

M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_dpix.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h 
b/source/blender/draw/engines/lanpr/lanpr_all.h
index a1e0fe92afb..c0ffa67e3c1 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -264,142 +264,123 @@ typedef struct LANPR_Data {
 typedef struct LANPR_RenderTaskInfo {
//thrd_t   ThreadHandle;
 
-   struct LANPR_RenderBuffer *RenderBuffer;
-   int ThreadID;
+   struct LANPR_RenderBuffer *render_buffer;
+   int thread_id;
 
-   struct nListItemPointer *Contour;
-   ListBase ContourPointers;
+   struct nListItemPointer *contour;
+   ListBase contour_pointers;
 
-   struct nListItemPointer *Intersection;
-   ListBase IntersectionPointers;
+   struct nListItemPointer *intersection;
+   ListBase intersection_pointers;
 
-   struct nListItemPointer *Crease;
-   ListBase CreasePointers;
+   struct nListItemPointer *crease;
+   ListBase crease_pointers;
 
-   struct nListItemPointer *Material;
-   ListBase MaterialPointers;
+   struct nListItemPointer *material;
+   ListBase material_pointers;
 
-   struct nListItemPointer *EdgeMark;
-   ListBase EdgeMarkPointers;
+   struct nListItemPointer *edge_mark;
+   ListBase edge_mark_pointers;
 
 } LANPR_RenderTaskInfo;
 
 typedef struct LANPR_RenderBuffer {
struct LANPR_RenderBuffer *prev, *next;
 
-   //nSafeString*   Name;
+   int  w, h;
+   int  tile_size_w, tile_size_h;
+   int  tile_count_x, tile_count_y;
+   real width_per_tile, height_per_tile;
+   tnsMatrix44d view_projection;
+   tnsMatrix44d vp_inverse;
 
-   //tnsFrameBuffer*FrameBuffer;
-   //now we move frame buffer content here
-   int W, H;
-   int SubPixelSample;//1,2,3,4, Use Squared Value.
-   int TileSizeW, TileSizeH;
-   int TileCountX, TileCountY;
-   real WidthPerTile, HeightPerTile;
-   tnsMatrix44d ViewProjection;
-   tnsMatrix44d VPInverse;
+   int  output_mode;
+   int  output_aa_level;
 
-   nSafeString *OutputFolder;   //end with a slash;
-   nSafeString *ImagePrefix;
-   nSafeString *ImageNameConnector;
+   struct LANPR_BoundingArea *initial_bounding_areas;
+   u32bit bounding_area_count;
 
-   int OutputMode;
-   int OutputAALevel;
+   ListBase vertex_buffer_pointers;
+   ListBase line_buffer_pointers;
+   ListBase triangle_buffer_pointers;
+   ListBase all_render_lines;
 
-   struct LANPR_BoundingArea *InitialBoundingAreas;
-   u32bit BoundingAreaCount;
-   //u32bit BaVBO;
-   //u32bit   BaFillVBO;
-
-   ListBase VertexBufferPointers;
-   ListBase LineBufferPointers;
-   ListBase TriangleBufferPointers;
-   ListBase AllRenderLines;
-
-   ListBase IntersectingVertexBuffer;
+   ListBase intersecting_vertex_buffer;
 
struct GPUBatch *DPIXIntersectionTransformBatch;
struct GPUBatch *DPIXIntersectionBatch;
 
/* use own-implemented one */
-   nStaticMemoryPool RenderDataPool;
+   nStaticMemoryPool render_data_pool;
 
-   Material   *MaterialPointers[2048];
+   Material*material_pointers[2048];
 
//render status
 
-   int cached_for_frame;
+   int  cached_for_frame;
 
-   real ViewVector[3];
+   real view_vector[3];
 
-   int TriangleSize;
+   int  triangle_size;
 
-   u32bit ContourCount;
-   u32bit ContourProcessed;
-   nListItemPointer *ContourManaged;
-   ListBase Contours;
+   u32bitcontour_count;
+   u32bitcontour_processed;
+   nListItemPointer *contour_managed;
+   ListBase contours;
 
-   u32bit IntersectionCount;
-   u32bit IntersectionProcessed;
-   nListItemPointer *IntersectionManaged;
-   ListBase IntersectionLines;
+   u32bitintersection_count;
+   u32bitintersection_processed;
+   nListItemPointer *intersection_managed;
+   ListBase intersection_lines;
 
-   u32bit CreaseCount;
-   u32bit CreaseProcessed;
-   nListItemPointer

[Bf-blender-cvs] [28944549d68] soc-2019-npr: Clang format the code.

2019-05-28 Thread YimingWu
Commit: 28944549d6827ab17fa86b99944b3f3d72b0456f
Author: YimingWu
Date:   Tue May 28 21:15:20 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB28944549d6827ab17fa86b99944b3f3d72b0456f

Clang format the code.

===

M   intern/opensubdiv/internal/opensubdiv_evaluator.cc
M   intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc
M   intern/opensubdiv/internal/opensubdiv_evaluator_internal.h
M   intern/opensubdiv/opensubdiv_evaluator_capi.h
M   release/datafiles/locale
M   release/scripts/addons
M   release/scripts/addons_contrib
M   source/blender/blenkernel/intern/scene.c
M   source/blender/blenloader/intern/readfile.c
M   source/blender/blenloader/intern/versioning_280.c
M   source/blender/blenloader/intern/writefile.c
M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_dpix.c
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/draw/engines/lanpr/lanpr_snake.c
M   source/blender/draw/engines/lanpr/lanpr_util.c
M   source/blender/draw/engines/lanpr/lanpr_util.h
M   source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_frag.glsl
M   source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_passthrough_vert.glsl
M   source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge_frag.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_snake_image_peel_frag.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_frag.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_geom.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_vert.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl
M   source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl
M   
source/blender/draw/engines/lanpr/shaders/lanpr_software_passthrough_vert.glsl
M   source/blender/draw/intern/DRW_render.h
M   source/blender/draw/intern/draw_manager.c
M   source/blender/draw/intern/draw_manager_texture.c
M   source/blender/editors/mesh/mesh_ops.c
M   source/blender/editors/render/render_intern.h
M   source/blender/editors/render/render_ops.c
M   source/blender/makesdna/DNA_lanpr_types.h
M   source/blender/makesdna/DNA_material_types.h
M   source/blender/makesdna/DNA_modifier_types.h
M   source/blender/makesdna/DNA_scene_types.h
M   source/blender/makesrna/intern/rna_lanpr.c
M   source/blender/makesrna/intern/rna_material.c
M   source/blender/makesrna/intern/rna_modifier.c
M   source/blender/makesrna/intern/rna_scene.c
M   source/blender/modifiers/intern/MOD_mybmesh.c
M   source/tools

===

diff --git a/intern/opensubdiv/internal/opensubdiv_evaluator.cc 
b/intern/opensubdiv/internal/opensubdiv_evaluator.cc
index 0fe9c7567ea..c91408e8fd3 100644
--- a/intern/opensubdiv/internal/opensubdiv_evaluator.cc
+++ b/intern/opensubdiv/internal/opensubdiv_evaluator.cc
@@ -25,123 +25,120 @@
 
 namespace {
 
-void setCoarsePositions(OpenSubdiv_Evaluator* evaluator,
-const float* positions,
-const int start_vertex_index, const int num_vertices) {
-  evaluator->internal->eval_output->setCoarsePositions(positions,
-   start_vertex_index,
-   num_vertices);
+void setCoarsePositions(OpenSubdiv_Evaluator *evaluator,
+const float *positions,
+const int start_vertex_index,
+const int num_vertices)
+{
+  evaluator->internal->eval_output->setCoarsePositions(
+  positions, start_vertex_index, num_vertices);
 }
 
-void setVaryingData(OpenSubdiv_Evaluator* evaluator,
-const float* varying_data,
-const int start_vertex_index, const int num_vertices) {
-  evaluator->internal->eval_output->setVaryingData(varying_data,
-   start_vertex_index,
-   num_vertices);
+void setVaryingData(OpenSubdiv_Evaluator *evaluator,
+const float *varying_data,
+const int start_vertex_index,
+const int num_vertices)
+{
+  evaluator->internal->eval_output->setVaryingData(varying_dat

[Bf-blender-cvs] [19d3c5f9a6b] soc-2019-npr: Continue renaming structure variables.

2019-05-28 Thread YimingWu
Commit: 19d3c5f9a6bf765c255e4e9513a8e0d86b6674cf
Author: YimingWu
Date:   Tue May 28 21:09:32 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB19d3c5f9a6bf765c255e4e9513a8e0d86b6674cf

Continue renaming structure variables.

===

M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h 
b/source/blender/draw/engines/lanpr/lanpr_all.h
index c0ffa67e3c1..e5533cce986 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -267,32 +267,32 @@ typedef struct LANPR_RenderTaskInfo {
struct LANPR_RenderBuffer *render_buffer;
int thread_id;
 
-   struct nListItemPointer *contour;
-   ListBase contour_pointers;
+   LinkData *contour;
+   ListBase  contour_pointers;
 
-   struct nListItemPointer *intersection;
-   ListBase intersection_pointers;
+   LinkData *intersection;
+   ListBase  intersection_pointers;
 
-   struct nListItemPointer *crease;
-   ListBase crease_pointers;
+   LinkData *crease;
+   ListBase  crease_pointers;
 
-   struct nListItemPointer *material;
-   ListBase material_pointers;
+   LinkData *material;
+   ListBase  material_pointers;
 
-   struct nListItemPointer *edge_mark;
-   ListBase edge_mark_pointers;
+   LinkData *edge_mark;
+   ListBase  edge_mark_pointers;
 
 } LANPR_RenderTaskInfo;
 
 typedef struct LANPR_RenderBuffer {
struct LANPR_RenderBuffer *prev, *next;
 
-   int  w, h;
-   int  tile_size_w, tile_size_h;
-   int  tile_count_x, tile_count_y;
-   real width_per_tile, height_per_tile;
-   tnsMatrix44d view_projection;
-   tnsMatrix44d vp_inverse;
+   int   w, h;
+   int   tile_size_w, tile_size_h;
+   int   tile_count_x, tile_count_y;
+   real  width_per_tile, height_per_tile;
+   tnsMatrix44d  view_projection;
+   tnsMatrix44d  vp_inverse;
 
int  output_mode;
int  output_aa_level;
@@ -300,52 +300,52 @@ typedef struct LANPR_RenderBuffer {
struct LANPR_BoundingArea *initial_bounding_areas;
u32bit bounding_area_count;
 
-   ListBase vertex_buffer_pointers;
-   ListBase line_buffer_pointers;
-   ListBase triangle_buffer_pointers;
-   ListBase all_render_lines;
+   ListBase  vertex_buffer_pointers;
+   ListBase  line_buffer_pointers;
+   ListBase  triangle_buffer_pointers;
+   ListBase  all_render_lines;
 
-   ListBase intersecting_vertex_buffer;
+   ListBase  intersecting_vertex_buffer;
 
-   struct GPUBatch *DPIXIntersectionTransformBatch;
-   struct GPUBatch *DPIXIntersectionBatch;
+   struct GPUBatch  *DPIXIntersectionTransformBatch;
+   struct GPUBatch  *DPIXIntersectionBatch;
 
/* use own-implemented one */
nStaticMemoryPool render_data_pool;
 
-   Material*material_pointers[2048];
+   Material *material_pointers[2048];
 
//render status
 
-   int  cached_for_frame;
+   int   cached_for_frame;
 
-   real view_vector[3];
+   real  view_vector[3];
 
-   int  triangle_size;
+   int   triangle_size;
 
u32bitcontour_count;
u32bitcontour_processed;
-   nListItemPointer *contour_managed;
+   LinkData *contour_managed;
ListBase contours;
 
u32bitintersection_count;
u32bitintersection_processed;
-   nListItemPointer *intersection_managed;
+   LinkData *intersection_managed;
ListBase intersection_lines;
 
u32bitcrease_count;
u32bitcrease_processed;
-   nListItemPointer *crease_managed;
+   LinkData *crease_managed;
ListBase  crease_lines;
 
u32bitmaterial_line_count;
u32bitmaterial_processed;
-   nListItemPointer *material_managed;
+   LinkData *material_managed;
ListBase  material_lines;
 
u32bitedge_mark_count;
u32bitedge_mark_processed;
-   nListItemPointer *edge_mark_managed;
+   LinkData *edge_mark_managed;
ListBase  edge_marks;
 
ListBase  chains;
@@ -388,25 +388,25 @@ typedef struct LANPR_RenderBuffer {
 #define TNS_CULL_USED1
 
 typedef struct LANPR_RenderTriangle {
-   nListItem Item

[Bf-blender-cvs] [902c358932e] soc-2019-npr: Merge branch 'master' into soc-2019-npr

2019-06-03 Thread YimingWu
Commit: 902c358932e27ddb77a644a99519727d6b954665
Author: YimingWu
Date:   Tue Jun 4 12:15:43 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB902c358932e27ddb77a644a99519727d6b954665

Merge branch 'master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [181e4ba1cf4] soc-2019-npr: LANPR: Fixing chaining occlusion values for GPencil to use.

2019-06-03 Thread YimingWu
Commit: 181e4ba1cf49560f2d9d94880d882a9f5d765462
Author: YimingWu
Date:   Tue Jun 4 13:48:40 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB181e4ba1cf49560f2d9d94880d882a9f5d765462

LANPR: Fixing chaining occlusion values for GPencil to use.

===

M   source/blender/draw/engines/lanpr/lanpr_chain.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index a648bccb58d..953d316990a 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -281,6 +281,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
  N,
  new_rl->flags,
  rls->occlusion);
+  last_occlusion = rls->occlusion;
 }
   }
   else if (new_rv == new_rl->r) {
@@ -318,6 +319,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
 }
 
 // step 2: this line
+int last_occlusion;
 rls = rl->segments.first;
 for (rls = (LANPR_RenderLineSegment *)rls->item.next; rls;
  rls = (LANPR_RenderLineSegment *)rls->item.next) {
@@ -326,6 +328,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
   lanpr_LinearInterpolate3dv(rl->l->gloc, rl->r->gloc, rls->at, gpos);
   lanpr_append_render_line_chain_point(
   rb, rlc, lpos[0], lpos[1], gpos[0], gpos[1], gpos[2], N, rl->flags, 
rls->occlusion);
+  last_occlusion = rls->occlusion;
 }
 lanpr_append_render_line_chain_point(rb,
  rlc,
@@ -336,7 +339,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
  rl->r->gloc[2],
  N,
  rl->flags,
- 0);
+ last_occlusion);
 
 // step 3: grow right
 ba = lanpr_get_point_bounding_area(rb, rl->r->fbcoord[0], 
rl->r->fbcoord[1]);
@@ -356,16 +359,16 @@ void 
lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
 rls = new_rl->segments.last;
 last_occlusion = rls->occlusion;
 rlci->occlusion = last_occlusion;
-rls = (LANPR_RenderLineSegment *)rls->item.prev;
+//rls = (LANPR_RenderLineSegment *)rls->item.prev;
 if (rls)
   last_occlusion = rls->occlusion;
 for (rls = new_rl->segments.last; rls; rls = (LANPR_RenderLineSegment 
*)rls->item.prev) {
   double gpos[3], lpos[3];
   lanpr_LinearInterpolate3dv(new_rl->l->fbcoord, new_rl->r->fbcoord, 
rls->at, lpos);
   lanpr_LinearInterpolate3dv(new_rl->l->gloc, new_rl->r->gloc, 
rls->at, gpos);
-  last_occlusion = (LANPR_RenderLineSegment *)rls->item.prev ?
-   ((LANPR_RenderLineSegment 
*)rls->item.prev)->occlusion :
-   0;
+  last_occlusion = (LANPR_RenderLineSegment *)rls->item.next ?
+   ((LANPR_RenderLineSegment 
*)rls->item.next)->occlusion :
+   last_occlusion;
   lanpr_append_render_line_chain_point(rb,
rlc,
lpos[0],
@@ -397,6 +400,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
N,
new_rl->flags,
rls->occlusion);
+  last_occlusion = rls->occlusion;
 }
 lanpr_append_render_line_chain_point(rb,
  rlc,
@@ -407,7 +411,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
  new_rl->r->gloc[2],
  N,
  new_rl->flags,
- 100);
+ last_occlusion);
   }
   ba = lanpr_get_point_bounding_area(rb, new_rv->fbcoord[0], 
new_rv->fbcoord[1]);
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [00202210caa] soc-2019-npr: Make LANPR main panel show in all engines. Fixed "up" button bug. Crease value now in software mode as well.

2019-06-03 Thread YimingWu
Commit: 00202210caac41352707ec21a6bd6b40b752830e
Author: YimingWu
Date:   Tue Jun 4 12:47:54 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB00202210caac41352707ec21a6bd6b40b752830e

Make LANPR main panel show in all engines. Fixed "up" button bug. Crease value 
now in software mode as well.

===

M   release/scripts/startup/bl_ui/properties_scene.py
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/release/scripts/startup/bl_ui/properties_scene.py 
b/release/scripts/startup/bl_ui/properties_scene.py
index 3a12b89916b..8f68a447876 100644
--- a/release/scripts/startup/bl_ui/properties_scene.py
+++ b/release/scripts/startup/bl_ui/properties_scene.py
@@ -617,44 +617,50 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel):
 scene = context.scene
 lanpr = scene.lanpr
 active_layer = lanpr.layers.active_layer 
+
+# make LANPR main panel now visible under all engines.
+# composition method yet to be deteremined.
 
-sc = lanpr_get_composition_scene(scene)
-
-if sc is not None:
-layout.label(text = 'You are adjusting values for LANPR compostion 
scene.')
-row = layout.row()
-row.scale_y=1.5
-row.operator("lanpr.goto_composition_scene")
-layout.operator("lanpr.remove_composition_scene")
-scene = sc
-lanpr = scene.lanpr
-active_layer = lanpr.layers.active_layer
-return
-elif scene.render.engine!='BLENDER_LANPR':
-layout.label(text = 'Select LANPR engine or use composition 
scene.')
-layout.operator("lanpr.make_composition_scene")
-return
-
-if lanpr_is_composition_scene(scene):
-row = layout.row()
-row.scale_y=1.5
-row.operator("lanpr.goto_original_scene") 
-
-layout.label(text='LANPR Composition')
-row = layout.row()
-row.scale_y=1.5
-row.scale_x=4
-row.operator("lanpr.render_composited", icon = 'RENDER_STILL')
-row.scale_x=1
-row.prop(lanpr,"composite_render_animation", toggle=True, icon = 
'RENDER_ANIMATION')
+#sc = lanpr_get_composition_scene(scene)
 
-layout.label(text='Mode:')
+#if sc is not None:
+#layout.label(text = 'You are adjusting values for LANPR 
compostion scene.')
+#row = layout.row()
+#row.scale_y=1.5
+#row.operator("lanpr.goto_composition_scene")
+#layout.operator("lanpr.remove_composition_scene")
+#scene = sc
+#lanpr = scene.lanpr
+#active_layer = lanpr.layers.active_layer
+#return
+#elif scene.render.engine!='BLENDER_LANPR':
+#layout.label(text = 'Select LANPR engine or use composition 
scene.')
+#layout.operator("lanpr.make_composition_scene")
+#return
+
+#if lanpr_is_composition_scene(scene):
+#   row = layout.row()
+#row.scale_y=1.5
+#row.operator("lanpr.goto_original_scene") 
+#
+#layout.label(text='LANPR Composition')
+#row = layout.row()
+#row.scale_y=1.5
+#row.scale_x=4
+#row.operator("lanpr.render_composited", icon = 'RENDER_STILL')
+#row.scale_x=1
+#row.prop(lanpr,"composite_render_animation", toggle=True, icon = 
'RENDER_ANIMATION')
 
-layout.prop(lanpr, "master_mode", expand=True) 
+if scene.render.engine!='BLENDER_LANPR':
+layout.label(text='Mode:')
+layout.prop(lanpr, "master_mode", expand=True) 
+else:
+layout.label(text='Only Software mode result is used to generate 
GP stroke.')
 
 if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE":
 
 layout.prop(lanpr, "background_color")
+layout.prop(lanpr, "crease_threshold")
 
 if lanpr.master_mode == "SOFTWARE":
 layout.label(text="Enable On Demand:")
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index da96096d54a..a89aff7438e 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4237,7 +4237,7 @@ void SCENE_OT_lanpr_auto_create_line_layer(struct 
wmOperatorType *ot)
 void SCENE_OT_lanpr_move_line_layer(struct wmOperatorType *ot)
 {
   static const EnumPropertyItem line_layer_move[] = {
-  {1, "up", 0, "Up

[Bf-blender-cvs] [f23223ee262] soc-2019-npr: LANPR: Fixed last point occlusion error on "this line" chaining.

2019-06-04 Thread YimingWu
Commit: f23223ee2624654a904134c93db8c08149c3faa9
Author: YimingWu
Date:   Tue Jun 4 14:48:05 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBf23223ee2624654a904134c93db8c08149c3faa9

LANPR: Fixed last point occlusion error on "this line" chaining.

===

M   source/blender/draw/engines/lanpr/lanpr_chain.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 953d316990a..5270af22c5f 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -319,8 +319,8 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
 }
 
 // step 2: this line
-int last_occlusion;
 rls = rl->segments.first;
+int last_occlusion = ((LANPR_RenderLineSegment *)rls)->occlusion;
 for (rls = (LANPR_RenderLineSegment *)rls->item.next; rls;
  rls = (LANPR_RenderLineSegment *)rls->item.next) {
   double gpos[3], lpos[3];

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [cbc0c4846b5] soc-2019-npr: LANPR: Split chains based on occlusion value changes.

2019-06-04 Thread YimingWu
Commit: cbc0c4846b5f642e7f26b2f175c60481f31bb590
Author: YimingWu
Date:   Tue Jun 4 16:24:40 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBcbc0c4846b5f642e7f26b2f175c60481f31bb590

LANPR: Split chains based on occlusion value changes.

===

M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 5270af22c5f..5f1b1fd0920 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -203,6 +203,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
   LANPR_BoundingArea *ba;
   LANPR_RenderLineSegment *rls;
   real *inv = rb->vp_inverse;
+  int last_occlusion;
 
   for (rl = rb->all_render_lines.first; rl; rl = (LANPR_RenderLine 
*)rl->item.next) {
 
@@ -249,8 +250,6 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
 while (ba && (new_rl = lanpr_get_connected_render_line(ba, new_rv, 
_rv))) {
   new_rl->flags |= LANPR_EDGE_FLAG_CHAIN_PICKED;
 
-  int last_occlusion;
-
   N[0] = N[1] = N[2] = 0;
   if (new_rl->tl) {
 N[0] += new_rl->tl->gn[0];
@@ -320,7 +319,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
 
 // step 2: this line
 rls = rl->segments.first;
-int last_occlusion = ((LANPR_RenderLineSegment *)rls)->occlusion;
+last_occlusion = ((LANPR_RenderLineSegment *)rls)->occlusion;
 for (rls = (LANPR_RenderLineSegment *)rls->item.next; rls;
  rls = (LANPR_RenderLineSegment *)rls->item.next) {
   double gpos[3], lpos[3];
@@ -349,8 +348,6 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb, float dist_thre
 while (ba && (new_rl = lanpr_get_connected_render_line(ba, new_rv, 
_rv))) {
   new_rl->flags |= LANPR_EDGE_FLAG_CHAIN_PICKED;
 
-  int last_occlusion;
-
   // fix leading vertex type
   rlci = rlc->chain.last;
   rlci->line_type = new_rl->flags & LANPR_EDGE_FLAG_ALL_TYPE;
@@ -428,6 +425,39 @@ void 
lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
   }
 }
 
+void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb){
+  LANPR_RenderLineChain *rlc,*new_rlc;
+  LANPR_RenderLineChainItem *rlci,*next_rlci;
+  ListBase swap={0};
+
+  while (rlc = BLI_pophead(>chains)){
+rlc->item.next=rlc->item.prev=NULL;
+BLI_addtail(,rlc);
+  }
+
+  while (rlc = BLI_pophead()){
+rlc->item.next=rlc->item.prev=NULL;
+BLI_addtail(>chains,rlc);
+LANPR_RenderLineChainItem* first_rlci = 
(LANPR_RenderLineChainItem*)rlc->chain.first;
+int fixed_occ = first_rlci->occlusion;
+for(rlci = (LANPR_RenderLineChainItem*)first_rlci->item.next;rlci;rlci = 
next_rlci){
+  next_rlci = (LANPR_RenderLineChainItem*)rlci->item.next;
+  if(rlci->occlusion != fixed_occ){
+new_rlc = lanpr_create_render_line_chain(rb);
+new_rlc->chain.first = rlci;
+new_rlc->chain.last = rlc->chain.last;
+rlc->chain.last=rlci->item.prev;
+((LANPR_RenderLineChainItem*)rlc->chain.last)->item.next=0;
+rlci->item.prev=0;
+rlc=new_rlc;
+fixed_occ = rlci->occlusion;
+  }
+}
+  }
+
+  
+}
+
 int lanpr_count_chain(LANPR_RenderLineChain *rlc)
 {
   LANPR_RenderLineChainItem *rlci;
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index a89aff7438e..c64f3bd4a4e 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -3713,6 +3713,7 @@ void lanpr_viewport_draw_offline_result(LANPR_TextureList 
*txl,
 }
 
 void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float 
dist_threshold);
+void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb);
 
 void lanpr_calculate_normal_object_vector(LANPR_LineLayer *ll, float 
*normal_object_direction)
 {
@@ -3959,6 +3960,7 @@ int lanpr_compute_feature_lines_internal(Depsgraph 
*depsgraph, SceneLANPR *lanpr
 
   if (lanpr->enable_chaining) {
 lanpr_NO_THREAD_chain_feature_lines(rb, 0.1);  // should use 
user_adjustable value
+lanpr_split_chains_for_fixed_occlusion(rb);
   }
 
   rb->cached_for_frame = scene->r.cfra;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [7f1a9480fc1] soc-2019-npr: LANPR: Fixed last segment missing error on chain splitting.

2019-06-04 Thread YimingWu
Commit: 7f1a9480fc16d4895858f7acdd89bf66e3d97e05
Author: YimingWu
Date:   Tue Jun 4 16:41:12 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB7f1a9480fc16d4895858f7acdd89bf66e3d97e05

LANPR: Fixed last segment missing error on chain splitting.

===

M   source/blender/draw/engines/lanpr/lanpr_chain.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 5f1b1fd0920..a9e2d7f3edc 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -430,10 +430,10 @@ void 
lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb){
   LANPR_RenderLineChainItem *rlci,*next_rlci;
   ListBase swap={0};
 
-  while (rlc = BLI_pophead(>chains)){
-rlc->item.next=rlc->item.prev=NULL;
-BLI_addtail(,rlc);
-  }
+  swap.first = rb->chains.first;
+  swap.last = rb->chains.last;
+
+  rb->chains.last = rb->chains.first = NULL;
 
   while (rlc = BLI_pophead()){
 rlc->item.next=rlc->item.prev=NULL;
@@ -449,6 +449,12 @@ void 
lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb){
 rlc->chain.last=rlci->item.prev;
 ((LANPR_RenderLineChainItem*)rlc->chain.last)->item.next=0;
 rlci->item.prev=0;
+
+//end the previous one
+lanpr_append_render_line_chain_point(rb,rlc,rlci->pos[0],rlci->pos[1],
+rlci->gpos[0],rlci->gpos[1],rlci->gpos[2],
+rlci->normal,rlci->line_type,fixed_occ);
+
 rlc=new_rlc;
 fixed_occ = rlci->occlusion;
   }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [a4287db20db] soc-2019-npr: LANPR: Fix smooth contour modifier merge errors.

2019-06-18 Thread YimingWu
Commit: a4287db20db995aae22e02fb6e9702e0697c72d6
Author: YimingWu
Date:   Tue Jun 18 16:22:27 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBa4287db20db995aae22e02fb6e9702e0697c72d6

LANPR: Fix smooth contour modifier merge errors.

===

M   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
M   source/blender/makesdna/DNA_gpencil_modifier_types.h
M   source/blender/makesdna/DNA_modifier_types.h
M   source/blender/makesrna/intern/rna_gpencil_modifier.c
M   source/blender/modifiers/intern/MOD_mybmesh.c

===

diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
index 6a170f3bf3a..75707792f53 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
@@ -68,24 +68,16 @@
 #include "MOD_gpencil_util.h"
 #include "MOD_gpencil_modifiertypes.h"
 
-<<<<<<< HEAD
 #include "lanpr_access.h"
 
 static void initData(GpencilModifierData *md)
 {
   StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
   gpmd->object = NULL;
-===
-static void initData(GpencilModifierData *md)
-{
-   StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
-   gpmd->object = NULL;
->>>>>>> DarkdefenderRepo/npr_tess
 }
 
 static void copyData(const GpencilModifierData *md, GpencilModifierData 
*target)
 {
-<<<<<<< HEAD
   BKE_gpencil_modifier_copyData_generic(md, target);
 }
 
@@ -109,193 +101,19 @@ static void bakeModifier(Main *UNUSED(bmain),
   deformStroke(md, depsgraph, ob, gpl, gpf);
 }
   }
-===
-   BKE_gpencil_modifier_copyData_generic(md, target);
-}
-
-static void generate_geometry(
-GpencilModifierData *md, Depsgraph *UNUSED(depsgraph),
-Object *ob, bGPDlayer *gpl, bGPDframe *gpf)
-{
-   StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
-
-   if( gpmd->object == NULL ){
-   printf("NULL object!\n");
-   return;
-   }
-
-   int color_idx = 0;
-   int tot_points = 0;
-   short thickness = 1;
-
-   float mat[4][4];
-
-   unit_m4(mat);
-
-   BMesh *bm;
-
-   bm = BKE_mesh_to_bmesh_ex(
-   gpmd->object->data,
-   &(struct BMeshCreateParams){0},
-   &(struct BMeshFromMeshParams){
-   .calc_face_normal = true,
-   .cd_mask_extra = CD_MASK_ORIGINDEX,
-   });
-
-   BMVert *vert;
-   BMIter iter;
-
-   BM_ITER_MESH (vert, , bm, BM_VERTS_OF_MESH) {
-
-//Have we already used this vert?
-   if(!BM_elem_flag_test(vert, BM_ELEM_SELECT)){
-   continue;
-   }
-
-   BMVert *prepend_vert = NULL;
-   BMVert *next_vert = vert;
-   //Chain together the C verts and export them as GP strokes 
(chain in object space)
-   BMVert *edge_vert;
-   BMEdge *e;
-   BMIter iter_e;
-
-   LinkNodePair chain = {NULL, NULL};
-
-   int connected_c_verts;
-
-   while( next_vert != NULL ){
-
-   connected_c_verts = 0;
-   vert = next_vert;
-
-   BLI_linklist_append(, vert);
-
-   BM_elem_flag_disable(vert, BM_ELEM_SELECT);
-
-   BM_ITER_ELEM (e, _e, vert, BM_EDGES_OF_VERT) {
-   edge_vert = BM_edge_other_vert(e, vert);
-
-   if(BM_elem_flag_test(edge_vert, 
BM_ELEM_SELECT)){
-   if( connected_c_verts == 0 ){
-   next_vert = edge_vert;
-   } else if( connected_c_verts == 1 && 
prepend_vert == NULL ){
-   prepend_vert = edge_vert;
-   } else {
-   printf("C verts not connected in a simple line!\n");
-   }
-   connected_c_verts++;
-   }
-
-   }
-
-   if( connected_c_verts == 0 ){
-   next_vert = NULL;
-   }
-
-   }
-
-   LinkNode *pre_list = chain.list;
-
-   while( prepend_vert != NULL ) {
-
-   connected_c_verts = 0;
-vert = prepend_vert;
-
-   BLI_linklist_prepend(_list, vert);
-
-   BM_elem_flag_disable(vert, BM_ELEM_SELECT);
-
-   BM_ITER_ELEM (e, _e, vert, BM_

[Bf-blender-cvs] [1fb871e8047] soc-2019-npr: Merge remote-tracking branch 'DarkdefenderRepo/npr_tess' into soc-2019-npr

2019-06-18 Thread YimingWu
Commit: 1fb871e8047eed56d8281933639e20384c8a01be
Author: YimingWu
Date:   Tue Jun 18 16:09:44 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB1fb871e8047eed56d8281933639e20384c8a01be

Merge remote-tracking branch 'DarkdefenderRepo/npr_tess' into soc-2019-npr

===



===

diff --cc source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
index 75707792f53,def17ac2fcd..6a170f3bf3a
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
@@@ -68,91 -68,230 +68,315 @@@
  #include "MOD_gpencil_util.h"
  #include "MOD_gpencil_modifiertypes.h"
  
++<<<<<<< HEAD
 +#include "lanpr_access.h"
 +
 +static void initData(GpencilModifierData *md)
 +{
 +  StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
 +  gpmd->object = NULL;
++===
+ static void initData(GpencilModifierData *md)
+ {
+   StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
+   gpmd->object = NULL;
++>>>>>>> DarkdefenderRepo/npr_tess
  }
  
  static void copyData(const GpencilModifierData *md, GpencilModifierData 
*target)
  {
++<<<<<<< HEAD
 +  BKE_gpencil_modifier_copyData_generic(md, target);
 +}
 +
 +static void deformStroke(
 +GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer 
*gpl, bGPDframe *gpf)
 +{
 +  lanpr_update_data_for_external(depsgraph);
 +  lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf);
 +}
 +
 +static void bakeModifier(Main *UNUSED(bmain),
 + Depsgraph *depsgraph,
 + GpencilModifierData *md,
 + Object *ob)
 +{
 +
 +  bGPdata *gpd = ob->data;
 +
 +  for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
 +for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
 +  deformStroke(md, depsgraph, ob, gpl, gpf);
 +}
 +  }
++===
+   BKE_gpencil_modifier_copyData_generic(md, target);
+ }
+ 
+ static void generate_geometry(
+ GpencilModifierData *md, Depsgraph *UNUSED(depsgraph),
+ Object *ob, bGPDlayer *gpl, bGPDframe *gpf)
+ {
+   StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
+ 
+   if( gpmd->object == NULL ){
+   printf("NULL object!\n");
+   return;
+   }
+ 
+   int color_idx = 0;
+   int tot_points = 0;
+   short thickness = 1;
+ 
+   float mat[4][4];
+ 
+   unit_m4(mat);
+ 
+   BMesh *bm;
+ 
+   bm = BKE_mesh_to_bmesh_ex(
+   gpmd->object->data,
+   &(struct BMeshCreateParams){0},
+   &(struct BMeshFromMeshParams){
+   .calc_face_normal = true,
+   .cd_mask_extra = CD_MASK_ORIGINDEX,
+   });
+ 
+   BMVert *vert;
+   BMIter iter;
+ 
+   BM_ITER_MESH (vert, , bm, BM_VERTS_OF_MESH) {
+ 
+ //Have we already used this vert?
+   if(!BM_elem_flag_test(vert, BM_ELEM_SELECT)){
+   continue;
+   }
+ 
+   BMVert *prepend_vert = NULL;
+   BMVert *next_vert = vert;
+   //Chain together the C verts and export them as GP strokes 
(chain in object space)
+   BMVert *edge_vert;
+   BMEdge *e;
+   BMIter iter_e;
+ 
+   LinkNodePair chain = {NULL, NULL};
+ 
+   int connected_c_verts;
+ 
+   while( next_vert != NULL ){
+ 
+   connected_c_verts = 0;
+   vert = next_vert;
+ 
+   BLI_linklist_append(, vert);
+ 
+   BM_elem_flag_disable(vert, BM_ELEM_SELECT);
+ 
+   BM_ITER_ELEM (e, _e, vert, BM_EDGES_OF_VERT) {
+   edge_vert = BM_edge_other_vert(e, vert);
+ 
+   if(BM_elem_flag_test(edge_vert, 
BM_ELEM_SELECT)){
+   if( connected_c_verts == 0 ){
+   next_vert = edge_vert;
+   } else if( connected_c_verts == 1 && 
prepend_vert == NULL ){
+   prepend_vert = edge_vert;
+   } else {
+   printf("C verts not connected in a simple line!\n");
+   }
+   connected_c_verts++;
+   }
+ 
+   }
+ 
+   if( connected_c_verts == 0 ){
+   next_vert = NULL;
+   }
+ 
+   }
+ 
+   LinkNode *pre_list = chain.list;
+ 
+   while

[Bf-blender-cvs] [30b2db0be71] soc-2019-npr: LANPR: Add enable and auto update switches

2019-06-18 Thread YimingWu
Commit: 30b2db0be71ccc2bf32e89abf0f66ce2bad23952
Author: YimingWu
Date:   Tue Jun 18 15:00:28 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB30b2db0be71ccc2bf32e89abf0f66ce2bad23952

LANPR: Add enable and auto update switches

===

M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/makesdna/DNA_scene_types.h
M   source/blender/makesrna/intern/rna_scene.c

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index 5724e724289..6fa0d011c79 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -702,15 +702,6 @@ class LANPR_linesets(UIList):
 layout.alignment = 'CENTER'
 layout.label("", icon_value=icon)
 
-def lanpr_get_composition_scene(scene):
-n = scene.name+'_lanpr_comp'
-for s in bpy.data.scenes:
-if s.name == n: return s
-return None
-
-def lanpr_is_composition_scene(scene):
-return scene.name.endswith('_lanpr_comp')
-
 class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 
'BLENDER_EEVEE'}
 bl_label = "LANPR"
@@ -720,84 +711,60 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 def poll(cls, context):
 return True
 
+def draw_header(self, context):
+self.layout.prop(context.scene.lanpr, "enabled", text="")
+
 def draw(self, context):
 layout = self.layout
 scene = context.scene
 lanpr = scene.lanpr
 active_layer = lanpr.layers.active_layer 
+mode = lanpr.master_mode
+
 
-# make LANPR main panel now visible under all engines.
-# composition method yet to be deteremined.
-
-#sc = lanpr_get_composition_scene(scene)
-
-#if sc is not None:
-#layout.label(text = 'You are adjusting values for LANPR 
compostion scene.')
-#row = layout.row()
-#row.scale_y=1.5
-#row.operator("lanpr.goto_composition_scene")
-#layout.operator("lanpr.remove_composition_scene")
-#scene = sc
-#lanpr = scene.lanpr
-#active_layer = lanpr.layers.active_layer
-#return
-#elif scene.render.engine!='BLENDER_LANPR':
-#layout.label(text = 'Select LANPR engine or use composition 
scene.')
-#layout.operator("lanpr.make_composition_scene")
-#return
-
-#if lanpr_is_composition_scene(scene):
-#   row = layout.row()
-#row.scale_y=1.5
-#row.operator("lanpr.goto_original_scene") 
-#
-#layout.label(text='LANPR Composition')
-#row = layout.row()
-#row.scale_y=1.5
-#row.scale_x=4
-#row.operator("lanpr.render_composited", icon = 'RENDER_STILL')
-#row.scale_x=1
-#row.prop(lanpr,"composite_render_animation", toggle=True, icon = 
'RENDER_ANIMATION')
 
 if scene.render.engine!='BLENDER_LANPR':
-layout.label(text='Mode:')
 layout.prop(lanpr, "master_mode", expand=True) 
 else:
 layout.label(text='Only Software mode result is used to generate 
GP stroke.')
 
-if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE":
+if mode == "SOFTWARE":
+row=layout.row(align=True)
+row.prop(lanpr,'auto_update',toggle=True,text='Auto')
+if not lanpr.auto_update:
+row.operator("scene.lanpr_calculate", icon='RENDER_STILL', 
text='Update')
+
+if mode == "DPIX" or mode == "SOFTWARE":
 
 layout.prop(lanpr, "background_color")
 layout.prop(lanpr, "crease_threshold")
 
 if lanpr.master_mode == "SOFTWARE":
-layout.label(text="Enable On Demand:")
 row = layout.row()
 row.prop(lanpr,"enable_intersections", text = "Intersection 
Lines")
-row.prop(lanpr,"enable_chaining", text = "Chaining (SLOW!)")
-layout.label(text="RUN:")
-layout.operator("scene.lanpr_calculate", icon='RENDER_STILL')
-
-split = layout.split(factor=0.7)
+row.prop(lanpr,"enable_chaining", text = "Chaining")
+
+split = layout.split(factor=0.4)
 col = split.column()
-col.label(text="Layer Composition:")
+  

[Bf-blender-cvs] [013c6d6c382] soc-2019-npr: LANPR:Added option to use the same style for different line types

2019-06-18 Thread YimingWu
Commit: 013c6d6c38226176d095111449c9970a05003c20
Author: YimingWu
Date:   Tue Jun 18 15:53:21 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB013c6d6c38226176d095111449c9970a05003c20

LANPR:Added option to use the same style for different line types

===

M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/draw/engines/lanpr/lanpr_ops.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 6fa0d011c79..ad8b4b0743b 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -780,7 +780,7 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 
 
 class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel):
-bl_label = "Types"
+bl_label = "Styles"
 bl_parent_id = "RENDER_PT_lanpr"
 COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 
'BLENDER_EEVEE'}
 
@@ -798,40 +798,52 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, 
Panel):
 active_layer = lanpr.layers.active_layer
 if active_layer and lanpr.master_mode == "DPIX":
 active_layer = lanpr.layers[0]
-
-layout.operator("scene.lanpr_enable_all_line_types")
-
-split = layout.split(factor=0.3)
-col = split.column()
-col.prop(active_layer, "enable_contour", text="Contour", toggle=True)
-col.prop(active_layer, "enable_crease", text="Crease", toggle=True)
-col.prop(active_layer, "enable_edge_mark", text="Mark", toggle=True)
-col.prop(active_layer, "enable_material_seperate", text="Material", 
toggle=True)
-col.prop(active_layer, "enable_intersection", text="Intersection", 
toggle=True)
-col = split.column()
-row = col.row(align = True)
-#row.enabled = active_layer.enable_contour this is always enabled now
-row.prop(active_layer, "color", text="")
-row.prop(active_layer, "thickness", text="")
-row = col.row(align = True)
-row.enabled = active_layer.enable_crease
-row.prop(active_layer, "crease_color", text="")
-row.prop(active_layer, "thickness_crease", text="")
-row = col.row(align = True)
-row.enabled = active_layer.enable_edge_mark
-row.prop(active_layer, "edge_mark_color", text="")
-row.prop(active_layer, "thickness_edge_mark", text="")
-row = col.row(align = True)
-row.enabled = active_layer.enable_material_seperate
-row.prop(active_layer, "material_color", text="")
-row.prop(active_layer, "thickness_material", text="")
-row = col.row(align = True)
-if lanpr.enable_intersections:
-row.enabled = active_layer.enable_intersection
-row.prop(active_layer, "intersection_color", text="")
-row.prop(active_layer, "thickness_intersection", text="")
+
+row = layout.row(align=True)
+row.prop(active_layer,"use_same_style")
+if active_layer.use_same_style:
+row = layout.row(align=True)
+row.prop(active_layer, "color", text="")
+row.prop(active_layer, "thickness", text="")
+row = layout.row(align=True)
+row.prop(active_layer, "enable_contour", text="Contour", 
toggle=True)
+row.prop(active_layer, "enable_crease", text="Crease", toggle=True)
+row.prop(active_layer, "enable_edge_mark", text="Mark", 
toggle=True)
+row.prop(active_layer, "enable_material_seperate", 
text="Material", toggle=True)
+row.prop(active_layer, "enable_intersection", text="Intersection", 
toggle=True)
 else:
-row.label(text= "Intersection Calculation Disabled")
+layout.operator("scene.lanpr_enable_all_line_types",text='Set All')
+split = layout.split(factor=0.3)
+col = split.column()
+col.prop(active_layer, "enable_contour", text="Contour", 
toggle=True)
+col.prop(active_layer, "enable_crease", text="Crease", toggle=True)
+col.prop(active_layer, "enable_edge_mark", text="

[Bf-blender-cvs] [13cff0d5241] soc-2019-npr: LANPR: Move main panel to render tab

2019-06-18 Thread YimingWu
Commit: 13cff0d524164b19aa98fa3cdbd477153f9ecf1e
Author: YimingWu
Date:   Tue Jun 18 13:36:49 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB13cff0d524164b19aa98fa3cdbd477153f9ecf1e

LANPR: Move main panel to render tab

===

M   release/scripts/startup/bl_ui/properties_render.py
M   release/scripts/startup/bl_ui/properties_scene.py

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index 8734989a56f..5724e724289 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -18,12 +18,15 @@
 # # END GPL LICENSE BLOCK #
 
 # 
-from bpy.types import Panel
 from bl_ui.space_view3d import (
 VIEW3D_PT_shading_lighting,
 VIEW3D_PT_shading_color,
 VIEW3D_PT_shading_options,
 )
+from bpy.types import (
+Panel,
+UIList,
+)
 
 
 class RenderButtonsPanel:
@@ -686,6 +689,378 @@ class RENDER_PT_simplify_greasepencil(RenderButtonsPanel, 
Panel):
 sub.prop(rd, "simplify_gpencil_remove_lines", text="Lines")
 
 
+class LANPR_linesets(UIList):
+def draw_item(self, context, layout, data, item, icon, active_data, 
active_propname, index):
+lineset = item
+if self.layout_type in {'DEFAULT', 'COMPACT'}:
+split = layout.split(factor=0.6)
+split.label(text="Layer")
+row = split.row(align=True)
+row.prop(lineset, "color", text="", icon_value=icon)
+row.prop(lineset, "thickness", text="", icon_value=icon)
+elif self.layout_type == 'GRID':
+layout.alignment = 'CENTER'
+layout.label("", icon_value=icon)
+
+def lanpr_get_composition_scene(scene):
+n = scene.name+'_lanpr_comp'
+for s in bpy.data.scenes:
+if s.name == n: return s
+return None
+
+def lanpr_is_composition_scene(scene):
+return scene.name.endswith('_lanpr_comp')
+
+class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
+COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 
'BLENDER_EEVEE'}
+bl_label = "LANPR"
+bl_options = {'DEFAULT_CLOSED'}
+
+@classmethod
+def poll(cls, context):
+return True
+
+def draw(self, context):
+layout = self.layout
+scene = context.scene
+lanpr = scene.lanpr
+active_layer = lanpr.layers.active_layer 
+
+# make LANPR main panel now visible under all engines.
+# composition method yet to be deteremined.
+
+#sc = lanpr_get_composition_scene(scene)
+
+#if sc is not None:
+#layout.label(text = 'You are adjusting values for LANPR 
compostion scene.')
+#row = layout.row()
+#row.scale_y=1.5
+#row.operator("lanpr.goto_composition_scene")
+#layout.operator("lanpr.remove_composition_scene")
+#scene = sc
+#lanpr = scene.lanpr
+#active_layer = lanpr.layers.active_layer
+#return
+#elif scene.render.engine!='BLENDER_LANPR':
+#layout.label(text = 'Select LANPR engine or use composition 
scene.')
+#layout.operator("lanpr.make_composition_scene")
+#return
+
+#if lanpr_is_composition_scene(scene):
+#   row = layout.row()
+#row.scale_y=1.5
+#row.operator("lanpr.goto_original_scene") 
+#
+#layout.label(text='LANPR Composition')
+#row = layout.row()
+#row.scale_y=1.5
+#row.scale_x=4
+#row.operator("lanpr.render_composited", icon = 'RENDER_STILL')
+#row.scale_x=1
+#row.prop(lanpr,"composite_render_animation", toggle=True, icon = 
'RENDER_ANIMATION')
+
+if scene.render.engine!='BLENDER_LANPR':
+layout.label(text='Mode:')
+layout.prop(lanpr, "master_mode", expand=True) 
+else:
+layout.label(text='Only Software mode result is used to generate 
GP stroke.')
+
+if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE":
+
+layout.prop(lanpr, "background_color")
+layout.prop(lanpr, "crease_threshold")
+
+if lanpr.master_mode == "SOFTWARE":
+layout.label(text="Enable On Demand:")
+row = layout.row()
+row.prop(lanpr,"enable_intersections", text = "Intersection 
Lines")
+row.prop(lanpr,"enable_chaining", text = "Chaining (SLOW!)")
+layout.label(text="

[Bf-blender-cvs] [185d319ea36] soc-2019-npr: LANPR: Comment changed into C style.

2019-06-24 Thread YimingWu
Commit: 185d319ea36ead4cd0bf75f3878feb71252a2803
Author: YimingWu
Date:   Tue Jun 25 12:39:39 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB185d319ea36ead4cd0bf75f3878feb71252a2803

LANPR: Comment changed into C style.

===

M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_dpix.c
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/draw/engines/lanpr/lanpr_util.c
M   source/blender/draw/engines/lanpr/lanpr_util.h
M   source/blender/makesrna/intern/rna_lanpr.c
M   source/blender/makesrna/intern/rna_scene.c
M   source/blender/modifiers/intern/MOD_featureline.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index d1873e77b11..74dc6e9938d 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -29,7 +29,7 @@ extern LANPR_SharedResource lanpr_share;
 
 static BMVert *split_edge_and_move(BMesh *bm, BMEdge *edge, const float 
new_pos[3])
 {
-  // Split edge one time and move the created vert to new_pos
+  /*  Split edge one time and move the created vert to new_pos */
   BMVert *vert;
 
   vert = bmesh_kernel_split_edge_make_vert(bm, edge->v1, edge, NULL);
@@ -60,7 +60,7 @@ void lanpr_generate_gpencil_from_chain(
 
   unit_m4(mat);
 
-  // Split countour lines at occlution points and deselect occluded segment
+  /*  Split countour lines at occlution points and deselect occluded segment */
   LANPR_RenderLine *rl;
   LANPR_RenderLineSegment *rls, *irls;
 
@@ -69,7 +69,7 @@ void lanpr_generate_gpencil_from_chain(
   for (rlc = rb->chains.first; rlc; rlc = (LANPR_RenderLineChain 
*)rlc->item.next) {
 
 if (!rlc->object_ref)
-  continue;  // XXX: intersection lines are lost
+  continue;  /*  XXX: intersection lines are lost */
 
 if (rlc->level>qi_end || rlc->levelchain.first; rlci; rlci = (LANPR_RenderLineChainItem 
*)rlci->item.next) {
-  float opatity = 1.0f; //rlci->occlusion ? 0.0f : 1.0f;
+  float opatity = 1.0f; /* rlci->occlusion ? 0.0f : 1.0f; */
   stroke_data[array_idx] = rlci->gpos[0];
   stroke_data[array_idx + 1] = rlci->gpos[1];
   stroke_data[array_idx + 2] = rlci->gpos[2];
-  stroke_data[array_idx + 3] = 1;  // thickness
-  stroke_data[array_idx + 4] = opatity;  // hardness?
+  stroke_data[array_idx + 3] = 1;  /*  thickness */
+  stroke_data[array_idx + 4] = opatity;  /*  hardness? */
   array_idx += 5;
 }
 
@@ -132,7 +132,7 @@ void lanpr_copy_data(Scene *from, Scene *to)
 }
   }
 
-  // render_buffer now only accessible from lanpr_share
+  /*  render_buffer now only accessible from lanpr_share */
 }
 
 void lanpr_free_everything(Scene *s)
diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h 
b/source/blender/draw/engines/lanpr/lanpr_all.h
index 271f9227391..f772f310ced 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -30,7 +30,7 @@
 #include "lanpr_data_types.h"
 #include "BLI_mempool.h"
 #include "BLI_utildefines.h"
-//#include "GPU_framebuffer.h"
+/* #include "GPU_framebuffer.h" */
 #include "GPU_batch.h"
 #include "GPU_framebuffer.h"
 #include "GPU_shader.h"
@@ -104,9 +104,9 @@ typedef struct LANPR_SharedResource {
   int init_complete;
 
   SpinLock render_flag_lock;
-  int during_render;  // get/set using access funcion which uses 
render_flag_lock to lock.
-  // this prevents duplicate too much resource. (no render 
preview in viewport
-  // while rendering)
+  int during_render;  /*  get/set using access funcion which uses 
render_flag_lock to lock. */
+  /*  this prevents duplicate too much resource. (no 
render preview in viewport */
+  /*  while rendering) */
 
 } LANPR_SharedResource;
 
@@ -181,7 +181,7 @@ typedef struct LANPR_PrivateData {
 
   DRWShadingGroup *debug_shgrp;
 
-  // snake
+  /*  snake */
 
   float normal_clamp;
   float normal_strength;
@@ -191,18 +191,18 @@ typedef struct LANPR_PrivateData {
   float zfar;
   float znear;
 
-  int stage;  // thinning
+  int stage;  /*  thinning */
 
   float *line_result;
   unsigned char *line_result_8bit;
-  int width, height;  // if not match recreate buffer.
+  int width, height;  /*  if not match recreate buffer. */
   void **sample_table;
 
   ListBase pending_samples;
   ListBase erased_samples;

[Bf-blender-cvs] [419837b6806] soc-2019-npr: Merge branch 'master' into soc-2019-npr

2019-06-24 Thread YimingWu
Commit: 419837b6806f87adbc0bfc9420fdce5cef70f325
Author: YimingWu
Date:   Tue Jun 25 12:15:12 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB419837b6806f87adbc0bfc9420fdce5cef70f325

Merge branch 'master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [abecf82b6e6] soc-2019-npr: GPENCIL: removed weights sample. Needs new implementaion.

2019-06-25 Thread YimingWu
Commit: abecf82b6e66e1d657baa9c3e74a7cd3dfe35879
Author: YimingWu
Date:   Tue Jun 25 14:04:41 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBabecf82b6e66e1d657baa9c3e74a7cd3dfe35879

GPENCIL: removed weights sample. Needs new implementaion.

===

M   source/blender/blenkernel/intern/gpencil.c

===

diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index abcac0c8360..30f0f80fb7e 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1440,6 +1440,8 @@ MDeformVert *stroke_defvert_new_count(int totweight, int 
count)
   return dst;
 }
 
+/* Can't interpolate because not every vert has the same amount of groups 
attached to it. */
+/* Future solution: add all groups to every vert and set weight to 0 for those 
are not in. */
 static int stroke_march_next_point(bGPDstroke *gps,
int next_point_index,
float *current,
@@ -1482,11 +1484,11 @@ static int stroke_march_next_point(bGPDstroke *gps,
 copy_v3_v3(result, >x);
 *pressure = gps->points[next_point_index].pressure;
 *strength = gps->points[next_point_index].strength;
-if (weights) {
+/* if (weights) {
   for (int j = 0; j < gps->dvert->totweight; j++) {
 weights[j] = gps->dvert[next_point_index].dw[j].weight;
   }
-}
+} */
 
 return 0;
   }
@@ -1497,13 +1499,13 @@ static int stroke_march_next_point(bGPDstroke *gps,
 gps->points[next_point_index - 1].pressure, 
gps->points[next_point_index].pressure, ratio);
 *strength = interpf(
 gps->points[next_point_index - 1].strength, 
gps->points[next_point_index].strength, ratio);
-if (weights) {
+/* if (weights) {
   for (int j = 0; j < gps->dvert->totweight; j++) {
 weights[j] = interpf(gps->dvert[next_point_index - 1].dw[j].weight,
  gps->dvert[next_point_index].dw[j].weight,
  ratio);
   }
-}
+} */
 
 return next_point_index;
   }
@@ -1538,21 +1540,21 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
 length += len_v3v3(last_coord, this_coord);
   }
 
-  int count = (int)(length / dist) + 2;  // preserve some extra in case
+  int count = (int)(length / dist) + 1;
 
   bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, 
"gp_stroke_points_sampled");
   MDeformVert *new_dv = NULL;
   if (gps->dvert != NULL) {
 new_dv = stroke_defvert_new_count(gps->dvert->totweight, count);
-new_dv->totweight = gps->dvert->totweight;
-new_dv->flag = gps->dvert->flag;
+/* new_dv->totweight = gps->dvert->totweight; */
+/* new_dv->flag = gps->dvert->flag; */
   }
 
   int next_point_index = 1;
   i = 0;
   float pressure, strength, *weights = NULL;
   if (new_dv)
-weights = MEM_callocN(sizeof(float) * gps->dvert->totweight,
+weights = MEM_callocN(sizeof(float) * count,
   "gp_stroke_point_weights_sampled");
 
   // 1st point is always at the start
@@ -1562,12 +1564,14 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
   copy_v3_v3(>x, last_coord);
   new_pt[i].pressure = pt[0].pressure;
   new_pt[i].strength = pt[0].strength;
+  i++;
+  /*
   if (new_dv) {
 for (int j = 0; j < new_dv->totweight; j++) {
   new_dv[i].dw[j].weight = gps->dvert->dw[j].weight;
 }
   }
-  i++;
+  */
 
   // the rest
   while (
@@ -1578,19 +1582,21 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
 copy_v3_v3(>x, last_coord);
 new_pt[i].pressure = pressure;
 new_pt[i].strength = strength;
+/*
 if (new_dv) {
   for (int j = 0; j < new_dv->totweight; j++) {
 new_dv[i].dw[j].weight = weights[j];
   }
 }
+*/
 i++;
 if (next_point_index == 0)
-  break;  // last point finished
+  break;  /* last point finished */ 
   }
 
   gps->points = new_pt;
   gps->totpoints = i;
-  MEM_freeN(pt);  // original
+  MEM_freeN(pt);  /* original */ 
 
   if (new_dv) {
 BKE_gpencil_free_stroke_weights(gps);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [ce485104627] soc-2019-npr: LANPR: Added collection tab and put collection specific LANPR settings in it.

2019-06-25 Thread YimingWu
Commit: ce485104627fe7be5ffd2df75107eaf14d90cda4
Author: YimingWu
Date:   Tue Jun 25 16:18:58 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBce485104627fe7be5ffd2df75107eaf14d90cda4

LANPR: Added collection tab and put collection specific LANPR settings in it.

===

M   release/scripts/startup/bl_ui/__init__.py
A   release/scripts/startup/bl_ui/properties_collection.py
M   release/scripts/startup/bl_ui/properties_view_layer.py
M   source/blender/editors/space_buttons/buttons_context.c
M   source/blender/editors/space_buttons/space_buttons.c
M   source/blender/makesdna/DNA_space_types.h
M   source/blender/makesrna/intern/rna_space.c

===

diff --git a/release/scripts/startup/bl_ui/__init__.py 
b/release/scripts/startup/bl_ui/__init__.py
index 44229b2afdf..b11a6bfcc8f 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -65,6 +65,7 @@ _modules = [
 "properties_scene",
 "properties_texture",
 "properties_world",
+"properties_collection",
 
 # Generic Space Modules
 #
diff --git a/release/scripts/startup/bl_ui/properties_collection.py 
b/release/scripts/startup/bl_ui/properties_collection.py
new file mode 100644
index 000..73e2ef43bea
--- /dev/null
+++ b/release/scripts/startup/bl_ui/properties_collection.py
@@ -0,0 +1,82 @@
+# # BEGIN GPL LICENSE BLOCK #
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# # END GPL LICENSE BLOCK #
+
+# 
+from bpy.types import Panel
+from bpy import data
+
+
+class CollectionButtonsPanel:
+bl_space_type = 'PROPERTIES'
+bl_region_type = 'WINDOW'
+bl_context = "collection"
+# COMPAT_ENGINES must be defined in each subclass, external engines can 
add themselves here
+
+@classmethod
+def poll(cls, context):
+return (context.engine in cls.COMPAT_ENGINES)
+
+class COLLECTION_PT_collection_flags(CollectionButtonsPanel, Panel):
+bl_label = "Collection Flags"
+
+def draw(self, context):
+layout=self.layout
+collection=context.collection
+vl = context.view_layer
+vlc = vl.active_layer_collection
+if vlc.name == 'Master Collection':
+row = layout.row()
+row.label(text="This is the master collection")
+return
+
+row = layout.row()
+col = row.column(align=True)
+col.prop(vlc,"hide_viewport")
+col.prop(vlc,"holdout")
+col.prop(vlc,"indirect_only")
+row = layout.row()
+col = row.column(align=True)
+col.prop(collection,"hide_select")
+col.prop(collection,"hide_viewport")
+col.prop(collection,"hide_render")
+
+
+class COLLECTION_PT_lanpr_collection(CollectionButtonsPanel, Panel):
+bl_label = "Collection LANPR"
+
+@classmethod
+def poll(cls, context):
+return context.scene.lanpr.enabled
+
+def draw(self,context):
+layout = self.layout
+collection = context.collection
+row = layout.row()
+row.prop(collection.lanpr,"usage",expand=True)
+if collection.lanpr.usage!='INCLUDE':
+layout.prop(collection.lanpr,"force")
+
+classes = (
+COLLECTION_PT_collection_flags,
+COLLECTION_PT_lanpr_collection,
+)
+
+if __name__ == "__main__":  # only for live edit.
+from bpy.utils import register_class
+for cls in classes:
+register_class(cls)
diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py 
b/release/scripts/startup/bl_ui/properties_view_layer.py
index 2ebe55c65d5..0fb85501235 100644
--- a/release/scripts/startup/bl_ui/properties_view_layer.py
+++ b/release/scripts/startup/bl_ui/properties_view_layer.py
@@ -82,25 +82,9 @@ class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, 
Panel):
 col = flow.column()
 col.prop(view_layer, "use_pass_subsurface_color", text="Subsurface 
Color")
 
-class VIEWLAYER_PT_lanpr_collecti

[Bf-blender-cvs] [d6eeb656eaf] soc-2019-npr: LANPR: all the if() statements now use {} brackets.

2019-06-25 Thread YimingWu
Commit: d6eeb656eaf9a2db53a460b2c00353058ef3ba57
Author: YimingWu
Date:   Tue Jun 25 17:43:01 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBd6eeb656eaf9a2db53a460b2c00353058ef3ba57

LANPR: all the if() statements now use {} brackets.

===

M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_dpix.c
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/draw/engines/lanpr/lanpr_snake.c
M   source/blender/draw/engines/lanpr/lanpr_util.c

===

diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 8e544703f84..28e16455727 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1457,8 +1457,9 @@ static int stroke_march_next_point(bGPDstroke *gps,
   float point[3];
   bGPDspoint *pt = NULL;
 
-  if (!(next_point_index < gps->totpoints))
+  if (!(next_point_index < gps->totpoints)) {
 return -1;
+  }
 
   copy_v3_v3(step_start, current);
   pt = >points[next_point_index];
@@ -1523,8 +1524,9 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
   bGPDspoint *pt2 = NULL;
   int i;
 
-  if (gps->totpoints < 2 || dist < FLT_EPSILON)
+  if (gps->totpoints < 2 || dist < FLT_EPSILON) {
 return false;
+  }
 
   for (i = 0; i < gps->totpoints; i++) {
 pt[i].flag &= ~GP_SPOINT_TAG_FEATURE;  // feature point preservation not 
implemented yet
@@ -1554,8 +1556,9 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
   int next_point_index = 1;
   i = 0;
   float pressure, strength, *weights = NULL;
-  if (new_dv)
+  if (new_dv) {
 weights = MEM_callocN(sizeof(float) * count, 
"gp_stroke_point_weights_sampled");
+  }
 
   // 1st point is always at the start
   pt1 = >points[0];
@@ -1590,8 +1593,9 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
 }
 */
 i++;
-if (next_point_index == 0)
+if (next_point_index == 0) {
   break; /* last point finished */
+}
   }
 
   gps->points = new_pt;
@@ -1619,8 +1623,9 @@ bool BKE_gpencil_stretch_stroke(bGPDstroke *gps, float 
dist)
 {
   bGPDspoint *pt = gps->points, *last_pt, *second_last, *next_pt;
 
-  if (gps->totpoints < 2 || dist < FLT_EPSILON)
+  if (gps->totpoints < 2 || dist < FLT_EPSILON) {
 return false;
+  }
 
   last_pt = [gps->totpoints - 1];
   ;
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 28e8270ccf8..a2cd35dec73 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -54,8 +54,9 @@ void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph,
 printf("NULL LANPR rb!\n");
 return;
   }
-  if (scene->lanpr.master_mode != LANPR_MASTER_MODE_SOFTWARE)
+  if (scene->lanpr.master_mode != LANPR_MASTER_MODE_SOFTWARE) {
 return;
+  }
 
   int color_idx = 0;
   int tot_points = 0;
@@ -73,14 +74,15 @@ void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph,
   LANPR_RenderLineChainItem *rlci;
   for (rlc = rb->chains.first; rlc; rlc = (LANPR_RenderLineChain 
*)rlc->item.next) {
 
-if (!rlc->object_ref)
+if (!rlc->object_ref) {
   continue; /*  XXX: intersection lines are lost */
-
-if (rlc->level > qi_end || rlc->level < qi_begin)
+}
+if (rlc->level > qi_end || rlc->level < qi_begin) {
   continue;
-
-if (ob && >id != rlc->object_ref->id.orig_id)
+}
+if (ob && >id != rlc->object_ref->id.orig_id) {
   continue;
+}
 
 int array_idx = 0;
 int count = lanpr_count_chain(rlc);
@@ -107,8 +109,9 @@ void lanpr_update_data_for_external(Depsgraph *depsgraph)
 {
   Scene *scene = DEG_get_evaluated_scene(depsgraph);
   SceneLANPR *lanpr = >lanpr;
-  if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE)
+  if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE) {
 return;
+  }
   if (!lanpr_share.render_buffer_shared ||
   lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra) {
 lanpr_compute_feature_lines_internal(depsgraph);
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 9b414794ead..fbe062c7e31 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -47,8 +47,10 @@ LANPR_RenderLine 
*lanpr_get_connected_render_line(LANPR_BoundingArea *ba,
   for (lip = ba->link

[Bf-blender-cvs] [be138d3380f] soc-2019-npr: LANPR: target GP material selection working

2019-06-25 Thread YimingWu
Commit: be138d3380fb99dd96ea06798c2ddaf53f905b1b
Author: YimingWu
Date:   Tue Jun 25 13:44:44 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBbe138d3380fb99dd96ea06798c2ddaf53f905b1b

LANPR: target GP material selection working

===

M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 74dc6e9938d..e324d151172 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -40,7 +40,7 @@ static BMVert *split_edge_and_move(BMesh *bm, BMEdge *edge, 
const float new_pos[
 }
 
 void lanpr_generate_gpencil_from_chain(
-Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int 
qi_begin, int qi_end)
+Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int 
qi_begin, int qi_end, int material_nr)
 {
   Scene *scene = DEG_get_evaluated_scene(depsgraph);
   LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared;
@@ -94,6 +94,7 @@ void lanpr_generate_gpencil_from_chain(
 }
 
 BKE_gpencil_stroke_add_points(gps, stroke_data, count, mat);
+gps->mat_nr = material_nr;
   }
 }
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h 
b/source/blender/draw/engines/lanpr/lanpr_access.h
index 1bd71b7353b..d4ec4cc3075 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -11,7 +11,7 @@
 typedef struct LANPR_RenderLineChain LANPR_RenderLineChain;
 
 void lanpr_generate_gpencil_from_chain(
-Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int 
qi_begin, int qi_end);
+Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int 
qi_begin, int qi_end, int material_nr);
 
 void lanpr_update_data_for_external(Depsgraph *depsgraph);
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 1469fafc807..8c50699683e 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4309,11 +4309,13 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
   if (!gpl) {
 gpl = BKE_gpencil_layer_addnew(gpd, "lanpr_layer", true);
   }
-  gpf = BKE_gpencil_frame_addnew(gpl, frame);
-  BKE_gpencil_free_strokes(gpf);  /*  force clear now */
+  gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW);
+  /* BKE_gpencil_free_strokes(gpf);   will be overwritten. need 
another solution */
+  /* Please manually delete those strokes before clicking Update once 
again. */
 
   lanpr_generate_gpencil_from_chain(dg, ob, gpl, gpf, 
-flmd->level_begin, 
flmd->use_multiple_levels?flmd->level_end:flmd->level_begin);
+flmd->level_begin, 
flmd->use_multiple_levels?flmd->level_end:flmd->level_begin,
+flmd->material);
 }
   }
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [c10f834b327] soc-2019-npr: GPENCIL: Prevent sampling from crashing. Need a new implementation to calculate acturate segment count.

2019-06-25 Thread YimingWu
Commit: c10f834b3278f0e5fbd8c8d37ae0418672d17adf
Author: YimingWu
Date:   Tue Jun 25 14:33:07 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBc10f834b3278f0e5fbd8c8d37ae0418672d17adf

GPENCIL: Prevent sampling from crashing. Need a new implementation to calculate 
acturate segment count.

===

M   source/blender/blenkernel/intern/gpencil.c

===

diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 30f0f80fb7e..afef9a8424f 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1538,9 +1538,10 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
 pt1 = >points[i];
 copy_v3_v3(this_coord, >x);
 length += len_v3v3(last_coord, this_coord);
+copy_v3_v3(last_coord, >x);
   }
 
-  int count = (int)(length / dist) + 1;
+  int count = (int)(length / dist) + 3; /* Head + tail + float point precision 
tolerance */
 
   bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, 
"gp_stroke_points_sampled");
   MDeformVert *new_dv = NULL;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [5a4dd8f7b93] soc-2019-npr: LANPR: make format

2019-06-25 Thread YimingWu
Commit: 5a4dd8f7b936bad87101e67082636de1e2bc858e
Author: YimingWu
Date:   Tue Jun 25 16:21:03 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB5a4dd8f7b936bad87101e67082636de1e2bc858e

LANPR: make format

===

M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_dpix.c
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/draw/engines/lanpr/lanpr_util.h
M   source/blender/editors/space_buttons/buttons_context.c
M   source/blender/makesrna/intern/rna_lanpr.c
M   source/blender/makesrna/intern/rna_modifier.c
M   source/blender/modifiers/intern/MOD_featureline.c

===

diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index afef9a8424f..8e544703f84 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1555,8 +1555,7 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
   i = 0;
   float pressure, strength, *weights = NULL;
   if (new_dv)
-weights = MEM_callocN(sizeof(float) * count,
-  "gp_stroke_point_weights_sampled");
+weights = MEM_callocN(sizeof(float) * count, 
"gp_stroke_point_weights_sampled");
 
   // 1st point is always at the start
   pt1 = >points[0];
@@ -1592,12 +1591,12 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
 */
 i++;
 if (next_point_index == 0)
-  break;  /* last point finished */ 
+  break; /* last point finished */
   }
 
   gps->points = new_pt;
   gps->totpoints = i;
-  MEM_freeN(pt);  /* original */ 
+  MEM_freeN(pt); /* original */
 
   if (new_dv) {
 BKE_gpencil_free_stroke_weights(gps);
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index e324d151172..28e8270ccf8 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -39,8 +39,13 @@ static BMVert *split_edge_and_move(BMesh *bm, BMEdge *edge, 
const float new_pos[
   return vert;
 }
 
-void lanpr_generate_gpencil_from_chain(
-Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int 
qi_begin, int qi_end, int material_nr)
+void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph,
+   Object *ob,
+   bGPDlayer *gpl,
+   bGPDframe *gpf,
+   int qi_begin,
+   int qi_end,
+   int material_nr)
 {
   Scene *scene = DEG_get_evaluated_scene(depsgraph);
   LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared;
@@ -69,9 +74,9 @@ void lanpr_generate_gpencil_from_chain(
   for (rlc = rb->chains.first; rlc; rlc = (LANPR_RenderLineChain 
*)rlc->item.next) {
 
 if (!rlc->object_ref)
-  continue;  /*  XXX: intersection lines are lost */
+  continue; /*  XXX: intersection lines are lost */
 
-if (rlc->level>qi_end || rlc->levellevel > qi_end || rlc->level < qi_begin)
   continue;
 
 if (ob && >id != rlc->object_ref->id.orig_id)
@@ -88,8 +93,8 @@ void lanpr_generate_gpencil_from_chain(
   stroke_data[array_idx] = rlci->gpos[0];
   stroke_data[array_idx + 1] = rlci->gpos[1];
   stroke_data[array_idx + 2] = rlci->gpos[2];
-  stroke_data[array_idx + 3] = 1;  /*  thickness */
-  stroke_data[array_idx + 4] = opatity;  /*  hardness? */
+  stroke_data[array_idx + 3] = 1;   /*  thickness */
+  stroke_data[array_idx + 4] = opatity; /*  hardness? */
   array_idx += 5;
 }
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h 
b/source/blender/draw/engines/lanpr/lanpr_access.h
index d4ec4cc3075..ac99975ad06 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -10,8 +10,13 @@
 
 typedef struct LANPR_RenderLineChain LANPR_RenderLineChain;
 
-void lanpr_generate_gpencil_from_chain(
-Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int 
qi_begin, int qi_end, int material_nr);
+void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph,
+   Object *ob,
+   bGPDlayer *gpl,
+ 

[Bf-blender-cvs] [47d04c4af46] soc-2019-npr: LANPR: Added collection target and related options.

2019-06-25 Thread YimingWu
Commit: 47d04c4af46a2095c42acdf569d6a4472f15e329
Author: YimingWu
Date:   Tue Jun 25 16:54:47 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB47d04c4af46a2095c42acdf569d6a4472f15e329

LANPR: Added collection target and related options.

===

M   release/scripts/startup/bl_ui/properties_collection.py
M   source/blender/makesdna/DNA_collection_types.h
M   source/blender/makesrna/intern/rna_collection.c

===

diff --git a/release/scripts/startup/bl_ui/properties_collection.py 
b/release/scripts/startup/bl_ui/properties_collection.py
index 73e2ef43bea..e3110155ae2 100644
--- a/release/scripts/startup/bl_ui/properties_collection.py
+++ b/release/scripts/startup/bl_ui/properties_collection.py
@@ -66,10 +66,27 @@ class 
COLLECTION_PT_lanpr_collection(CollectionButtonsPanel, Panel):
 def draw(self,context):
 layout = self.layout
 collection = context.collection
+lanpr = collection.lanpr
 row = layout.row()
-row.prop(collection.lanpr,"usage",expand=True)
-if collection.lanpr.usage!='INCLUDE':
-layout.prop(collection.lanpr,"force")
+row.prop(lanpr,"usage",expand=True)
+if lanpr.usage!='INCLUDE':
+layout.prop(lanpr,"force")
+else:
+row = layout.row()
+row.prop(lanpr,"target")
+
+if lanpr.target:
+row = layout.row(align=True)
+row.prop(lanpr,'use_multiple_levels', 
icon='GP_MULTIFRAME_EDITING', icon_only=True)
+row.prop(lanpr,'level_begin')
+if lanpr.use_multiple_levels:
+row.prop(lanpr,'level_end')
+row = layout.row()
+row.prop(lanpr,'replace', text='Replace existing frames')
+row = layout.row()
+row.prop(lanpr,'layer')
+row.prop(lanpr,'material')
+
 
 classes = (
 COLLECTION_PT_collection_flags,
diff --git a/source/blender/makesdna/DNA_collection_types.h 
b/source/blender/makesdna/DNA_collection_types.h
index 78c9b991863..db255ad9a99 100644
--- a/source/blender/makesdna/DNA_collection_types.h
+++ b/source/blender/makesdna/DNA_collection_types.h
@@ -46,7 +46,16 @@ typedef struct CollectionChild {
 typedef struct CollectionLANPR {
   short usage;
   short force; /* force objects with LANPR modifier follow the rule */
+
   char _pad[4];
+
+  struct Object *target;
+  int replace;
+  int layer;
+  int material;
+  int use_multiple_levels;
+  int level_begin;
+  int level_end;
 } CollectionLANPR;
 
 /* CollectionLANPR->mode */
diff --git a/source/blender/makesrna/intern/rna_collection.c 
b/source/blender/makesrna/intern/rna_collection.c
index 2141f58ff53..6b749bece03 100644
--- a/source/blender/makesrna/intern/rna_collection.c
+++ b/source/blender/makesrna/intern/rna_collection.c
@@ -389,6 +389,39 @@ static void rna_def_collection_lanpr(BlenderRNA *brna, 
StructRNA *srna)
   RNA_def_property_boolean_default(prop, 0);
   RNA_def_property_ui_text(
   prop, "Force", "Force object who has LANPR modifiers to follow the 
rule");
+
+  prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
+  RNA_def_property_pointer_sdna(prop, NULL, "target");
+  RNA_def_property_ui_text(prop, "Target", "GPencil object to put the stroke 
result");
+  RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, 
"rna_GPencil_object_poll");
+  RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
+
+  prop = RNA_def_property(srna, "replace", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_ui_text(prop, "Replace", "Replace existing GP frames");
+
+  prop = RNA_def_property(srna, "layer", PROP_INT, PROP_NONE);
+  RNA_def_property_range(prop, 0, 100);
+  RNA_def_property_ui_range(prop, 0, 100, 1, -1);
+  RNA_def_property_ui_text(prop, "Layer", "GPencil layer to put the results 
into");
+
+  prop = RNA_def_property(srna, "material", PROP_INT, PROP_NONE);
+  RNA_def_property_range(prop, 0, 100);
+  RNA_def_property_ui_range(prop, 0, 100, 1, -1);
+  RNA_def_property_ui_text(prop, "Material", "GPencil material to use to 
generate the results");
+
+  prop = RNA_def_property(srna, "use_multiple_levels", PROP_BOOLEAN, 
PROP_NONE);
+  RNA_def_property_boolean_sdna(prop, NULL, "use_multiple_levels", 0);
+  RNA_def_property_ui_text(prop, "Multiple", "Use multiple occlusion levels");
+
+  prop = RNA_def_property(srna, "level_begin", PROP_INT, PROP_NONE);
+  RNA_def_property_range(prop, 0, 255);
+  RNA_def_property_ui_range(prop, 0, 255, 1, -1);
+  RNA_def_property_ui_text(prop, "Level", "Occlusion 

[Bf-blender-cvs] [d0ea6e306cd] soc-2019-npr: LANPR: filter GP targets only.

2019-06-24 Thread YimingWu
Commit: d0ea6e306cd601c994d25d0942f372e5e17200f3
Author: YimingWu
Date:   Tue Jun 25 13:24:35 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBd0ea6e306cd601c994d25d0942f372e5e17200f3

LANPR: filter GP targets only.

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/makesrna/intern/rna_modifier.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index e2416de1410..ac661430d74 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1682,13 +1682,6 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
 row.prop(md,'enable_material',toggle=True)
 row.prop(md,'enable_intersection',toggle=True)
 row.prop(md,'enable_modifier_mark',toggle=True)
-layout.label(text='Result GP:')
-layout.prop(md,'target')
-layout.prop(md,'replace', text='Replace existing frames')
-
-row = layout.row()
-row.prop(md,'layer')
-row.prop(md,'material')
 
 row = layout.row(align=True)
 row.prop(md,'use_multiple_levels', icon='GP_MULTIFRAME_EDITING', 
icon_only=True)
@@ -1696,6 +1689,16 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
 if md.use_multiple_levels:
 row.prop(md,'level_end')
 
+layout.label(text='Result GP:')
+layout.prop(md,'target')
+if not md.target:
+layout.label(text="You have to specify a target GP Object")
+else:
+layout.prop(md,'replace', text='Replace existing frames')
+row = layout.row()
+row.prop(md,'layer')
+row.prop(md,'material')
+
 class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel):
 bl_label = "Modifiers"
 
diff --git a/source/blender/makesrna/intern/rna_modifier.c 
b/source/blender/makesrna/intern/rna_modifier.c
index acc9166..03c9dea9db9 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -6051,6 +6051,7 @@ static void rna_def_modifier_featureline(BlenderRNA *brna)
   prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
   RNA_def_property_pointer_sdna(prop, NULL, "target");
   RNA_def_property_ui_text(prop, "Target", "GPencil object to put the stroke 
result");
+  
RNA_def_property_pointer_funcs(prop,NULL,NULL,NULL,"rna_GPencil_object_poll");
   RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
   RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [c0aae838aba] soc-2019-npr: LANPR: red-out modifier name when target is not set.

2019-06-24 Thread YimingWu
Commit: c0aae838aba186b0fe41b112be307fa1cf113008
Author: YimingWu
Date:   Tue Jun 25 13:25:36 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBc0aae838aba186b0fe41b112be307fa1cf113008

LANPR: red-out modifier name when target is not set.

===

M   source/blender/modifiers/intern/MOD_featureline.c

===

diff --git a/source/blender/modifiers/intern/MOD_featureline.c 
b/source/blender/modifiers/intern/MOD_featureline.c
index b844eb9ae19..a9019062482 100644
--- a/source/blender/modifiers/intern/MOD_featureline.c
+++ b/source/blender/modifiers/intern/MOD_featureline.c
@@ -95,6 +95,13 @@ static void foreachObjectLink(ModifierData *md, Object *ob, 
ObjectWalkFunc walk,
   walk(userData, ob, >target, IDWALK_NOP);
 }
 
+static bool isDisabled(const struct Scene *scene, struct ModifierData *md, 
bool userRenderParams){
+  FeatureLineModifierData *flmd = (FeatureLineModifierData *)md;
+  if(!flmd->target)
+return true;
+  return false;
+}
+
 ModifierTypeInfo modifierType_FeatureLine = {
 /* name */ "Feature Line",
 /* structName */ "FeatureLineModifierData",
@@ -112,7 +119,7 @@ ModifierTypeInfo modifierType_FeatureLine = {
 /* initData */ initData,
 /* requiredDataMask */ requiredDataMask,
 /* freeData */ freeData,
-/* isDisabled */ NULL,
+/* isDisabled */ isDisabled,
 /* updateDepsgraph */ NULL,
 /* dependsOnTime */ dependsOnTime,
 /* dependsOnNormals */ NULL,

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [08f6566dbfc] soc-2019-npr: LANPR: Default values now in versioning_280.c

2019-06-19 Thread YimingWu
Commit: 08f6566dbfc190803ddb93783e12218e4c6df7e0
Author: YimingWu
Date:   Wed Jun 19 18:17:20 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB08f6566dbfc190803ddb93783e12218e4c6df7e0

LANPR: Default values now in versioning_280.c

===

M   source/blender/blenloader/intern/versioning_280.c

===

diff --git a/source/blender/blenloader/intern/versioning_280.c 
b/source/blender/blenloader/intern/versioning_280.c
index 65ab20af831..93f17a0eb02 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -3519,6 +3519,31 @@ void blo_do_versions_280(FileData *fd, Library 
*UNUSED(lib), Main *bmain)
 do_versions_seq_alloc_transform_and_crop(>ed->seqbase);
   }
 }
+for (Scene *sce = bmain->scenes.first; sce; sce = sce->id.next) {
+sce->lanpr.crease_threshold = 0.7;
+
+sce->lanpr.line_thickness = 1.5;
+sce->lanpr.depth_clamp = 0.001;
+sce->lanpr.depth_strength = 800;
+sce->lanpr.normal_clamp = 2;
+sce->lanpr.normal_strength = 10;
+
+sce->lanpr.enable_intersections = 1;
+
+sce->lanpr.background_color[0] = 0;
+sce->lanpr.background_color[1] = 0;
+sce->lanpr.background_color[2] = 0;
+sce->lanpr.background_color[3] = 1;
+
+sce->lanpr.line_color[0] = 1;
+sce->lanpr.line_color[1] = 1;
+sce->lanpr.line_color[2] = 1;
+sce->lanpr.line_color[3] = 1;
+
+sce->lanpr.enable_intersections = 1;
+sce->lanpr.enable_chaining = 1;
+sce->lanpr.chaining_threshold = 0.01;
+}
   }
 
   {

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [b165d0a4141] soc-2019-npr: LANPR: Removed "Tip Extend" data and properties. GP Modifiers will handle this.

2019-06-19 Thread YimingWu
Commit: b165d0a41418e2a638459f0f0c28a21a65d0b9f3
Author: YimingWu
Date:   Wed Jun 19 15:20:36 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBb165d0a41418e2a638459f0f0c28a21a65d0b9f3

LANPR: Removed "Tip Extend" data and properties. GP Modifiers will handle this.

===

M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/makesdna/DNA_lanpr_types.h
M   source/blender/makesdna/DNA_scene_types.h
M   source/blender/makesrna/intern/rna_scene.c

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index 1ce3101cf83..c22fb320e50 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -1014,7 +1014,7 @@ class RENDER_PT_lanpr_snake_settings(RenderButtonsPanel, 
Panel):
 layout.prop(lanpr,"extend_length")
 
 class RENDER_PT_lanpr_software_chain_styles(RenderButtonsPanel, Panel):
-bl_label = "Chain Styles"
+bl_label = "Chaining Options"
 bl_parent_id = "RENDER_PT_lanpr"
 bl_options = {'DEFAULT_CLOSED'}
 COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 
'BLENDER_EEVEE'}
@@ -1047,12 +1047,6 @@ class 
RENDER_PT_lanpr_software_chain_styles(RenderButtonsPanel, Panel):
 col.prop(lanpr,"taper_left_distance")
 col.prop(lanpr,"taper_left_strength") 
 
-layout.label(text="Tip Extend:")
-layout.prop(lanpr, "enable_tip_extend",  expand = True)
-if lanpr.enable_tip_extend == "ENABLED":
-layout.label(text="---INOP---")
-layout.prop(lanpr,"extend_length")
-
 
 classes = (
 RENDER_PT_context,
diff --git a/source/blender/makesdna/DNA_lanpr_types.h 
b/source/blender/makesdna/DNA_lanpr_types.h
index 3f43f1250cb..b08b55298f3 100644
--- a/source/blender/makesdna/DNA_lanpr_types.h
+++ b/source/blender/makesdna/DNA_lanpr_types.h
@@ -50,9 +50,6 @@ struct Collection;
 #define LANPR_USE_DIFFERENT_TAPER 0
 #define LANPR_USE_SAME_TAPER 1
 
-#define LANPR_DISABLE_TIP_EXTEND 0
-#define LANPR_ENABLE_TIP_EXTEND 1
-
 #define LANPR_NORMAL_DONT_CARE 0
 #define LANPR_NORMAL_DIRECTIONAL 1
 #define LANPR_NORMAL_POINT 2
diff --git a/source/blender/makesdna/DNA_scene_types.h 
b/source/blender/makesdna/DNA_scene_types.h
index ef0e864b7a2..c05ed05ff77 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1660,9 +1660,6 @@ typedef struct SceneLANPR {
   float taper_right_distance;
   float taper_right_strength;
 
-  int enable_tip_extend;
-  float extend_length;
-
   int snake_sensitivity;
 
   /* shared */
diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index 34c8eed211f..d6620a03cd8 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -7177,15 +7177,6 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
"Use same taper value for both sides of the line"},
   {0, NULL, 0, NULL, NULL}};
 
-  static const EnumPropertyItem rna_enum_lanpr_enable_tip_extend[] = {
-  {LANPR_DISABLE_TIP_EXTEND, "DISABLED", 0, "Disable", "Do not extend 
curve tips"},
-  {LANPR_ENABLE_TIP_EXTEND,
-   "ENABLED",
-   0,
-   "Enable",
-   "Extend curve tips to a user specified length"},
-  {0, NULL, 0, NULL, NULL}};
-
   srna = RNA_def_struct(brna, "SceneLANPR", NULL);
   RNA_def_struct_sdna(srna, "SceneLANPR");
   RNA_def_struct_ui_text(srna, "Scene LANPR Config", "LANPR global config");
@@ -7341,20 +7332,6 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
   RNA_def_property_flag(prop, PROP_EDITABLE);
   RNA_def_property_update(prop, NC_SCENE, NULL);
 
-  prop = RNA_def_property(srna, "enable_tip_extend", PROP_ENUM, PROP_NONE);
-  RNA_def_property_enum_items(prop, rna_enum_lanpr_enable_tip_extend);
-  RNA_def_property_enum_default(prop, LANPR_DISABLE_TIP_EXTEND);
-  RNA_def_property_ui_text(prop, "Extend Tips", "Extending tips of curves");
-  RNA_def_property_flag(prop, PROP_EDITABLE);
-  RNA_def_property_update(prop, NC_SCENE, NULL);
-
-  prop = RNA_def_property(srna, "extend_length", PROP_FLOAT, PROP_FACTOR);
-  RNA_def_property_float_default(prop, 1.0f);
-  RNA_def_property_ui_text(prop, "Extend Length", "Extend lenght of curves");
-  RNA_def_property_ui_range(prop, 0.0f, 100.0f, 0.1, 2);
-  RNA_def_property_flag(prop, PROP_EDITABLE);
-  RNA_def_property_update(prop, NC_SCENE, NULL);
-
   prop = RNA_def_property(srna, "crease_threshold", PROP_F

[Bf-blender-cvs] [b5ea252ac33] soc-2019-npr: LANPR: Chaining threshold parameter. Disabled LANPR composition operators.

2019-06-19 Thread YimingWu
Commit: b5ea252ac33a59ebd264e03452f403866609aa2e
Author: YimingWu
Date:   Wed Jun 19 16:47:32 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBb5ea252ac33a59ebd264e03452f403866609aa2e

LANPR: Chaining threshold parameter. Disabled LANPR composition operators.

===

M   release/scripts/startup/bl_operators/lanpr.py
M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/blenkernel/intern/scene.c
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
M   source/blender/makesdna/DNA_scene_types.h
M   source/blender/makesrna/intern/rna_scene.c

===

diff --git a/release/scripts/startup/bl_operators/lanpr.py 
b/release/scripts/startup/bl_operators/lanpr.py
index 3c5b484855e..0cef8d5e904 100644
--- a/release/scripts/startup/bl_operators/lanpr.py
+++ b/release/scripts/startup/bl_operators/lanpr.py
@@ -234,9 +234,9 @@ class LANPR_render_composited(bpy.types.Operator):
 return {'FINISHED'}
 
 classes=(
-LANPR_make_composition_scene,
-LANPR_remove_composition_scene,
-LANPR_goto_original_scene,
-LANPR_goto_composition_scene,
-LANPR_render_composited,
+#LANPR_make_composition_scene,
+#LANPR_remove_composition_scene,
+#LANPR_goto_original_scene,
+#LANPR_goto_composition_scene,
+#LANPR_render_composited,
 )
\ No newline at end of file
diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index c22fb320e50..ab0452556fd 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -1029,6 +1029,7 @@ class 
RENDER_PT_lanpr_software_chain_styles(RenderButtonsPanel, Panel):
 layout = self.layout
 scene = context.scene
 lanpr = scene.lanpr
+layout.prop(lanpr, "chaining_threshold")
 layout.label(text="Taper:")
 layout.prop(lanpr, "use_same_taper", expand = True)
 if lanpr.use_same_taper == "DISABLED":
diff --git a/source/blender/blenkernel/intern/scene.c 
b/source/blender/blenkernel/intern/scene.c
index cc0977d715f..eb8eedcb275 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -987,15 +987,19 @@ void BKE_scene_init(Scene *sce)
 
   sce->lanpr.enable_intersections = 1;
 
-  sce->lanpr.background_color[0] = 0.76;
-  sce->lanpr.background_color[1] = 0.54;
-  sce->lanpr.background_color[2] = 0.29;
+  sce->lanpr.background_color[0] = 0;
+  sce->lanpr.background_color[1] = 0;
+  sce->lanpr.background_color[2] = 0;
   sce->lanpr.background_color[3] = 1;
 
-  sce->lanpr.line_color[0] = 0.39;
-  sce->lanpr.line_color[1] = 0.12;
-  sce->lanpr.line_color[2] = 0.04;
+  sce->lanpr.line_color[0] = 1;
+  sce->lanpr.line_color[1] = 1;
+  sce->lanpr.line_color[2] = 1;
   sce->lanpr.line_color[3] = 1;
+
+  sce->lanpr.enable_intersections = 1;
+  sce->lanpr.enable_chaining = 1;
+  sce->lanpr.chaining_threshold = 0.01;
 }
 
 Scene *BKE_scene_add(Main *bmain, const char *name)
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 7c4da87b422..5dfad61089f 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -195,7 +195,7 @@ void 
lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain *rlc,
   }
 }
 
-void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float 
dist_threshold)
+void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb)
 {
   LANPR_RenderLineChain *rlc;
   LANPR_RenderLineChainItem *rlci;
@@ -412,16 +412,6 @@ void 
lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
   }
   ba = lanpr_get_point_bounding_area(rb, new_rv->fbcoord[0], 
new_rv->fbcoord[1]);
 }
-
-// LANPR_RenderLineChainItem* rlci;
-// printf("line:\n");
-// for (rlci = rlc->chain.first; rlci; rlci = rlci->item.next) {
-// printf("  %f,%f %d\n", rlci->pos[0],rlci->pos[1], rlci->occlusion);
-//}
-// printf("\n");
-
-// lanpr_reduce_render_line_chain_recursive(rlc,rlc->chain.first, 
rlc->chain.last,
-// dist_threshold);
   }
 }
 
@@ -623,7 +613,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer 
*rb)
   dist = new_len;
 }
   }
-  if (dist < 0.01f && closest_cre) {
+  if (dist < rb->scene->lanpr.chaining_threshold && closest_cre) {
 closest_cre->picked = 1;
 closest_cre->rlc->picked = 1;
 BLI_remlink(>linked_chains, cr

[Bf-blender-cvs] [6e38e95b964] soc-2019-npr: Merge branch 'master' into soc-2019-npr

2019-06-19 Thread YimingWu
Commit: 6e38e95b96469dcb5f05db9c055b18189d6607aa
Author: YimingWu
Date:   Wed Jun 19 13:23:43 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB6e38e95b96469dcb5f05db9c055b18189d6607aa

Merge branch 'master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [ca0c24c9df0] soc-2019-npr: LANPR: Manual stroke update functions. (Not working yet)

2019-06-19 Thread YimingWu
Commit: ca0c24c9df0a542856c97d26b802ff494e007c96
Author: YimingWu
Date:   Wed Jun 19 17:41:02 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBca0c24c9df0a542856c97d26b802ff494e007c96

LANPR: Manual stroke update functions. (Not working yet)

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/editors/render/render_intern.h
M   source/blender/editors/render/render_ops.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 4f37cf04265..e2416de1410 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1669,7 +1669,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
 col.prop(md, "face_influence")
 
 def FEATURE_LINE(self, layout, ob, md):
-layout.label(text='Not operational yet')
+layout.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', 
text='Manual Update')
 layout.label(text='Usage:')
 row = layout.row()
 row.prop(md,'usage',expand=True)
@@ -1684,7 +1684,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
 row.prop(md,'enable_modifier_mark',toggle=True)
 layout.label(text='Result GP:')
 layout.prop(md,'target')
-layout.prop(md,'replace')
+layout.prop(md,'replace', text='Replace existing frames')
 
 row = layout.row()
 row.prop(md,'layer')
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 50abf53bbd2..95cfe3dd2e7 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -292,7 +292,7 @@ void lanpr_update_data_for_external(Depsgraph *depsgraph)
 return;
   if (!lanpr_share.render_buffer_shared ||
   lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra) {
-lanpr_compute_feature_lines_internal(depsgraph, lanpr, scene);
+lanpr_compute_feature_lines_internal(depsgraph);
   }
 }
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h 
b/source/blender/draw/engines/lanpr/lanpr_access.h
index 0e3903c9f37..5703cc2e52e 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -20,7 +20,7 @@ void lanpr_update_data_for_external(Depsgraph *depsgraph);
 
 int lanpr_count_chain(LANPR_RenderLineChain *rlc);
 
-int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR 
*lanpr, Scene *scene);
+int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph);
 
 void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb);
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c 
b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 2294af796b1..f588e87a0b3 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -587,8 +587,8 @@ static void lanpr_render_matrices_init(RenderEngine 
*engine, Depsgraph *depsgrap
   DRW_view_set_active(view);
 }
 
-int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR 
*lanpr, Scene *scene);
-LANPR_RenderBuffer *lanpr_create_render_buffer(SceneLANPR *lanpr);
+int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph);
+LANPR_RenderBuffer *lanpr_create_render_buffer();
 
 extern DrawEngineType draw_engine_lanpr_type;
 
@@ -628,10 +628,10 @@ static void lanpr_render_to_image(LANPR_Data *vedata,
   if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE ||
   (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && 
lanpr->enable_intersections)) {
 if (!lanpr_share.render_buffer_shared)
-  lanpr_create_render_buffer(lanpr);
+  lanpr_create_render_buffer();
 if (lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra ||
 LANPR_GLOBAL_update_tag) {
-  lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, lanpr, scene);
+  lanpr_compute_feature_lines_internal(draw_ctx->depsgraph);
 }
   }
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 2324f50d83d..90e60ebfd53 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -40,6 +40,11 @@
 #include "RNA_access.h"
 #include "RNA_define.h"
 
+#include "BKE_modifier.h"
+#include "BKE_gpencil.h"
+#include "BKE_gpenc

[Bf-blender-cvs] [dbb151c02b3] soc-2019-npr: LANPR: modified default UI for more logical display.

2019-06-19 Thread YimingWu
Commit: dbb151c02b386edaca9fbd0ef8f8361a69394b6a
Author: YimingWu
Date:   Wed Jun 19 15:09:04 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBdbb151c02b386edaca9fbd0ef8f8361a69394b6a

LANPR: modified default UI for more logical display.

===

M   release/scripts/startup/bl_ui/properties_render.py
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 ad8b4b0743b..1ce3101cf83 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -693,8 +693,13 @@ class LANPR_linesets(UIList):
 def draw_item(self, context, layout, data, item, icon, active_data, 
active_propname, index):
 lineset = item
 if self.layout_type in {'DEFAULT', 'COMPACT'}:
-split = layout.split(factor=0.6)
-split.label(text="Layer")
+split = layout.split(factor=0.4)
+t=''
+if not lineset.use_multiple_levels:
+t='Level %d'%lineset.qi_begin
+else:
+t='Level %d - %d'%(lineset.qi_begin,lineset.qi_end)
+split.label(text=t)
 row = split.row(align=True)
 row.prop(lineset, "color", text="", icon_value=icon)
 row.prop(lineset, "thickness", text="", icon_value=icon)
@@ -762,26 +767,15 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 
col.operator("scene.lanpr_rebuild_all_commands",icon="FILE_REFRESH", text='')
 else:
 col.operator("scene.lanpr_add_line_layer", icon="ADD", 
text='')
-
-if active_layer:
-layout.label(text= "Normal controlled line weight:")
-layout.prop(active_layer,"normal_mode", expand = True)
-if active_layer.normal_mode != "DISABLED":
-layout.prop(active_layer,"normal_control_object")
-layout.prop(active_layer,"normal_effect_inverse", toggle = 
True)
-layout.prop(active_layer,"normal_ramp_begin")
-layout.prop(active_layer,"normal_ramp_end")
-layout.prop(active_layer,"normal_thickness_begin", 
slider=True)
-layout.prop(active_layer,"normal_thickness_end", 
slider=True)
-
 else:
 layout.label(text="Vectorization:")
 layout.prop(lanpr, "enable_vector_trace", expand = True)
 
 
 class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel):
-bl_label = "Styles"
+bl_label = "Layer Settings"
 bl_parent_id = "RENDER_PT_lanpr"
+bl_options = {'DEFAULT_CLOSED'}
 COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 
'BLENDER_EEVEE'}
 
 @classmethod
@@ -798,6 +792,13 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, 
Panel):
 active_layer = lanpr.layers.active_layer
 if active_layer and lanpr.master_mode == "DPIX":
 active_layer = lanpr.layers[0]
+
+if lanpr.master_mode == "SOFTWARE":
+row = layout.row(align=True)
+row.prop(active_layer, "use_multiple_levels", 
icon='GP_MULTIFRAME_EDITING', icon_only=True)
+row.prop(active_layer, "qi_begin", text='Level')
+if active_layer.use_multiple_levels:
+row.prop(active_layer, "qi_end", text='To')
 
 row = layout.row(align=True)
 row.prop(active_layer,"use_same_style")
@@ -851,14 +852,10 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, 
Panel):
 if lanpr.enable_intersections:
 row.operator("scene.lanpr_calculate", text= "Recalculate")
 
-if lanpr.master_mode == "SOFTWARE":
-row = layout.row(align=True)
-row.prop(active_layer, "qi_begin")
-row.prop(active_layer, "qi_end")
-
 class RENDER_PT_lanpr_line_components(RenderButtonsPanel, Panel):
 bl_label = "Including"
 bl_parent_id = "RENDER_PT_lanpr"
+bl_options = {'DEFAULT_CLOSED'}
 COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 
'BLENDER_EEVEE'}
 
 @classmethod
@@ -898,33 +895,48 @@ class RENDER_PT_lanpr_line_components(RenderButtonsPanel, 
Panel):
 class RENDER_PT_lanpr_line_effects(RenderButtonsPanel, Panel):
 bl_label = "Effects"
 bl_parent_id = "REN

[Bf-blender-cvs] [4be8461b883] soc-2019-npr: LANPR: make format

2019-06-19 Thread YimingWu
Commit: 4be8461b88342d60dac788996656226e4ba7a3f6
Author: YimingWu
Date:   Wed Jun 19 17:42:31 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB4be8461b88342d60dac788996656226e4ba7a3f6

LANPR: make format

===

M   intern/cycles/util/util_windows.cpp
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/makesdna/DNA_collection_types.h
M   source/blender/makesdna/DNA_scene_types.h
M   source/blender/makesrna/intern/rna_collection.c
M   source/blender/makesrna/intern/rna_gpencil_modifier.c
M   source/blender/makesrna/intern/rna_lanpr.c
M   source/blender/makesrna/intern/rna_modifier.c
M   source/blender/makesrna/intern/rna_scene.c
M   source/blender/modifiers/intern/MOD_mybmesh.c

===

diff --git a/intern/cycles/util/util_windows.cpp 
b/intern/cycles/util/util_windows.cpp
index b8de9c418fe..807a5adc84a 100644
--- a/intern/cycles/util/util_windows.cpp
+++ b/intern/cycles/util/util_windows.cpp
@@ -15,7 +15,7 @@
  */
 
 #ifdef _WIN32
-#include 
+#  include 
 #endif
 
 #include "util_windows.h"
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 90e60ebfd53..756f6832eff 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -3841,18 +3841,38 @@ void lanpr_software_draw_scene(void *vedata, 
GPUFrameBuffer *dfb, int is_render)
 lanpr_calculate_normal_object_vector(ll, normal_object_direction);
 
 DRW_shgroup_uniform_vec4(rb->ChainShgrp, "color", ll->color, 1);
-DRW_shgroup_uniform_vec4(rb->ChainShgrp, "crease_color", 
ll->use_same_style?ll->color:ll->crease_color, 1);
-DRW_shgroup_uniform_vec4(rb->ChainShgrp, "material_color", 
ll->use_same_style?ll->color:ll->material_color, 1);
-DRW_shgroup_uniform_vec4(rb->ChainShgrp, "edge_mark_color", 
ll->use_same_style?ll->color:ll->edge_mark_color, 1);
-DRW_shgroup_uniform_vec4(rb->ChainShgrp, "intersection_color", 
ll->use_same_style?ll->color:ll->intersection_color, 1);
+DRW_shgroup_uniform_vec4(
+rb->ChainShgrp, "crease_color", ll->use_same_style ? ll->color : 
ll->crease_color, 1);
+DRW_shgroup_uniform_vec4(rb->ChainShgrp,
+ "material_color",
+ ll->use_same_style ? ll->color : 
ll->material_color,
+ 1);
+DRW_shgroup_uniform_vec4(rb->ChainShgrp,
+ "edge_mark_color",
+ ll->use_same_style ? ll->color : 
ll->edge_mark_color,
+ 1);
+DRW_shgroup_uniform_vec4(rb->ChainShgrp,
+ "intersection_color",
+ ll->use_same_style ? ll->color : 
ll->intersection_color,
+ 1);
 DRW_shgroup_uniform_float(rb->ChainShgrp, "thickness", >thickness, 
1);
-DRW_shgroup_uniform_float(rb->ChainShgrp, "thickness_crease", 
ll->use_same_style?>thickness:>thickness_crease, 1);
-DRW_shgroup_uniform_float(
-rb->ChainShgrp, "thickness_material", 
ll->use_same_style?>thickness:>thickness_material, 1);
-DRW_shgroup_uniform_float(
-rb->ChainShgrp, "thickness_edge_mark", 
ll->use_same_style?>thickness:>thickness_edge_mark, 1);
-DRW_shgroup_uniform_float(
-rb->ChainShgrp, "thickness_intersection", 
ll->use_same_style?>thickness:>thickness_intersection, 1);
+DRW_shgroup_uniform_float(rb->ChainShgrp,
+  "thickness_crease",
+  ll->use_same_style ? >thickness : 
>thickness_crease,
+  1);
+DRW_shgroup_uniform_float(rb->ChainShgrp,
+  "thickness_material",
+  ll->use_same_style ? >thickness : 
>thickness_material,
+  1);
+DRW_shgroup_uniform_float(rb->ChainShgrp,
+  "thickness_edge_mark",
+  ll->use_same_style ? >thickness : 
>thickness_edge_mark,
+  1);
+DRW_shgroup_uniform_float(rb->ChainShgrp,
+  "thickness_intersection",
+  ll->use_same_style ? >thickness :
+ 

[Bf-blender-cvs] [fd803aba5eb] soc-2019-npr: GPENCIL: use copy_v3_v3 for gp points.

2019-06-23 Thread YimingWu
Commit: fd803aba5eb36807a8fa7053c5d11b2f49f13608
Author: YimingWu
Date:   Mon Jun 24 08:35:30 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBfd803aba5eb36807a8fa7053c5d11b2f49f13608

GPENCIL: use copy_v3_v3 for gp points.

===

M   source/blender/blenkernel/intern/gpencil.c

===

diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 9acd9d3b447..83ed203c109 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1444,32 +1444,23 @@ static int stroke_march_next_point(bGPDstroke *gps,
 return -1;
 
   copy_v3_v3(step_start, current);
-
-  point[0] = gps->points[next_point_index].x;
-  point[1] = gps->points[next_point_index].y;
-  point[2] = gps->points[next_point_index].z;
+  copy_v3_v3(point,>points[next_point_index]);
   remaining_till_next = len_v3v3(point, step_start);
 
   while (remaining_till_next < remaining_march) {
 remaining_march -= remaining_till_next;
-point[0] = gps->points[next_point_index].x;
-point[1] = gps->points[next_point_index].y;
-point[2] = gps->points[next_point_index].z;
+copy_v3_v3(point,>points[next_point_index]);
 copy_v3_v3(step_start, point);
 next_point_index++;
 if (!(next_point_index < gps->totpoints)) {
   next_point_index = gps->totpoints - 1;
   break;
 }
-point[0] = gps->points[next_point_index].x;
-point[1] = gps->points[next_point_index].y;
-point[2] = gps->points[next_point_index].z;
+copy_v3_v3(point,>points[next_point_index]);
 remaining_till_next = len_v3v3(point, step_start);
   }
   if (remaining_till_next < remaining_march) {
-result[0] = gps->points[next_point_index].x;
-result[1] = gps->points[next_point_index].y;
-result[2] = gps->points[next_point_index].z;
+copy_v3_v3(result,>points[next_point_index]);
 *pressure = gps->points[next_point_index].pressure;
 *strength = gps->points[next_point_index].strength;
 return 0;
@@ -1504,13 +1495,9 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
 
   float length = 0.0f;
   float last_coord[3], this_coord[3];
-  last_coord[0] = pt[0].x;
-  last_coord[1] = pt[0].y;
-  last_coord[2] = pt[0].z;
+  copy_v3_v3(last_coord,[0]);
   for (i = 1; i < gps->totpoints; i++) {
-this_coord[0] = pt[i].x;
-this_coord[1] = pt[i].y;
-this_coord[2] = pt[i].z;
+copy_v3_v3(this_coord,[i]);
 length += len_v3v3(last_coord, this_coord);
   }
 
@@ -1521,21 +1508,15 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
   int next_point_index = 1;
   i = 0;
   float pressure, strength;
-  last_coord[0] = pt[0].x;
-  last_coord[1] = pt[0].y;
-  last_coord[2] = pt[0].z;
+  copy_v3_v3(last_coord,[0]);
   // 1st point
-  new_pt[i].x = last_coord[0];
-  new_pt[i].y = last_coord[1];
-  new_pt[i].z = last_coord[2];
+  copy_v3_v3(_pt[i],last_coord);
   new_pt[i].pressure = pt[0].pressure;
   new_pt[i].strength = pt[0].strength;
   i++;
   while ((next_point_index = stroke_march_next_point(
   gps, next_point_index, last_coord, dist, last_coord, , 
)) > -1) {
-new_pt[i].x = last_coord[0];
-new_pt[i].y = last_coord[1];
-new_pt[i].z = last_coord[2];
+copy_v3_v3(_pt[i],last_coord);
 new_pt[i].pressure = pressure;
 new_pt[i].strength = strength;
 i++;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [7799374520e] soc-2019-npr: LANPR: Fixed modifier read pointer error by providing foreachObjectLink() callback.

2019-06-23 Thread YimingWu
Commit: 7799374520e1179d9b3614f4e5486da23bb52a73
Author: YimingWu
Date:   Sun Jun 23 16:11:21 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB7799374520e1179d9b3614f4e5486da23bb52a73

LANPR: Fixed modifier read pointer error by providing foreachObjectLink() 
callback.

===

M   source/blender/blenloader/intern/readfile.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/makesrna/intern/rna_modifier.c
M   source/blender/modifiers/intern/MOD_featureline.c

===

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index f49f69f1aba..f08e789b695 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5798,6 +5798,11 @@ static void direct_link_modifiers(FileData *fd, ListBase 
*lb)
 }
   }
 }
+else if (md->type == eModifierType_FeatureLine) {
+  FeatureLineModifierData *flmd= (FeatureLineModifierData *)md;
+
+  //flmd->target = newdataadr(fd, flmd->target);
+}
   }
 }
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 79e675d67d0..16248a8e8c1 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4040,8 +4040,8 @@ int lanpr_compute_feature_lines_internal(Depsgraph 
*depsgraph)
 
   if (lanpr->enable_chaining) {
 lanpr_NO_THREAD_chain_feature_lines(rb);  // should use user_adjustable 
value
-//lanpr_split_chains_for_fixed_occlusion(rb);
-//anpr_connect_chains_image_space(rb);
+lanpr_split_chains_for_fixed_occlusion(rb);
+lanpr_connect_chains_image_space(rb);
   }
 
   rb->cached_for_frame = rb->scene->r.cfra;
diff --git a/source/blender/makesrna/intern/rna_modifier.c 
b/source/blender/makesrna/intern/rna_modifier.c
index ac51cd23820..d4733b33fe1 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -6049,6 +6049,7 @@ static void rna_def_modifier_featureline(BlenderRNA *brna)
   RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
   prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
+  RNA_def_property_pointer_sdna(prop, NULL, "target");
   RNA_def_property_ui_text(prop, "Target", "GPencil object to put the stroke 
result");
   RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
   RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
diff --git a/source/blender/modifiers/intern/MOD_featureline.c 
b/source/blender/modifiers/intern/MOD_featureline.c
index 9377f55ab49..a0270aca8ef 100644
--- a/source/blender/modifiers/intern/MOD_featureline.c
+++ b/source/blender/modifiers/intern/MOD_featureline.c
@@ -40,6 +40,7 @@
 #include "BKE_modifier.h"
 #include "BKE_particle.h"
 #include "BKE_scene.h"
+#include "BKE_library_query.h"
 
 #include "DEG_depsgraph_query.h"
 
@@ -87,6 +88,13 @@ static Mesh *applyModifier(ModifierData *md, const 
ModifierEvalContext *ctx, Mes
   return mesh;
 }
 
+static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc 
walk, void *userData)
+{
+  FeatureLineModifierData *flmd = (FeatureLineModifierData *)md;
+
+  walk(userData, ob, >target, IDWALK_NOP);
+}
+
 ModifierTypeInfo modifierType_FeatureLine = {
 /* name */ "Feature Line",
 /* structName */ "FeatureLineModifierData",
@@ -108,7 +116,7 @@ ModifierTypeInfo modifierType_FeatureLine = {
 /* updateDepsgraph */ NULL,
 /* dependsOnTime */ dependsOnTime,
 /* dependsOnNormals */ NULL,
-/* foreachObjectLink */ NULL,
+/* foreachObjectLink */ foreachObjectLink,
 /* foreachIDLink */ NULL,
 /* foreachTexLink */ NULL,
 /* freeRuntimeData */ NULL,

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [332423a7caa] soc-2019-npr: LANPR: two step chaining, need a toggle for switching 2d/3d space priority.

2019-06-23 Thread YimingWu
Commit: 332423a7caa01ed0988f63546009054e4a4f753e
Author: YimingWu
Date:   Sun Jun 23 18:00:03 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB332423a7caa01ed0988f63546009054e4a4f753e

LANPR: two step chaining, need a toggle for switching 2d/3d space priority.

===

M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 865a01d64c2..0295494624a 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1513,7 +1513,7 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
 length += len_v3v3(last_coord, this_coord);
   }
 
-  int count = (int)(length / dist) + 3;  // preserve some extra in case
+  int count = (int)(length / dist) + 10;  // preserve some extra in case
 
   bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, 
"gp_stroke_points_sampled");
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 849b161c8dc..4ed3d873c20 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -525,7 +525,7 @@ void 
lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb)
  rlci->normal,
  rlci->line_type,
  fixed_occ);
-
+new_rlc->object_ref = rlc->object_ref;
 rlc = new_rlc;
 fixed_occ = rlci->occlusion;
   }
@@ -569,7 +569,7 @@ void lanpr_connect_two_chains(LANPR_RenderBuffer *rb,
 
 // this only does head-tail connection.
 // overlapping / tiny isolated segment / loop reduction not implemented here 
yet.
-void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb)
+void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb, int 
do_geometry_space)
 {
   LANPR_RenderLineChain *rlc, *new_rlc;
   LANPR_RenderLineChainItem *rlci, *next_rlci;
@@ -596,7 +596,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer 
*rb)
 
 rlci = rlc->chain.last;
 while (ba = lanpr_get_end_point_bounding_area(rb, rlci)) {
-  dist = 100.0f;
+  dist = do_geometry_space?rb->scene->lanpr.chaining_threshold:100.0f;
   closest_cre = NULL;
   if (!ba->linked_chains.first)
 break;
@@ -610,7 +610,9 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer 
*rb)
   BLI_remlink(>linked_chains, cre);
   continue;
 }
-float new_len = len_v2v2(cre->rlci->pos, rlci->pos);
+float new_len = do_geometry_space?
+len_v3v3(cre->rlci->gpos,rlci->gpos):
+len_v2v2(cre->rlci->pos, rlci->pos);
 if (new_len < dist) {
   closest_cre = cre;
   dist = new_len;
@@ -636,7 +638,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer 
*rb)
 
 rlci = rlc->chain.first;
 while (ba = lanpr_get_end_point_bounding_area(rb, rlci)) {
-  dist = 100.0f;
+  dist = do_geometry_space?rb->scene->lanpr.chaining_threshold:100.0f;
   closest_cre = NULL;
   if (!ba->linked_chains.first)
 break;
@@ -649,7 +651,9 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer 
*rb)
   BLI_remlink(>linked_chains, cre);
   continue;
 }
-float new_len = len_v2v2(cre->rlci->pos, rlci->pos);
+float new_len = do_geometry_space?
+len_v3v3(cre->rlci->gpos,rlci->gpos):
+len_v2v2(cre->rlci->pos, rlci->pos);
 if (new_len < dist) {
   closest_cre = cre;
   dist = new_len;
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 16248a8e8c1..714bf2c8d34 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -3748,7 +3748,7 @@ void lanpr_viewport_draw_offline_result(LANPR_TextureList 
*txl,
 
 void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb);
 void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb);
-void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb);
+void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb, int 
do_geometry_space);
 
 void lanpr_calculate_normal_object_vector(LANPR_LineLayer *ll, float 
*normal_object_direction)
 {
@@ -4041,7 +4041,8 @@ int lanpr_compute_feature_lines_internal(Depsgraph 
*depsgraph)
   if (lanpr->enable_chaining) {
 lanpr_NO_THREAD_chain_feature_lines(rb);  // shoul

[Bf-blender-cvs] [c2e7ef36d95] soc-2019-npr: LANPR: make format

2019-06-23 Thread YimingWu
Commit: c2e7ef36d95c9175897f5a6577f95278cb84264d
Author: YimingWu
Date:   Sun Jun 23 18:01:07 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBc2e7ef36d95c9175897f5a6577f95278cb84264d

LANPR: make format

===

M   source/blender/blenkernel/BKE_gpencil.h
M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/blenloader/intern/readfile.c
M   source/blender/blenloader/intern/versioning_280.c
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/modifiers/intern/MOD_mybmesh.c

===

diff --git a/source/blender/blenkernel/BKE_gpencil.h 
b/source/blender/blenkernel/BKE_gpencil.h
index 5b89c8bbadf..25d44ffca55 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -135,7 +135,9 @@ struct bGPDframe *BKE_gpencil_layer_getframe(struct 
bGPDlayer *gpl,
 struct bGPDframe *BKE_gpencil_layer_find_frame(struct bGPDlayer *gpl, int 
cframe);
 bool BKE_gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf);
 
-struct bGPDlayer *BKE_gpencil_layer_get_index(struct bGPdata* gpd, int index, 
int first_if_not_found);
+struct bGPDlayer *BKE_gpencil_layer_get_index(struct bGPdata *gpd,
+  int index,
+  int first_if_not_found);
 
 struct bGPDlayer *BKE_gpencil_layer_getactive(struct bGPdata *gpd);
 void BKE_gpencil_layer_setactive(struct bGPdata *gpd, struct bGPDlayer 
*active);
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 0295494624a..9acd9d3b447 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -984,9 +984,10 @@ bGPDlayer *BKE_gpencil_layer_getactive(bGPdata *gpd)
   return NULL;
 }
 
-bGPDlayer *BKE_gpencil_layer_get_index(bGPdata* gpd, int index, int 
first_if_not_found){
+bGPDlayer *BKE_gpencil_layer_get_index(bGPdata *gpd, int index, int 
first_if_not_found)
+{
   bGPDlayer *gpl;
-  int i=0;
+  int i = 0;
 
   /* error checking */
   if (ELEM(NULL, gpd, gpd->layers.first)) {
@@ -995,14 +996,14 @@ bGPDlayer *BKE_gpencil_layer_get_index(bGPdata* gpd, int 
index, int first_if_not
 
   /* loop over layers until found (assume only one active) */
   for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
-if (i==index) {
+if (i == index) {
   return gpl;
 }
 i++;
   }
 
   /* no such layer */
-  if(first_if_not_found){
+  if (first_if_not_found) {
 return gpd->layers.first;
   }
   return NULL;
diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index f08e789b695..b22286b978d 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5799,9 +5799,9 @@ static void direct_link_modifiers(FileData *fd, ListBase 
*lb)
   }
 }
 else if (md->type == eModifierType_FeatureLine) {
-  FeatureLineModifierData *flmd= (FeatureLineModifierData *)md;
+  FeatureLineModifierData *flmd = (FeatureLineModifierData *)md;
 
-  //flmd->target = newdataadr(fd, flmd->target);
+  // flmd->target = newdataadr(fd, flmd->target);
 }
   }
 }
diff --git a/source/blender/blenloader/intern/versioning_280.c 
b/source/blender/blenloader/intern/versioning_280.c
index 93f17a0eb02..5d584cc81f9 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -3520,29 +3520,29 @@ void blo_do_versions_280(FileData *fd, Library 
*UNUSED(lib), Main *bmain)
   }
 }
 for (Scene *sce = bmain->scenes.first; sce; sce = sce->id.next) {
-sce->lanpr.crease_threshold = 0.7;
+  sce->lanpr.crease_threshold = 0.7;
 
-sce->lanpr.line_thickness = 1.5;
-sce->lanpr.depth_clamp = 0.001;
-sce->lanpr.depth_strength = 800;
-sce->lanpr.normal_clamp = 2;
-sce->lanpr.normal_strength = 10;
+  sce->lanpr.line_thickness = 1.5;
+  sce->lanpr.depth_clamp = 0.001;
+  sce->lanpr.depth_strength = 800;
+  sce->lanpr.normal_clamp = 2;
+  sce->lanpr.normal_strength = 10;
 
-sce->lanpr.enable_intersections = 1;
+  sce->lanpr.enable_intersections = 1;
 
-sce->lanpr.background_color[0] = 0;
-sce->lanpr.background_color[1] = 0;
-sce->lanpr.background_color[2] = 0;
-sce->lanpr.background_color[3] = 1;
+  sce->lanpr.background_color[0] = 0;
+  sce->lanpr.background_color[1] = 0;
+  sce->lanpr.background_color[2] = 0;
+  sce->lanpr.back

[Bf-blender-cvs] [f30e4cd2362] soc-2019-npr: Merge branch 'master' into soc-2019-npr

2019-06-23 Thread YimingWu
Commit: f30e4cd2362e9c581fb1725ac89aae1f5e173abe
Author: YimingWu
Date:   Sat Jun 22 16:20:07 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBf30e4cd2362e9c581fb1725ac89aae1f5e173abe

Merge branch 'master' into soc-2019-npr

===



===

diff --cc source/blender/draw/CMakeLists.txt
index 0c14d73494e,8631a9f556b..f50cb8be979
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@@ -260,21 -249,7 +260,22 @@@ data_to_c_simple(engines/workbench/shad
  data_to_c_simple(engines/workbench/shaders/workbench_volume_frag.glsl SRC)
  data_to_c_simple(engines/workbench/shaders/workbench_world_light_lib.glsl SRC)
  
 +data_to_c_simple(engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_dpix_preview_frag.glsl SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl SRC)
 
+data_to_c_simple(engines/lanpr/shaders/lanpr_dpix_project_passthrough_vert.glsl
 SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_image_peel_frag.glsl SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_line_connection_vert.glsl 
SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_line_connection_geom.glsl 
SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_line_connection_frag.glsl 
SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_edge_frag.glsl SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl 
SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_software_passthrough_vert.glsl 
SRC)
 +data_to_c_simple(engines/lanpr/shaders/lanpr_software_chain_geom.glsl SRC)
 +
 +
+ data_to_c_simple(modes/shaders/common_colormanagement_lib.glsl SRC)
  data_to_c_simple(modes/shaders/common_globals_lib.glsl SRC)
  data_to_c_simple(modes/shaders/common_hair_lib.glsl SRC)
  data_to_c_simple(modes/shaders/common_hair_refine_vert.glsl SRC)

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [1d532325bd1] soc-2019-npr: LANPR: feature line modifier manual update

2019-06-23 Thread YimingWu
Commit: 1d532325bd160cfb08f8652e0c59e817583fc0cb
Author: YimingWu
Date:   Sun Jun 23 14:28:29 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB1d532325bd160cfb08f8652e0c59e817583fc0cb

LANPR: feature line modifier manual update

===

M   source/blender/blenkernel/BKE_gpencil.h
M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/blenkernel/BKE_gpencil.h 
b/source/blender/blenkernel/BKE_gpencil.h
index 8fc513d8a14..5b89c8bbadf 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -135,6 +135,8 @@ struct bGPDframe *BKE_gpencil_layer_getframe(struct 
bGPDlayer *gpl,
 struct bGPDframe *BKE_gpencil_layer_find_frame(struct bGPDlayer *gpl, int 
cframe);
 bool BKE_gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf);
 
+struct bGPDlayer *BKE_gpencil_layer_get_index(struct bGPdata* gpd, int index, 
int first_if_not_found);
+
 struct bGPDlayer *BKE_gpencil_layer_getactive(struct bGPdata *gpd);
 void BKE_gpencil_layer_setactive(struct bGPdata *gpd, struct bGPDlayer 
*active);
 void BKE_gpencil_layer_delete(struct bGPdata *gpd, struct bGPDlayer *gpl);
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 8f900d21873..865a01d64c2 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -984,6 +984,30 @@ bGPDlayer *BKE_gpencil_layer_getactive(bGPdata *gpd)
   return NULL;
 }
 
+bGPDlayer *BKE_gpencil_layer_get_index(bGPdata* gpd, int index, int 
first_if_not_found){
+  bGPDlayer *gpl;
+  int i=0;
+
+  /* error checking */
+  if (ELEM(NULL, gpd, gpd->layers.first)) {
+return NULL;
+  }
+
+  /* loop over layers until found (assume only one active) */
+  for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
+if (i==index) {
+  return gpl;
+}
+i++;
+  }
+
+  /* no such layer */
+  if(first_if_not_found){
+return gpd->layers.first;
+  }
+  return NULL;
+}
+
 /* set the active gp-layer */
 void BKE_gpencil_layer_setactive(bGPdata *gpd, bGPDlayer *active)
 {
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 756f6832eff..cc139152a17 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4261,32 +4261,49 @@ int lanpr_auto_create_line_layer_exec(struct bContext 
*C, struct wmOperator *op)
 
   return OPERATOR_FINISHED;
 }
-int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = >lanpr;
+
+void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, 
int frame){
   Object *ob;
   Object *gpobj;
   ModifierData *md;
   bGPdata *gpd;
   bGPDlayer *gpl;
   bGPDframe *gpf;
+  CollectionObject* co;
+  CollectionChild* cc;
 
-  return;
-  // XXX this iteration will not work. try to get an object list.
-  for (ob = scene->collection->objects.first; ob; ob = ob->id.next) {
-// TODO: Object visibility in render and viewport.
+  for(co = col->gobject.first;co;co=co->next){
+ob = co->ob;
 for (md = ob->modifiers.first; md; md = md->next) {
   if (md->type == eModifierType_FeatureLine) {
-FeatureLineModifierData *flmd = (FeatureLineModifierData *)flmd;
+FeatureLineModifierData *flmd = (FeatureLineModifierData *)md;
 if (flmd->target && flmd->target->type == OB_GPENCIL) {
   gpobj = flmd->target;
   gpd = gpobj->data;
-  // add strokes
+  gpl = BKE_gpencil_layer_get_index(gpd,flmd->layer,1);
+  if(!gpl){
+gpl = BKE_gpencil_layer_addnew(gpd,"lanpr_layer",true);
+  }
+  gpf = BKE_gpencil_frame_addnew(gpl,frame);
+  // add strokes, currently only once because object selection is 
broken now
+  lanpr_generate_gpencil_from_chain(md, dg, ob, gpl, gpf);
+  return; // immediately
 }
   }
 }
   }
+  for(cc=col->children.first;cc;cc=cc->next){
+lanpr_update_gp_strokes_recursive(dg, cc->collection,frame);
+  }
+}
+int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op)
+{
+  Scene *scene = CTX_data_scene(C);
+  Depsgraph* dg = CTX_data_depsgraph(C);
+  SceneLANPR *lanpr = >lanpr;
+  int frame = scene->r.cfra;
+
+  lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame);
 
   return OPERATOR_FINISHED;
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [dc61580638f] soc-2019-npr: LANPR: modifier controlled stroke generation is working. (only manual)

2019-06-23 Thread YimingWu
Commit: dc61580638ff5c9a3a91eaa03ffad56f01efc4e1
Author: YimingWu
Date:   Sun Jun 23 15:30:16 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBdc61580638ff5c9a3a91eaa03ffad56f01efc4e1

LANPR: modifier controlled stroke generation is working. (only manual)

===

M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 95cfe3dd2e7..f8b844b58ba 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -264,6 +264,10 @@ void lanpr_generate_gpencil_from_chain(
   LANPR_RenderLineChainItem *rlci;
   for (rlc = rb->chains.first; rlc; rlc = (LANPR_RenderLineChain 
*)rlc->item.next) {
 
+if(!rlc->object_ref) continue; //XXX: intersection lines are lost
+
+if(ob && ob!=rlc->object_ref->id.orig_id) continue;
+
 int array_idx = 0;
 int count = lanpr_count_chain(rlc);
 bGPDstroke *gps = BKE_gpencil_add_stroke(gpf, color_idx, count, thickness);
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 5dfad61089f..849b161c8dc 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -214,6 +214,8 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer 
*rb)
 
 rlc = lanpr_create_render_line_chain(rb);
 
+rlc->object_ref = rl->object_ref; // can only be the same object in a 
chain.
+
 int r1, r2, c1, c2, row, col;
 LANPR_RenderLine *new_rl = rl;
 LANPR_RenderVert *new_rv;
@@ -600,6 +602,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer 
*rb)
 break;
   for (cre = ba->linked_chains.first; cre; cre = next_cre) {
 next_cre = (LANPR_ChainRegisterEntry *)cre->item.next;
+if (cre->rlc->object_ref!=rlc) continue;
 if (cre->rlc == rlc ||
 ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != 
occlusion)
   continue;
diff --git a/source/blender/draw/engines/lanpr/lanpr_data_types.h 
b/source/blender/draw/engines/lanpr/lanpr_data_types.h
index 4be69b0c156..7feee82b020 100644
--- a/source/blender/draw/engines/lanpr/lanpr_data_types.h
+++ b/source/blender/draw/engines/lanpr/lanpr_data_types.h
@@ -113,7 +113,10 @@ typedef struct LANPR_RenderLine {
   // *MaterialRef;
   char min_occ;
   char flags;  // also for line type determination on chainning
+  
+  // still need this entry because culled lines will not add to object reln 
node
   struct Object *object_ref;
+
   int edge_idx;  // for gpencil stroke modifier
 } LANPR_RenderLine;
 
@@ -123,6 +126,7 @@ typedef struct LANPR_RenderLineChain {
   // int SegmentCount;  // we count before draw cmd.
   float length;  // calculated before draw cmd.
   char picked;   // used when re-connecting
+  struct Object* object_ref;
 } LANPR_RenderLineChain;
 
 typedef struct LANPR_RenderLineChainItem {
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index cc139152a17..79e675d67d0 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -1464,10 +1464,6 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb)
   if (rt->v[2]->fbcoord[3] < 0)
 In3 = 1;
 
-  rt->rl[0]->object_ref = o;
-  rt->rl[1]->object_ref = o;
-  rt->rl[2]->object_ref = o;
-
   if (v_count > 60) {
 veln->element_count = v_count;
 veln = lanpr_new_cull_point_space64(rb);
@@ -1542,6 +1538,7 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb)
 rl->r = [0];
 rl->tl = rt1;
 rt1->rl[1] = rl;
+rl->object_ref = o;
 
 rl = mem_static_aquire(>render_data_pool, 
sizeof(LANPR_RenderLine));
 rls = mem_static_aquire(>render_data_pool, 
sizeof(LANPR_RenderLineSegment));
@@ -1552,6 +1549,7 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb)
 rl->tl = rt->rl[0]->tl == rt ? rt1 : rt->rl[0]->tl;
 rl->tr = rt->rl[0]->tr == rt ? rt1 : rt->rl[0]->tr;
 rt1->rl[0] = rl;
+rl->object_ref = o;
 
 rl = mem_static_aquire(>render_data_pool, 
sizeof(LANPR_RenderLine));
 rls = mem_static_aquire(>render_data_pool, 
sizeof(LANPR_RenderLineSegment));
@@ -1562,6 +1560,7 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb)
 rl->tl = rt->rl[2]->tl 

[Bf-blender-cvs] [45074ae36f3] soc-2019-npr: LANPR: use "master style" instead of following contour style.

2019-06-23 Thread YimingWu
Commit: 45074ae36f38c3eeb8d0a0516f214322f6a93a4b
Author: YimingWu
Date:   Mon Jun 24 09:23:50 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB45074ae36f38c3eeb8d0a0516f214322f6a93a4b

LANPR: use "master style" instead of following contour style.

===

M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.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 ab0452556fd..75412dd46c8 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -813,7 +813,7 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel):
 row.prop(active_layer, "enable_material_seperate", 
text="Material", toggle=True)
 row.prop(active_layer, "enable_intersection", text="Intersection", 
toggle=True)
 else:
-layout.operator("scene.lanpr_enable_all_line_types",text='Set All')
+row.prop(active_layer, "thickness", text="")
 split = layout.split(factor=0.3)
 col = split.column()
 col.prop(active_layer, "enable_contour", text="Contour", 
toggle=True)
@@ -824,25 +824,25 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, 
Panel):
 col = split.column()
 row = col.row(align = True)
 #row.enabled = active_layer.enable_contour this is always enabled 
now
-row.prop(active_layer, "color", text="")
-row.prop(active_layer, "thickness", text="")
+row.prop(active_layer, "contour_color", text="")
+row.prop(active_layer, "thickness_contour", text="", slider=True)
 row = col.row(align = True)
 row.enabled = active_layer.enable_crease
 row.prop(active_layer, "crease_color", text="")
-row.prop(active_layer, "thickness_crease", text="")
+row.prop(active_layer, "thickness_crease", text="", slider=True)
 row = col.row(align = True)
 row.enabled = active_layer.enable_edge_mark
-row.prop(active_layer, "crease_color", text="")
-row.prop(active_layer, "thickness_edge_mark", text="")
+row.prop(active_layer, "edge_mark_color", text="")
+row.prop(active_layer, "thickness_edge_mark", text="", slider=True)
 row = col.row(align = True)
 row.enabled = active_layer.enable_material_seperate
 row.prop(active_layer, "material_color", text="")
-row.prop(active_layer, "thickness_material", text="")
+row.prop(active_layer, "thickness_material", text="", slider=True)
 row = col.row(align = True)
 if lanpr.enable_intersections:
 row.enabled = active_layer.enable_intersection
 row.prop(active_layer, "intersection_color", text="")
-row.prop(active_layer, "thickness_intersection", text="")
+row.prop(active_layer, "thickness_intersection", text="", 
slider=True)
 else:
 row.label(text= "Intersection Calculation Disabled")
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c 
b/source/blender/draw/engines/lanpr/lanpr_engine.c
index f588e87a0b3..2c4ac186aa5 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -311,14 +311,14 @@ static void lanpr_cache_init(void *vedata)
 stl->g_data->dpix_preview_shgrp, "edge_mask_tex", 
>dpix_in_edge_mask);
 DRW_shgroup_uniform_vec4(
 stl->g_data->dpix_preview_shgrp, "viewport", 
stl->g_data->dpix_viewport, 1);
-DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp, "color", 
ll->color, 1);
-DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp, "crease_color", 
ll->crease_color, 1);
+DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp, "color", 
ll->use_same_style?ll->color:ll->contour_color, 1);
+DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp, "crease_color", 
ll->use_same_

[Bf-blender-cvs] [f29cf28bab4] soc-2019-npr: LANPR: Fix pointer mistakes.

2019-06-24 Thread YimingWu
Commit: f29cf28bab4349e98f15d06f1b4ff370d003e72a
Author: YimingWu
Date:   Mon Jun 24 16:15:39 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBf29cf28bab4349e98f15d06f1b4ff370d003e72a

LANPR: Fix pointer mistakes.

===

M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 32e0501c2b8..3cd915b9713 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -235,9 +235,8 @@ void lanpr_generate_gpencil_geometry(
 }
 
 void lanpr_generate_gpencil_from_chain(
-GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, 
bGPDframe *gpf)
+Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf)
 {
-  StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
   Scene *scene = DEG_get_evaluated_scene(depsgraph);
   LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared;
 
@@ -267,7 +266,7 @@ void lanpr_generate_gpencil_from_chain(
 if (!rlc->object_ref)
   continue;  // XXX: intersection lines are lost
 
-if (ob && ob != rlc->object_ref->id.orig_id)
+if (ob && >id != rlc->object_ref->id.orig_id)
   continue;
 
 int array_idx = 0;
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h 
b/source/blender/draw/engines/lanpr/lanpr_access.h
index 5703cc2e52e..82168e71942 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -14,7 +14,7 @@ void lanpr_generate_gpencil_geometry(
 GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, 
bGPDframe *gpf);
 
 void lanpr_generate_gpencil_from_chain(
-GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, 
bGPDframe *gpf);
+Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf);
 
 void lanpr_update_data_for_external(Depsgraph *depsgraph);
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 1e712ac72cf..efbd92413d0 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -602,7 +602,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer 
*rb, int do_geometry_sp
 break;
   for (cre = ba->linked_chains.first; cre; cre = next_cre) {
 next_cre = (LANPR_ChainRegisterEntry *)cre->item.next;
-if (cre->rlc->object_ref != rlc)
+if (cre->rlc->object_ref != rlc->object_ref)
   continue;
 if (cre->rlc == rlc ||
 ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != 
occlusion)
@@ -644,6 +644,8 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer 
*rb, int do_geometry_sp
 break;
   for (cre = ba->linked_chains.first; cre; cre = next_cre) {
 next_cre = (LANPR_ChainRegisterEntry *)cre->item.next;
+if (cre->rlc->object_ref != rlc->object_ref)
+  continue;
 if (cre->rlc == rlc ||
 ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != 
occlusion)
   continue;
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index be786b5829a..602a6fab6cc 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4312,7 +4312,7 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
   gpf = BKE_gpencil_frame_addnew(gpl, frame);
   BKE_gpencil_free_strokes(gpf);  // force clear now
 
-  lanpr_generate_gpencil_from_chain(md, dg, ob, gpl, gpf);
+  lanpr_generate_gpencil_from_chain(dg, ob, gpl, gpf);
 }
   }
 }
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
index c3d4f930c88..c17b9c0d73d 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
@@ -84,7 +84,7 @@ static void copyData(const GpencilModifierData *md, 
GpencilModifierData *target)
 static void deformStroke(
 GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, 
bGPDframe *gpf)
 {
-  lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf);
+  lanpr_generate_gpencil_from_chain(depsgraph, ob, gpl, gpf);
 }
 
 static void bak

[Bf-blender-cvs] [6e1be5b09e8] soc-2019-npr: LANPR: removed GP Stroke modifier, Object modifier now only create visible strokes and follow level values.

2019-06-24 Thread YimingWu
Commit: 6e1be5b09e8d2b84399451aee6a88ae1a1a07c65
Author: YimingWu
Date:   Mon Jun 24 16:49:04 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB6e1be5b09e8d2b84399451aee6a88ae1a1a07c65

LANPR: removed GP Stroke modifier, Object modifier now only create visible 
strokes and follow level values.

===

M   source/blender/blenkernel/BKE_gpencil_modifier.h
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/gpencil_modifiers/CMakeLists.txt
M   source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
M   source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
D   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
M   source/blender/makesdna/DNA_gpencil_modifier_types.h
M   source/blender/makesrna/RNA_access.h
M   source/blender/makesrna/intern/rna_gpencil_modifier.c
M   source/blender/makesrna/intern/rna_modifier.c

===

diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h 
b/source/blender/blenkernel/BKE_gpencil_modifier.h
index d616c74520a..bb0db5d44a3 100644
--- a/source/blender/blenkernel/BKE_gpencil_modifier.h
+++ b/source/blender/blenkernel/BKE_gpencil_modifier.h
@@ -53,7 +53,7 @@ struct bGPDstroke;
 
 typedef enum {
   /* Should not be used, only for None modifier type */
-  eGpencilModifierTypeType_None,
+  Type_None,
 
   /* grease pencil modifiers */
   eGpencilModifierTypeType_Gpencil,
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 3cd915b9713..d1873e77b11 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -39,203 +39,8 @@ static BMVert *split_edge_and_move(BMesh *bm, BMEdge *edge, 
const float new_pos[
   return vert;
 }
 
-void lanpr_generate_gpencil_geometry(
-GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, 
bGPDframe *gpf)
-{
-  StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
-  Scene *scene = DEG_get_evaluated_scene(depsgraph);
-  LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared;
-
-  if (gpmd->object == NULL) {
-printf("NULL object!\n");
-return;
-  }
-
-  if (rb == NULL) {
-printf("NULL LANPR rb!\n");
-return;
-  }
-
-  int color_idx = 0;
-  int tot_points = 0;
-  short thickness = 1;
-
-  float mat[4][4];
-
-  unit_m4(mat);
-
-  BMesh *bm;
-
-  bm = BKE_mesh_to_bmesh_ex(gpmd->object->data,
-&(struct BMeshCreateParams){0},
-&(struct BMeshFromMeshParams){
-.calc_face_normal = true,
-.cd_mask_extra = CD_MASK_ORIGINDEX,
-});
-
-  // Split countour lines at occlution points and deselect occluded segment
-  LANPR_RenderLine *rl;
-  LANPR_RenderLineSegment *rls, *irls;
-  for (rl = rb->all_render_lines.first; rl; rl = (LANPR_RenderLine 
*)rl->item.next) {
-BMEdge *e = BM_edge_at_index_find(bm, rl->edge_idx);
-BMVert *v1 = e->v1;  // Segment goes from v1 to v2
-BMVert *v2 = e->v2;
-
-BMVert *cur_vert = v1;
-for (rls = rl->segments.first; rls; rls = (LANPR_RenderLineSegment 
*)rls->item.next) {
-  irls = (LANPR_RenderLineSegment *)rls->item.next;
-
-  if (rls->occlusion != 0) {
-BM_elem_flag_disable(cur_vert, BM_ELEM_SELECT);
-  }
-
-  if (!irls) {
-break;
-  }
-
-  // safety reasons
-  CLAMP(rls->at, 0, 1);
-  CLAMP(irls->at, 0, 1);
-
-  if (irls->at == 1.0f) {
-if (irls->occlusion != 0) {
-  BM_elem_flag_disable(v2, BM_ELEM_SELECT);
-}
-break;
-  }
-
-  float split_pos[3];
-
-  interp_v3_v3v3(split_pos, v1->co, v2->co, irls->at);
-
-  cur_vert = split_edge_and_move(bm, e, split_pos);
-
-  e = BM_edge_exists(cur_vert, v2);
-}
-  }
-
-  // Chain together strokes
-  BMVert *vert;
-  BMIter iter;
-
-  BM_ITER_MESH (vert, , bm, BM_VERTS_OF_MESH) {
-
-// Have we already used this vert?
-// if(!BM_elem_flag_test(vert, BM_ELEM_SELECT)){
-// continue;
-//}
-
-BMVert *prepend_vert = NULL;
-BMVert *next_vert = vert;
-// Chain together the C verts and export them as GP strokes (chain in 
object space)
-BMVert *edge_vert;
-BMEdge *e;
-BMIter iter_e;
-
-LinkNodePair chain = {NULL, NULL};
-
-int connected_c_verts;
-
-while (next_vert != NULL) {
-
-  connected_c_verts = 0;
-  vert = next_vert;
-
-  BLI_linklist_append(, vert);
-

[Bf-blender-cvs] [e3f606fa65c] soc-2019-npr: Merge remote-tracking branch 'origin/soc-2019-npr' into soc-2019-npr

2019-06-24 Thread YimingWu
Commit: e3f606fa65c9e8439cff468841aeed60dfade698
Author: YimingWu
Date:   Mon Jun 24 16:51:04 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBe3f606fa65c9e8439cff468841aeed60dfade698

Merge remote-tracking branch 'origin/soc-2019-npr' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [5c7577f05b9] soc-2019-npr: LANPR: fix error in GPencilModifierType. allocate for GPencil weights.

2019-06-24 Thread YimingWu
Commit: 5c7577f05b9205ed0c12857f6288762919983e3e
Author: YimingWu
Date:   Mon Jun 24 17:15:35 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB5c7577f05b9205ed0c12857f6288762919983e3e

LANPR: fix error in GPencilModifierType. allocate for GPencil weights.

===

M   source/blender/blenkernel/BKE_gpencil_modifier.h
M   source/blender/blenkernel/intern/gpencil.c

===

diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h 
b/source/blender/blenkernel/BKE_gpencil_modifier.h
index bb0db5d44a3..d616c74520a 100644
--- a/source/blender/blenkernel/BKE_gpencil_modifier.h
+++ b/source/blender/blenkernel/BKE_gpencil_modifier.h
@@ -53,7 +53,7 @@ struct bGPDstroke;
 
 typedef enum {
   /* Should not be used, only for None modifier type */
-  Type_None,
+  eGpencilModifierTypeType_None,
 
   /* grease pencil modifiers */
   eGpencilModifierTypeType_Gpencil,
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 40567ce7b9b..c6174ff0474 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1427,13 +1427,15 @@ void BKE_gpencil_dvert_ensure(bGPDstroke *gps)
 
 /* ** */
 
+/* weight not working yet! */
 static int stroke_march_next_point(bGPDstroke *gps,
int next_point_index,
float *current,
float dist,
float *result,
float *pressure,
-   float *strength)
+   float *strength,
+   float* weight)
 {
   float remaining_till_next = 0.0f;
   float remaining_march = dist;
@@ -1463,6 +1465,7 @@ static int stroke_march_next_point(bGPDstroke *gps,
 copy_v3_v3(result, >points[next_point_index]);
 *pressure = gps->points[next_point_index].pressure;
 *strength = gps->points[next_point_index].strength;
+*weight = gps->dvert[next_point_index].dw->weight;
 return 0;
   }
   else {
@@ -1484,6 +1487,7 @@ static int stroke_march_next_point(bGPDstroke *gps,
 bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist)
 {
   bGPDspoint *pt = gps->points;
+  MDeformVert* dv = gps->dvert;
   int i;
 
   if (gps->totpoints < 2 || dist < FLT_EPSILON)
@@ -1501,13 +1505,17 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
 length += len_v3v3(last_coord, this_coord);
   }
 
-  int count = (int)(length / dist) + 10;  // preserve some extra in case
+  int count = (int)(length / dist) + 2;  // preserve some extra in case
 
   bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, 
"gp_stroke_points_sampled");
+  MDeformVert* new_dv;
+  if (gps->dvert != NULL) {
+new_dv = MEM_callocN(gps->dvert, sizeof(*gps->dvert) * count);
+  }
 
   int next_point_index = 1;
   i = 0;
-  float pressure, strength;
+  float pressure, strength, weight;
   copy_v3_v3(last_coord, [0]);
   // 1st point
   copy_v3_v3(_pt[i], last_coord);
@@ -1515,7 +1523,7 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
   new_pt[i].strength = pt[0].strength;
   i++;
   while ((next_point_index = stroke_march_next_point(
-  gps, next_point_index, last_coord, dist, last_coord, , 
)) > -1) {
+  gps, next_point_index, last_coord, dist, last_coord, , 
, )) > -1) {
 copy_v3_v3(_pt[i], last_coord);
 new_pt[i].pressure = pressure;
 new_pt[i].strength = strength;
@@ -1525,10 +1533,12 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
   }
 
   gps->points = new_pt;
+  gps->dvert = new_dv;
 
   gps->totpoints = i;
 
   MEM_freeN(pt);  // original
+  MEM_freeN(dv);
 
   gps->flag |= GP_STROKE_RECALC_GEOMETRY;
   gps->tot_triangles = 0;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [794da0fa14a] soc-2019-npr: GPENCIL: Sample function now handles weights as well.

2019-06-24 Thread YimingWu
Commit: 794da0fa14a336c455b341806614ce887361675b
Author: YimingWu
Date:   Mon Jun 24 19:16:18 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB794da0fa14a336c455b341806614ce887361675b

GPENCIL: Sample function now handles weights as well.

===

M   source/blender/blenkernel/intern/gpencil.c

===

diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index c6174ff0474..e448b15fe86 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1427,7 +1427,19 @@ void BKE_gpencil_dvert_ensure(bGPDstroke *gps)
 
 /* ** */
 
-/* weight not working yet! */
+MDeformVert* stroke_defvert_new_count(int totweight, int count)
+{
+  int i;
+
+  MDeformVert* dst = MEM_mallocN(count * sizeof(MDeformVert),"new_deformVert");
+
+  for (i = 0; i < count; i++) {
+  dst[i].dw = MEM_mallocN(sizeof(MDeformWeight) * totweight, 
"new_deformWeight");
+  }
+
+  return dst;
+}
+
 static int stroke_march_next_point(bGPDstroke *gps,
int next_point_index,
float *current,
@@ -1435,7 +1447,7 @@ static int stroke_march_next_point(bGPDstroke *gps,
float *result,
float *pressure,
float *strength,
-   float* weight)
+   float* weights)
 {
   float remaining_till_next = 0.0f;
   float remaining_march = dist;
@@ -1465,7 +1477,12 @@ static int stroke_march_next_point(bGPDstroke *gps,
 copy_v3_v3(result, >points[next_point_index]);
 *pressure = gps->points[next_point_index].pressure;
 *strength = gps->points[next_point_index].strength;
-*weight = gps->dvert[next_point_index].dw->weight;
+if(weights){
+  for(int j=0;jdvert->totweight;j++){
+weights[j] = gps->dvert[next_point_index].dw[j].weight;
+  }
+}
+
 return 0;
   }
   else {
@@ -1475,6 +1492,13 @@ static int stroke_march_next_point(bGPDstroke *gps,
 gps->points[next_point_index - 1].pressure, 
gps->points[next_point_index].pressure, ratio);
 *strength = interpf(
 gps->points[next_point_index - 1].strength, 
gps->points[next_point_index].strength, ratio);
+if(weights){
+  for(int j=0;jdvert->totweight;j++){
+weights[j] = interpf(
+gps->dvert[next_point_index - 1].dw[j].weight, 
gps->dvert[next_point_index].dw[j].weight, ratio);
+  }
+}
+
 return next_point_index;
   }
 }
@@ -1508,37 +1532,56 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float 
dist)
   int count = (int)(length / dist) + 2;  // preserve some extra in case
 
   bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, 
"gp_stroke_points_sampled");
-  MDeformVert* new_dv;
+  MDeformVert* new_dv=NULL;
   if (gps->dvert != NULL) {
-new_dv = MEM_callocN(gps->dvert, sizeof(*gps->dvert) * count);
+new_dv = stroke_defvert_new_count(gps->dvert->totweight, count);
+new_dv->totweight = gps->dvert->totweight;
+new_dv->flag = gps->dvert->flag;
   }
 
   int next_point_index = 1;
   i = 0;
-  float pressure, strength, weight;
+  float pressure, strength, *weights=NULL;
+  if(new_dv)
+weights = 
MEM_callocN(sizeof(float)*gps->dvert->totweight,"gp_stroke_point_weights_sampled");
+
+  // 1st point is always at the start
   copy_v3_v3(last_coord, [0]);
-  // 1st point
   copy_v3_v3(_pt[i], last_coord);
   new_pt[i].pressure = pt[0].pressure;
   new_pt[i].strength = pt[0].strength;
+  if(new_dv){
+for(int j=0;jtotweight;j++){
+  new_dv[i].dw[j].weight = gps->dvert->dw[j].weight;
+}
+  }
   i++;
+
+  // the rest
   while ((next_point_index = stroke_march_next_point(
-  gps, next_point_index, last_coord, dist, last_coord, , 
, )) > -1) {
+  gps, next_point_index, last_coord, dist, last_coord, , 
, weights)) > -1) {
 copy_v3_v3(_pt[i], last_coord);
 new_pt[i].pressure = pressure;
 new_pt[i].strength = strength;
+if(new_dv){
+  for(int j=0;jtotweight;j++){
+new_dv[i].dw[j].weight = weights[j];
+  }
+}
 i++;
 if (next_point_index == 0)
   break;  // last point finished
   }
-
+  
   gps->points = new_pt;
-  gps->dvert = new_dv;
-
   gps->totpoints = i;
-
   MEM_freeN(pt);  // original
-  MEM_freeN(dv);
+
+  if(new_dv){
+BKE_gpencil_free_stroke_weights(gps);
+gps->dvert = new_dv;
+MEM_freeN(weights);
+  }
 
   gps->flag |= GP_STROKE_RECALC_GEOMETRY;
   gps->tot_triangles = 0;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [1243299bee0] soc-2019-npr: LANPR: Added collection properties.

2019-06-18 Thread YimingWu
Commit: 1243299bee0be7225c673aaad55f93f4ab1d5d40
Author: YimingWu
Date:   Tue Jun 18 18:28:36 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB1243299bee0be7225c673aaad55f93f4ab1d5d40

LANPR: Added collection properties.

===

M   release/scripts/startup/bl_ui/properties_view_layer.py
M   source/blender/makesdna/DNA_collection_types.h
M   source/blender/makesrna/intern/rna_collection.c

===

diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py 
b/release/scripts/startup/bl_ui/properties_view_layer.py
index 121b8f2f401..2ebe55c65d5 100644
--- a/release/scripts/startup/bl_ui/properties_view_layer.py
+++ b/release/scripts/startup/bl_ui/properties_view_layer.py
@@ -82,10 +82,25 @@ class 
VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel):
 col = flow.column()
 col.prop(view_layer, "use_pass_subsurface_color", text="Subsurface 
Color")
 
+class VIEWLAYER_PT_lanpr_collection(ViewLayerButtonsPanel, Panel):
+bl_label = "Collection LANPR"
+
+@classmethod
+def poll(cls, context):
+return context.scene.lanpr.enabled
+
+def draw(self,context):
+layout = self.layout
+collection = context.collection
+row = layout.row()
+row.prop(collection.lanpr,"usage",expand=True)
+if collection.lanpr.usage!='INCLUDE':
+layout.prop(collection.lanpr,"force")
 
 classes = (
 VIEWLAYER_PT_layer,
 VIEWLAYER_PT_eevee_layer_passes,
+VIEWLAYER_PT_lanpr_collection,
 )
 
 if __name__ == "__main__":  # only for live edit.
diff --git a/source/blender/makesdna/DNA_collection_types.h 
b/source/blender/makesdna/DNA_collection_types.h
index c7f3ef4156d..9b72217a37a 100644
--- a/source/blender/makesdna/DNA_collection_types.h
+++ b/source/blender/makesdna/DNA_collection_types.h
@@ -43,6 +43,19 @@ typedef struct CollectionChild {
   struct Collection *collection;
 } CollectionChild;
 
+typedef struct CollectionLANPR{
+  short usage;
+  short force;/* force objects with LANPR modifier follow the rule */
+  char _pad[4];
+}CollectionLANPR;
+
+/* CollectionLANPR->mode */
+enum {
+  COLLECTION_LANPR_INCLUDE = 0,
+  COLLECTION_LANPR_OCCLUSION_ONLY = 1,
+  COLLECTION_LANPR_EXCLUDE = 2,
+};
+
 typedef struct Collection {
   ID id;
 
@@ -59,6 +72,9 @@ typedef struct Collection {
   short flag;
   char _pad[6];
 
+  /** LANPR engine specific */
+  CollectionLANPR lanpr;
+
   /* Runtime. Cache of objects in this collection and all its
* children. This is created on demand when e.g. some physics
* simulation needs it, we don't want to have it for every
diff --git a/source/blender/makesrna/intern/rna_collection.c 
b/source/blender/makesrna/intern/rna_collection.c
index 5a37c4c0e6f..7bd55f58a64 100644
--- a/source/blender/makesrna/intern/rna_collection.c
+++ b/source/blender/makesrna/intern/rna_collection.c
@@ -365,6 +365,32 @@ static void rna_def_collection_children(BlenderRNA *brna, 
PropertyRNA *cprop)
   RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
 }
 
+static void rna_def_collection_lanpr(BlenderRNA *brna,StructRNA *srna)
+{
+  PropertyRNA *prop;
+
+  static const EnumPropertyItem rna_collection_lanpr_usage[] = {
+{0, "INCLUDE", 0, "Include", "Include the collection into LANPR 
calculation"},
+{1, "OCCLUSION_ONLY", 0, "Occlusion Only", "Only use the collction to 
produce occlusion"},
+{2, "EXCLUDE", 0, "Exclude", "Don't use this collection in LANPR"},
+{0, NULL, 0, NULL, NULL}};
+
+  srna = RNA_def_struct(brna, "CollectionLANPR", NULL);
+  RNA_def_struct_sdna(srna, "CollectionLANPR");
+  RNA_def_struct_ui_text(srna, "Collection LANPR Usage", "LANPR usage for this 
collection");
+
+  prop = RNA_def_property(srna, "usage", PROP_ENUM, PROP_NONE);
+  RNA_def_property_enum_items(prop, rna_collection_lanpr_usage);
+  RNA_def_property_enum_default(prop, 0);
+  RNA_def_property_ui_text(prop, "Usage", "How to use this collection in 
LANPR");
+  RNA_def_property_update(prop, NC_SCENE, NULL);
+
+  prop = RNA_def_property(srna, "force", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_boolean_default(prop, 0);
+  RNA_def_property_ui_text(prop, "Force", "Force object who has LANPR 
modifiers to follow the rule");
+  
+}
+
 void RNA_def_collections(BlenderRNA *brna)
 {
   StructRNA *srna;
@@ -457,6 +483,11 @@ void RNA_def_collections(BlenderRNA *brna)
   RNA_def_property_ui_icon(prop, ICON_RESTRICT_RENDER_OFF, -1);
   RNA_def_property_ui_text(prop, "Disable in Renders", "Globally disable in 
renders");
   RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, 
"rna_Collectio

[Bf-blender-cvs] [7cb674d5211] soc-2019-npr: LANPR: make format

2019-06-17 Thread YimingWu
Commit: 7cb674d5211c5f5fa04e9aa618dbb562ff812e48
Author: YimingWu
Date:   Mon Jun 17 15:08:06 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB7cb674d5211c5f5fa04e9aa618dbb562ff812e48

LANPR: make format

===

M   intern/ghost/intern/GHOST_ContextCGL.mm
M   intern/ghost/intern/GHOST_SystemCocoa.mm
M   source/blender/blenkernel/intern/scene.c
M   source/blender/draw/engines/lanpr/lanpr_access.c
M   source/blender/draw/engines/lanpr/lanpr_access.h
M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_data_types.h
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/draw/engines/lanpr/lanpr_snake.c
M   source/blender/draw/intern/draw_manager.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencilbackbonestretch.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
M   source/blender/makesdna/DNA_modifier_types.h
M   source/blender/makesdna/DNA_scene_types.h
M   source/blender/makesrna/intern/rna_modifier.c
M   source/blender/modifiers/intern/MOD_featureline.c

===

diff --git a/intern/ghost/intern/GHOST_ContextCGL.mm 
b/intern/ghost/intern/GHOST_ContextCGL.mm
index 12c340ffe97..0fca41306a6 100644
--- a/intern/ghost/intern/GHOST_ContextCGL.mm
+++ b/intern/ghost/intern/GHOST_ContextCGL.mm
@@ -34,7 +34,8 @@
 
 static void ghost_fatal_error_dialog(const char *msg)
 {
-  @autoreleasepool {
+  @autoreleasepool
+  {
 NSString *message = [NSString stringWithFormat:@"Error opening 
window:\n%s", msg];
 
 NSAlert *alert = [[NSAlert alloc] init];
@@ -337,7 +338,8 @@ static const OSType METAL_CORE_VIDEO_PIXEL_FORMAT = 
kCVPixelFormatType_32BGRA;
 
 void GHOST_ContextCGL::metalInit()
 {
-  @autoreleasepool {
+  @autoreleasepool
+  {
 id device = m_metalLayer.device;
 
 // Create a command queue for blit/present operation
@@ -532,7 +534,8 @@ void GHOST_ContextCGL::metalUpdateFramebuffer()
 
 void GHOST_ContextCGL::metalSwapBuffers()
 {
-  @autoreleasepool {
+  @autoreleasepool
+  {
 updateDrawingContext();
 glFlush();
 
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm 
b/intern/ghost/intern/GHOST_SystemCocoa.mm
index 376ebfa2a21..80a521a7ca5 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.mm
+++ b/intern/ghost/intern/GHOST_SystemCocoa.mm
@@ -1358,7 +1358,8 @@ bool GHOST_SystemCocoa::handleOpenDocumentRequest(void 
*filepathStr)
 
   // Check open windows if some changes are not saved
   if (m_windowManager->getAnyModifiedState()) {
-@autoreleasepool {
+@autoreleasepool
+{
   NSAlert *alert = [[NSAlert alloc] init];
   NSString *title = [NSString stringWithFormat:@"Opening %@", [filepath 
lastPathComponent]];
   NSString *text = @"Current document has not been saved.\nDo you really 
want to proceed?";
diff --git a/source/blender/blenkernel/intern/scene.c 
b/source/blender/blenkernel/intern/scene.c
index fdbc7883dd1..605dca003db 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -338,8 +338,7 @@ void BKE_scene_copy_data(Main *bmain, Scene *sce_dst, const 
Scene *sce_src, cons
 
   /* lanpr data */
 
-  lanpr_copy_data(sce_src,sce_dst);
-  
+  lanpr_copy_data(sce_src, sce_dst);
 }
 
 Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type)
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index fb3b34d7b35..50abf53bbd2 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -290,44 +290,46 @@ void lanpr_update_data_for_external(Depsgraph *depsgraph)
   SceneLANPR *lanpr = >lanpr;
   if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE)
 return;
-  if (!lanpr_share.render_buffer_shared || 
lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra) {
+  if (!lanpr_share.render_buffer_shared ||
+  lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra) {
 lanpr_compute_feature_lines_internal(depsgraph, lanpr, scene);
   }
 }
 
-void lanpr_copy_data(Scene* from, Scene* to){
-  SceneLANPR *lanpr= >lanpr;
-  LANPR_RenderBuffer* rb = lanpr_share.render_buffer_shared, *new_rb;
-  LANPR_LineLayer* ll,*new_ll;
-  LANPR_LineLayerComponent* llc,*new_llc;
+void lanpr_copy_data(Scene *from, Scene *to)
+{
+  SceneLANPR *lanpr = >lanpr;
+  LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared, *new_rb;
+  LANPR_LineLayer *ll, *new_ll;
+  LANPR_LineLayerComponent *llc, *new_llc;
 
   list_handle_empty(>lanpr.line_layers);
 
-  for (ll = lanpr->line_layers.first;ll;ll=ll->next){
-new_ll = MEM_callocN(sizeof(L

[Bf-blender-cvs] [915a928067a] soc-2019-npr: Merge branch 'master' into soc-2019-npr

2019-06-17 Thread YimingWu
Commit: 915a928067a89923fab144ca4a7ca2e75337a5e8
Author: YimingWu
Date:   Mon Jun 17 14:58:39 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB915a928067a89923fab144ca4a7ca2e75337a5e8

Merge branch 'master' into soc-2019-npr

===



===

diff --cc source/blender/makesrna/intern/rna_scene.c
index a126b880ea4,408282c5201..86ca1e21bb3
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@@ -7123,290 -7071,9 +7123,290 @@@ static void rna_def_scene_eevee(Blender
 "internal render buffers");
RNA_def_property_range(prop, 0.0f, 50.0f);
RNA_def_property_ui_range(prop, 0.0f, 10.0f, 1, 2);
-   RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC);
+   RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY);
  }
  
 +static void rna_def_scene_lanpr(BlenderRNA *brna)
 +{
 +  StructRNA *srna;
 +  PropertyRNA *prop;
 +
 +  static const EnumPropertyItem DEBUG_rna_enum_lanpr_reload[] = {
 +  {0, "IDLE", 0, "Idle", "Idle"},
 +  {1, "RELOAD", 0, "RELOAD", "Force reload the scene"},
 +  {0, NULL, 0, NULL, NULL}};
 +
 +  static const EnumPropertyItem rna_enum_lanpr_master_mode[] = {
 +  {LANPR_MASTER_MODE_SOFTWARE, "SOFTWARE", 0, "Software", "Software edge 
calculation"},
 +  {LANPR_MASTER_MODE_DPIX, "DPIX", 0, "DPIX", "DPIX GPU edge 
calculation"},
 +  {LANPR_MASTER_MODE_SNAKE, "SNAKE", 0, "Snake", "Image filter and GPU 
tracing method"},
 +  {0, NULL, 0, NULL, NULL}};
 +
 +  static const EnumPropertyItem rna_enum_lanpr_enable_post_processing[] = {
 +  {LANPR_POST_PROCESSING_DISABLED,
 +   "DISABLED",
 +   0,
 +   "Disabled",
 +   "LANPR does not compute anything"},
 +  {LANPR_POST_PROCESSING_ENABLED,
 +   "ENABLED",
 +   0,
 +   "Enabled",
 +   "LANPR will compute feature lines in image post processing"},
 +  {0, NULL, 0, NULL, NULL}};
 +
 +  static const EnumPropertyItem rna_enum_lanpr_display_thinning_result[] = {
 +  {LANPR_POST_PROCESSING_DISABLED,
 +   "DISABLED",
 +   0,
 +   "Edge Detection",
 +   "Display edge detector result"},
 +  {LANPR_POST_PROCESSING_ENABLED,
 +   "ENABLED",
 +   0,
 +   "Thinning",
 +   "Apply thinning filters for vector usage"},
 +  {0, NULL, 0, NULL, NULL}};
 +
 +  static const EnumPropertyItem rna_enum_lanpr_use_same_taper[] = {
 +  {LANPR_USE_DIFFERENT_TAPER, "DISABLED", 0, "Different", "Use different 
taper value"},
 +  {LANPR_USE_SAME_TAPER,
 +   "ENABLED",
 +   0,
 +   "Same",
 +   "Use same taper value for both sides of the line"},
 +  {0, NULL, 0, NULL, NULL}};
 +
 +  static const EnumPropertyItem rna_enum_lanpr_enable_tip_extend[] = {
 +  {LANPR_DISABLE_TIP_EXTEND, "DISABLED", 0, "Disable", "Do not extend 
curve tips"},
 +  {LANPR_ENABLE_TIP_EXTEND,
 +   "ENABLED",
 +   0,
 +   "Enable",
 +   "Extend curve tips to a user specified length"},
 +  {0, NULL, 0, NULL, NULL}};
 +
 +  srna = RNA_def_struct(brna, "SceneLANPR", NULL);
 +  RNA_def_struct_sdna(srna, "SceneLANPR");
 +  RNA_def_struct_ui_text(srna, "Scene LANPR Config", "LANPR global config");
 +
 +  prop = RNA_def_property(srna, "reloaded", PROP_ENUM, PROP_NONE);
 +  RNA_def_property_enum_items(prop, DEBUG_rna_enum_lanpr_reload);
 +  RNA_def_property_enum_default(prop, 0);
 +  RNA_def_property_ui_text(prop, "Reload", "Reload the scene");
 +  RNA_def_property_flag(prop, PROP_EDITABLE);
 +  RNA_def_property_update(prop, NC_SCENE, NULL);
 +
 +  prop = RNA_def_property(srna, "master_mode", PROP_ENUM, PROP_NONE);
 +  RNA_def_property_enum_items(prop, rna_enum_lanpr_master_mode);
 +  RNA_def_property_enum_default(prop, LANPR_MASTER_MODE_DPIX);
 +  RNA_def_property_ui_text(prop, "Master Mode", "Choose calculation mode for 
NPR Line");
 +  RNA_def_property_flag(prop, PROP_EDITABLE);
 +  RNA_def_property_update(prop, NC_SCENE, NULL);
 +
 +  prop = RNA_def_property(srna, "enable_vector_trace", PROP_ENUM, PROP_NONE);
 +  RNA_def_property_enum_items(prop, rna_enum_lanpr_enable_post_processing);
 +  RNA_def_property_enum_default(prop, LANPR_POST_PROCESSING_DISABLED);
 +  RNA_def_property_ui_text(
 +  prop, "Enable Post Processing", "Draw image post processing line or 
not");
 +  RNA_def_property

[Bf-blender-cvs] [fe71389950a] soc-2019-npr: LANPR: Object modifier for line selection (not functional yet)

2019-06-17 Thread YimingWu
Commit: fe71389950aa611aac12cc88bdc965363dbcdc7d
Author: YimingWu
Date:   Mon Jun 17 14:50:34 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBfe71389950aa611aac12cc88bdc965363dbcdc7d

LANPR: Object modifier for line selection (not functional yet)

===

M   release/datafiles/locale
M   release/scripts/addons
M   release/scripts/addons_contrib
M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/makesdna/DNA_modifier_types.h
M   source/blender/makesrna/RNA_access.h
M   source/blender/makesrna/intern/rna_modifier.c
M   source/blender/modifiers/CMakeLists.txt
M   source/blender/modifiers/MOD_modifiertypes.h
A   source/blender/modifiers/intern/MOD_featureline.c
M   source/blender/modifiers/intern/MOD_util.c
M   source/tools

===

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 469c949d1ca..ad82c4ce43e 16
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 469c949d1ca882be19daa128842f813b72a944d8
+Subproject commit ad82c4ce43ef2801ef51e75af1f9702992478b02
diff --git a/release/scripts/addons b/release/scripts/addons
index c88411ff777..8e6f485cf5b 16
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit c88411ff7776a2db5d6ef6117a1b2faa42a95611
+Subproject commit 8e6f485cf5b160c425d7da7c743879b20f3d6a96
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 310578043de..7077ff07384 16
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 310578043dec1aae382eb6a447ae1d103792d7e6
+Subproject commit 7077ff07384491d1f7630484995557f1c7302dae
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 687d41a4d44..3f215ab7f31 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1666,6 +1666,33 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
 col.prop(md, "thresh", text="Threshold")
 col.prop(md, "face_influence")
 
+def FEATURE_LINE(self, layout, ob, md):
+layout.label(text='Not operational yet')
+layout.label(text='Usage:')
+row = layout.row()
+row.prop(md,'usage',expand=True)
+if md.usage == 'INCLUDE':
+layout.label(text='Enable Types:')
+row = layout.row(align=True)
+row.prop(md,'enable_contour',toggle=True)
+row.prop(md,'enable_crease',toggle=True)
+row.prop(md,'enable_mark',toggle=True)
+row.prop(md,'enable_material',toggle=True)
+row.prop(md,'enable_intersection',toggle=True)
+row.prop(md,'enable_modifier_mark',toggle=True)
+layout.label(text='Result GP:')
+layout.prop(md,'target')
+layout.prop(md,'replace')
+
+row = layout.row()
+row.prop(md,'layer')
+row.prop(md,'material')
+
+row = layout.row(align=True)
+row.prop(md,'use_multiple_levels', icon='GP_MULTIFRAME_EDITING', 
icon_only=True)
+row.prop(md,'level_begin')
+if md.use_multiple_levels:
+row.prop(md,'level_end')
 
 class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel):
 bl_label = "Modifiers"
diff --git a/source/blender/makesdna/DNA_modifier_types.h 
b/source/blender/makesdna/DNA_modifier_types.h
index 54d4a6a7af4..0167e9bbafe 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -89,6 +89,7 @@ typedef enum ModifierType {
   eModifierType_SurfaceDeform = 53,
   eModifierType_WeightedNormal = 54,
   eModifierType_MyBMesh = 55,
+  eModifierType_FeatureLine = 56,
   NUM_MODIFIER_TYPES,
 } ModifierType;
 
@@ -1967,4 +1968,44 @@ enum {
   MOD_MYBMESH_OPTI = (1 << 7),
 };
 
+typedef struct FeatureLineModifierData {
+  ModifierData modifier;
+
+  int usage;
+  int types; //eFeatureLine_TypeFlag
+  
+  struct Object *target;
+  int replace;
+  int layer;
+  int material;
+
+  int use_multiple_levels;
+  int level_begin;
+  int level_end;
+
+} FeatureLineModifierData;
+
+enum eFeatureLine_Usage {
+  MOD_FEATURE_LINE_INCLUDE = 0,
+  MOD_FEATURE_LINE_OCCLUSION_ONLY = (1<<0),
+  MOD_FEATURE_LINE_EXCLUDE = (1<<1),
+};
+
+enum eFeatureLine_TypeFlag {
+  MOD_FEATURE_LINE_NONE = (1<<0),
+  MOD_FEATURE_LINE_CONTOUR = (1<<1),
+  MOD_FEATURE_LINE_CREASE = (1<<2),
+  MOD_FEATURE_LINE_MARK = (1<<3),
+  MOD_FEATURE_LINE_MATERIAL = (1<<4),
+  MOD_FEATURE_LINE_INTERSECTION = (1<<5),
+  MOD_FEATURE_LINE_MODIFIER_MARK = (1<<6)
+};

[Bf-blender-cvs] [abf50bc1db2] soc-2019-npr: Merge branch 'master' into soc-2018-npr

2019-05-18 Thread YimingWu
Commit: abf50bc1db2f2e703dd8a1a602b3fe6dd05a304c
Author: YimingWu
Date:   Sat May 18 19:41:40 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBabf50bc1db2f2e703dd8a1a602b3fe6dd05a304c

Merge branch 'master' into soc-2018-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [5b6b741ec00] soc-2019-npr: Disable rendering of the orginal scene in the script.

2019-05-18 Thread YimingWu
Commit: 5b6b741ec00ad27ea8f935b5d6f8573ad3e41c0f
Author: YimingWu
Date:   Sat May 18 21:01:29 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB5b6b741ec00ad27ea8f935b5d6f8573ad3e41c0f

Disable rendering of the orginal scene in the script.

===

M   release/scripts/startup/bl_operators/lanpr.py

===

diff --git a/release/scripts/startup/bl_operators/lanpr.py 
b/release/scripts/startup/bl_operators/lanpr.py
index 6e89542a08a..3c5b484855e 100644
--- a/release/scripts/startup/bl_operators/lanpr.py
+++ b/release/scripts/startup/bl_operators/lanpr.py
@@ -221,7 +221,8 @@ class LANPR_render_composited(bpy.types.Operator):
 
 while True :
 
-lanpr_render_backdrop_first(bpy.context.scene)
+#Seems that backdrop is now rendered ever time?
+#lanpr_render_backdrop_first(bpy.context.scene)
 
 lanpr_render_this_scene_next(bpy.context.scene)

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [a640228d922] soc-2019-npr: Added support structure for material controlled line style.

2019-05-19 Thread YimingWu
Commit: a640228d92273154acc644d525b095b5318c248b
Author: YimingWu
Date:   Sun May 19 14:37:03 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBa640228d92273154acc644d525b095b5318c248b

Added support structure for material controlled line style.

Also with a primitive UI.

===

A   bvhtree
A   mesh
M   release/scripts/startup/bl_ui/properties_material.py
M   source/blender/draw/engines/lanpr/lanpr_all.h
M   source/blender/makesdna/DNA_material_types.h
M   source/blender/makesrna/intern/rna_material.c
A   v
A   x

===

diff --git a/bvhtree b/bvhtree
new file mode 100644
index 000..e69de29bb2d
diff --git a/mesh b/mesh
new file mode 100644
index 000..e69de29bb2d
diff --git a/release/scripts/startup/bl_ui/properties_material.py 
b/release/scripts/startup/bl_ui/properties_material.py
index dde67e27f37..f741c7782c9 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -200,6 +200,27 @@ class EEVEE_MATERIAL_PT_volume(MaterialButtonsPanel, 
Panel):
 
 panel_node_draw(layout, mat.node_tree, 'OUTPUT_MATERIAL', "Volume")
 
+class EEVEE_MATERIAL_PT_lines(MaterialButtonsPanel, Panel):
+bl_label = "Lines"
+bl_context = "material"
+COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_LANPR'}
+
+def draw_header(self, context):
+layout = self.layout
+mat = context.material
+layout.prop(mat, "enable_lines", text="")
+
+def draw(self, context):
+layout = self.layout
+mat = context.material
+
+if mat.enable_lines: 
+layout.label(text="Transparency")
+layout.prop(mat,"mask_layers_count", expand=True)
+layout.label(text="Customization")
+layout.template_list("LANPR_linesets", "", mat, "line_layers", 
mat.line_layers, "active_layer_index", rows=1)
+else:
+layout.prop(mat, "exclude_line_geometry", toggle=True)
 
 class EEVEE_MATERIAL_PT_settings(MaterialButtonsPanel, Panel):
 bl_label = "Settings"
@@ -258,6 +279,7 @@ classes = (
 EEVEE_MATERIAL_PT_context_material,
 EEVEE_MATERIAL_PT_surface,
 EEVEE_MATERIAL_PT_volume,
+EEVEE_MATERIAL_PT_lines,
 EEVEE_MATERIAL_PT_settings,
 MATERIAL_PT_viewport,
 MATERIAL_PT_custom_props,
diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h 
b/source/blender/draw/engines/lanpr/lanpr_all.h
index 7ba0687add5..a1e0fe92afb 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -434,9 +434,9 @@ typedef struct LANPR_RenderElementLinkNode {
 
 typedef struct LANPR_RenderLineSegment {
nListItem Item;
-   //real Begin, End;  // 0->At[L] 1->At[R]
-   real at;
-   u8bit OcclusionLevel;//after
+   real at; // at==0: leftat==1: right
+   u8bit OcclusionLevel;// after "at" point
+   short MaterialMaskMark;  // e.g. to determine lines beind a glass 
window material.
 }LANPR_RenderLineSegment;
 
 typedef struct LANPR_RenderVert {
@@ -469,7 +469,7 @@ typedef struct LANPR_RenderLine {
struct LANPR_RenderTriangle *TL, *TR;
ListBase Segments;
//tnsEdge*   Edge;//should be edge material
-   //tnsRenderTriangle* Testing;//Should Be tRT** Testing[NumOfThreads]
+   //tnsRenderTriangle* Testing;//Should Be tRT** Testing[NumOfThreads]
struct Materil *MaterialRef;
char MinOcclude;
char Flags; // also for line type determination on chainning
struct Object *ObjectRef;
diff --git a/source/blender/makesdna/DNA_material_types.h 
b/source/blender/makesdna/DNA_material_types.h
index d65a4896758..58f641fada9 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -27,6 +27,7 @@
 #include "DNA_defs.h"
 #include "DNA_ID.h"
 #include "DNA_listBase.h"
+#include "DNA_lanpr_types.h"
 
 #ifndef MAX_MTEX
 #  define MAX_MTEX 18
@@ -136,6 +137,14 @@ typedef enum eMaterialGPencilStyle_Mode {
   GP_STYLE_MODE_BOX = 2,  /* rectangles */
 } eMaterialGPencilStyle_Mode;
 
+typedef enum eMaterialLANPRMaskLayerCount {
+  LANPR_MASK_NONE = 0,
+  LANPR_MASK_ONE  = 1,
+  LANPR_MASK_TWO  = 2,
+  LANPR_MASK_THREE = 3,
+  LANPR_MASK_FOUR =4,
+} eMaterialLANPRMaskLayerCount;
+
 typedef struct Material {
   ID id;
   /** Animation data (must be immediately after id for utilities to use it). */
@@ -176,6 +185,14 @@ typedef struct Material {
   short line_priority;
   short vcol_alpha;
 
+  /* lanpr settings */
+  charmask_layers_count;
+  charexclude

[Bf-blender-cvs] [2753611c4e2] soc-2018-npr: Merge branch 'master' into soc-2018-npr

2019-05-05 Thread YimingWu
Commit: 2753611c4e2482885021416f1b2af46250fd09dd
Author: YimingWu
Date:   Mon May 6 10:09:12 2019 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB2753611c4e2482885021416f1b2af46250fd09dd

Merge branch 'master' into soc-2018-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [6b179c7f865] soc-2019-npr: LANPR: Image chaining threshold set higher bound.

2019-07-03 Thread YimingWu
Commit: 6b179c7f86536918bb4d58104d517c50a38ac48c
Author: YimingWu
Date:   Wed Jul 3 17:06:04 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB6b179c7f86536918bb4d58104d517c50a38ac48c

LANPR: Image chaining threshold set higher bound.

===

M   source/blender/makesrna/intern/rna_scene.c

===

diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index ecca0a51fd6..c75b289e434 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -7396,8 +7396,8 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
   prop,
   "Image Threshold",
   "Segments where their image distance between them lower than this will 
be chained together");
-  RNA_def_property_ui_range(prop, 0.0f, 0.1f, 0.001, 4);
-  RNA_def_property_range(prop, 0.0f, 0.1f);
+  RNA_def_property_ui_range(prop, 0.0f, 0.3f, 0.001, 4);
+  RNA_def_property_range(prop, 0.0f, 0.3f);
 
   /* here's the collection stuff */

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [caa004c6bc3] soc-2019-npr: LANPR: GP update will now delete data in the original frame.

2019-07-03 Thread YimingWu
Commit: caa004c6bc3545bee0fcae3eef78e7f6587db2f2
Author: YimingWu
Date:   Wed Jul 3 14:33:37 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBcaa004c6bc3545bee0fcae3eef78e7f6587db2f2

LANPR: GP update will now delete data in the original frame.

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/makesdna/DNA_gpencil_types.h

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 8d2c201aaa4..bb4586e6e3a 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1708,7 +1708,8 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
 row.label(text = "Target GP has self transformations.")
 row = layout.row()
 
row.operator("lanpr.reset_object_transfromations").obj=md.target.name
-layout.prop(md,'replace', text='Replace existing frames')
+#remove this for now.
+#layout.prop(md,'replace', text='Replace existing frames')
 row = layout.row()
 row.prop(md,'layer')
 row.prop(md,'material')
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 5d03c482297..e13c3f81fbd 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4517,6 +4517,27 @@ int lanpr_auto_create_line_layer_exec(struct bContext 
*C, struct wmOperator *op)
   return OPERATOR_FINISHED;
 }
 
+void lanpr_clear_gp_lanpr_flags(Depsgraph *dg, int frame)
+{
+  DEG_OBJECT_ITER_BEGIN (dg,
+ o,
+ DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | 
DEG_ITER_OBJECT_FLAG_VISIBLE |
+ DEG_ITER_OBJECT_FLAG_DUPLI | 
DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET) {
+if (o->type == OB_GPENCIL) {
+  bGPdata *gpd = ((Object *)o->id.orig_id)->data;
+  bGPDlayer *gpl;
+  for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
+bGPDframe *gpf = BKE_gpencil_layer_find_frame(gpl, frame);
+if (!gpf) {
+  continue;
+}
+gpf->flag &= ~GP_FRAME_LANPR_CLEARED;
+  }
+}
+  }
+  DEG_OBJECT_ITER_END;
+}
+
 void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, 
int frame)
 {
   Object *ob;
@@ -4541,8 +4562,11 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
 gpl = BKE_gpencil_layer_addnew(gpd, "lanpr_layer", true);
   }
   gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW);
-  /* BKE_gpencil_free_strokes(gpf);   will be overwritten. need 
another solution */
-  /* Please manually delete those strokes before clicking Update once 
again. */
+
+  if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) {
+BKE_gpencil_free_strokes(gpf);
+gpf->flag |= GP_FRAME_LANPR_CLEARED;
+  }
 
   lanpr_generate_gpencil_from_chain(dg,
 ob,
@@ -4591,8 +4615,11 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, 
struct Collection *col, i
 gpl = BKE_gpencil_layer_addnew(gpd, "lanpr_layer", true);
   }
   gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW);
-  /* BKE_gpencil_free_strokes(gpf);   will be overwritten. need another 
solution */
-  /* Please manually delete those strokes before clicking Update once again. */
+
+  if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) {
+BKE_gpencil_free_strokes(gpf);
+gpf->flag |= GP_FRAME_LANPR_CLEARED;
+  }
 
   lanpr_generate_gpencil_from_chain(dg,
 NULL,
@@ -4613,7 +4640,8 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, 
struct wmOperator *op)
   SceneLANPR *lanpr = >lanpr;
   int frame = scene->r.cfra;
 
-  if (lanpr_share.render_buffer_shared->cached_for_frame != frame) {
+  if (!lanpr_share.render_buffer_shared ||
+  lanpr_share.render_buffer_shared->cached_for_frame != frame) {
 lanpr_compute_feature_lines_internal(dg, 0);
   }
 
@@ -4623,6 +4651,8 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, 
struct wmOperator *op)
 
   lanpr_update_gp_strokes_collection(dg, scene->master_collection, frame);
 
+  lanpr_clear_gp_lanpr_flags(dg, frame);
+
   WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED | 
ND_SPACE_PROPERTIES, NULL);
 
   return OPERATOR_FINISHED;
diff --git a/source/blender/makesdna/DNA_gpencil_types.h 
b/source/blender/makesdna/DNA_gpencil_types.h
index dbcacbcdcfe..b2a50598567 100644
--- a/source/blender/makesdna/

[Bf-blender-cvs] [1aa8870b955] soc-2019-npr: Gpencil: Length modifier now handles relative lengths

2019-07-03 Thread YimingWu
Commit: 1aa8870b95575d2da3919dff12dc002589d577ec
Author: YimingWu
Date:   Wed Jul 3 15:08:44 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB1aa8870b95575d2da3919dff12dc002589d577ec

Gpencil: Length modifier now handles relative lengths

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/blenkernel/BKE_gpencil.h
M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
M   source/blender/makesdna/DNA_gpencil_modifier_types.h
M   source/blender/makesrna/intern/rna_gpencil_modifier.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index bb4586e6e3a..81ee8a3dc37 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -2340,8 +2340,14 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, 
Panel):
 col.prop(md, "length")
 
 def GP_LENGTH(self, layout, ob, md):
-col = layout.column()
+sp = layout.split()
+col = sp.column()
+col.label(text="Absolute:")
 col.prop(md, "length")
+
+col = sp.column()
+col.label(text="Relative:")
+col.prop(md, "percentage")
 
 def GP_MULTIPLY(self, layout, ob, md):
 sp = layout.split(factor = 0.5)
diff --git a/source/blender/blenkernel/BKE_gpencil.h 
b/source/blender/blenkernel/BKE_gpencil.h
index 4f33fdae421..461e03bcd38 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -212,6 +212,7 @@ void BKE_gpencil_stroke_2d_flat_ref(const struct bGPDspoint 
*ref_points,
 float (*points2d)[2],
 const float scale,
 int *r_direction);
+float BKE_gpencil_stroke_length(const struct bGPDstroke *gps, bool use_3d);
 
 void BKE_gpencil_transform(struct bGPdata *gpd, float mat[4][4]);
 
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 889d73571dd..91aad469f67 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -2376,6 +2376,28 @@ void BKE_gpencil_stroke_2d_flat_ref(const bGPDspoint 
*ref_points,
   *r_direction = (int)locy[2];
 }
 
+float BKE_gpencil_stroke_length(const bGPDstroke *gps, bool use_3d)
+{
+  if (!gps->points || gps->totpoints < 2) {
+return 0;
+  }
+  float *last_pt = >points[0].x;
+  int i;
+  bGPDspoint *pt;
+  float total_length = 0;
+  for (i = 1; i < gps->totpoints; i++) {
+pt = >points[i];
+if (use_3d) {
+  total_length += len_v3v3(>x, last_pt);
+}
+else {
+  total_length += len_v2v2(>x, last_pt);
+}
+last_pt = >x;
+  }
+  return total_length;
+}
+
 /**
  * Trim stroke to the first intersection or loop
  * \param gps: Stroke data
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
index a3ae26efbbf..25a411908fe 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
@@ -76,7 +76,7 @@ static void copyData(const GpencilModifierData *md, 
GpencilModifierData *target)
   BKE_gpencil_modifier_copyData_generic(md, target);
 }
 
-static void deformStroke(bGPDstroke *gps, float length)
+static void stretchOrShrinkStroke(bGPDstroke *gps, float length)
 {
   if (length > 0) {
 BKE_gpencil_stretch_stroke(gps, length);
@@ -86,6 +86,20 @@ static void deformStroke(bGPDstroke *gps, float length)
   }
 }
 
+static void deformStroke(bGPDstroke *gps, float length, float percentage)
+{
+
+  stretchOrShrinkStroke(gps, length);
+
+  float len = BKE_gpencil_stroke_length(gps, 1);
+  if (len < FLT_EPSILON) {
+return;
+  }
+  float length2 = len * percentage;
+
+  stretchOrShrinkStroke(gps, length2);
+}
+
 static void bakeModifier(Main *UNUSED(bmain),
  Depsgraph *depsgraph,
  GpencilModifierData *md,
@@ -99,7 +113,7 @@ static void bakeModifier(Main *UNUSED(bmain),
   LengthGpencilModifierData *lmd = (LengthGpencilModifierData *)md;
   bGPDstroke *gps;
   for (gps = gpf->strokes.first; gps; gps = gps->next) {
-deformStroke(gps, lmd->length);
+deformStroke(gps, lmd->length, lmd->percentage);
   }
   return;
 }
@@ -115,7 +129,7 @@ static void generateStrokes(
   LengthGpencilModifierData *lmd = (LengthGpencilModifierData *)md;
   bGPDstroke *gps;
   for (gps = gpf->strokes.first; gps; gps = gps->next) {
-deformSt

[Bf-blender-cvs] [a44d39800b7] soc-2019-npr: Gpencil: Duplication modifier is working now.

2019-07-03 Thread YimingWu
Commit: a44d39800b7f8e8341c9fc8564996d29c7795af2
Author: YimingWu
Date:   Wed Jul 3 16:49:23 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBa44d39800b7f8e8341c9fc8564996d29c7795af2

Gpencil: Duplication modifier is working now.

===

M   source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c

===

diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
index d05b83875fc..b90cdf9060e 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
@@ -68,7 +68,9 @@
 
 static void initData(GpencilModifierData *md)
 {
-  MultiplyGpencilModifierData *gpmd = (MultiplyGpencilModifierData *)md;
+  MultiplyGpencilModifierData *mmd = (MultiplyGpencilModifierData *)md;
+  mmd->distance = 0.5;
+  mmd->split_angle = 1.0f;
 }
 
 static void copyData(const GpencilModifierData *md, GpencilModifierData 
*target)
@@ -99,8 +101,82 @@ static void splitStroke(bGPDframe *gpf, bGPDstroke *gps, 
float split_angle)
   }
 }
 
-static void duplicateStroke(bGPDstroke *gps, int count, float dist, float 
offsset)
+static void minter_v3_v3v3v3_ref(
+float *result, float *left, float *middle, float *right, float 
*stroke_normal)
 {
+  float left_arm[3], right_arm[3], inter1[3], inter2[3];
+  float minter[3];
+  if (left) {
+sub_v3_v3v3(left_arm, middle, left);
+cross_v3_v3v3(inter1, stroke_normal, left_arm);
+  }
+  if (right) {
+sub_v3_v3v3(right_arm, right, middle);
+cross_v3_v3v3(inter2, stroke_normal, right_arm);
+  }
+  if (!left) {
+normalize_v3(inter2);
+copy_v3_v3(result, inter2);
+return;
+  }
+
+  if (!right) {
+normalize_v3(inter1);
+copy_v3_v3(result, inter1);
+return;
+  }
+
+  interp_v3_v3v3(minter, inter1, inter2, 0.5);
+  normalize_v3(minter);
+  copy_v3_v3(result, minter);
+}
+
+static void duplicateStroke(
+bGPDframe *gpf, bGPDstroke *gps, int count, float dist, float offset, 
ListBase *results)
+{
+  int i;
+  bGPDstroke *new_gps;
+  float stroke_normal[3];
+  float minter[3];
+  float target1[3], target2[3];
+  bGPDspoint *pt;
+  float offset_factor;
+
+  BKE_gpencil_stroke_normal(gps, stroke_normal);
+  if (len_v3(stroke_normal) < FLT_EPSILON) {
+add_v3_fl(stroke_normal, 1);
+normalize_v3(stroke_normal);
+  }
+
+  for (i = 0; i < count; i++) {
+if (i != 0) {
+  new_gps = BKE_gpencil_stroke_duplicate(gps);
+  new_gps->flag |= GP_STROKE_RECALC_GEOMETRY;
+  BLI_addtail(results, new_gps);
+}
+else {
+  new_gps = gps;
+}
+
+pt = new_gps->points;
+offset_factor = (float)i / (float)count;
+
+for (int j = 0; j < new_gps->totpoints; j++) {
+  if (j == 0) {
+minter_v3_v3v3v3_ref(minter, NULL, [j].x, [j + 1].x, 
stroke_normal);
+  }
+  else if (j == new_gps->totpoints - 1) {
+minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, NULL, 
stroke_normal);
+  }
+  else {
+minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, [j + 1].x, 
stroke_normal);
+  }
+  mul_v3_fl(minter, dist);
+  add_v3_v3v3(target1, [j].x, minter);
+  sub_v3_v3v3(target2, [j].x, minter);
+  interp_v3_v3v3([j].x, target1, target2, offset_factor + offset / 2);
+}
+  }
 }
 
 static void bakeModifier(Main *UNUSED(bmain),
@@ -113,14 +189,22 @@ static void bakeModifier(Main *UNUSED(bmain),
 
   for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
 for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
+  ListBase duplicates = {0};
   MultiplyGpencilModifierData *mmd = (MultiplyGpencilModifierData *)md;
   bGPDstroke *gps;
   for (gps = gpf->strokes.first; gps; gps = gps->next) {
 if (mmd->flags & GP_MULTIPLY_ENABLE_ANGLE_SPLITTING) {
   splitStroke(gpf, gps, mmd->split_angle);
 }
+if (mmd->flags & GP_MULTIPLY_ENABLE_DUPLICATION) {
+  duplicateStroke(gpf, gps, mmd->duplications, mmd->distance, 
mmd->offset, );
+}
+  }
+  if (duplicates.first) {
+((bGPDstroke *)gpf->strokes.last)->next = duplicates.first;
+((bGPDstroke *)duplicates.first)->prev = gpf->strokes.last;
+gpf->strokes.last = duplicates.first;
   }
-  return;
 }
   }
 }
@@ -133,10 +217,19 @@ static void generateStrokes(
 {
   MultiplyGpencilModifierData *mmd = (MultiplyGpencilModifierData *)md;
   bGPDstroke *gps;
+  ListBase duplicates = {0};
   for (gps = gpf->strokes.first; gps; gps = gps->next) {
 if (mmd->flags & GP_MULTIPLY_ENABLE_ANGLE_SPLITTING) {
   splitStroke(gpf, gps, mmd->split_angle);
 }
+if (mmd->flags & GP_MULTIPLY_ENABLE_DUPLICATION) {
+  duplicateStroke(gpf, gps

[Bf-blender-cvs] [95cf3a3234b] soc-2019-npr: LANPR: Automatically update cache before drawing. (by a switch)

2019-07-03 Thread YimingWu
Commit: 95cf3a3234bb96cd25b3b048089f49763f7da210
Author: YimingWu
Date:   Wed Jul 3 14:04:15 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB95cf3a3234bb96cd25b3b048089f49763f7da210

LANPR: Automatically update cache before drawing. (by a switch)

===

M   source/blender/draw/engines/lanpr/lanpr_engine.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c 
b/source/blender/draw/engines/lanpr/lanpr_engine.c
index c349940053e..b2ea2247046 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -575,9 +575,29 @@ static void lanpr_draw_scene_exec(void *vedata, 
GPUFrameBuffer *dfb, int is_rend
   }
 }
 
+void lanpr_rebuild_all_command(SceneLANPR *lanpr);
+
 static void lanpr_draw_scene(void *vedata)
 {
   DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get();
+  const DRWContextState *draw_ctx = DRW_context_state_get();
+  int updated = 0;
+  if (draw_ctx->scene->lanpr.auto_update &&
+  (!lanpr_share.render_buffer_shared ||
+   lanpr_share.render_buffer_shared->cached_for_frame != 
draw_ctx->scene->r.cfra)) {
+if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_SOFTWARE) {
+  lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 0);
+  updated = 1;
+}
+else if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_DPIX) {
+  lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 1);
+}
+  }
+
+  if (updated) {
+lanpr_rebuild_all_command(_ctx->scene->lanpr);
+  }
+
   lanpr_draw_scene_exec(vedata, dfbl->default_fb, 0);
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [d7174b18606] soc-2019-npr: LANPR: Automatically update LANPR calculation in gp update button.

2019-07-02 Thread YimingWu
Commit: d7174b1860665ddaaac83c5f4c053c459c63b8c9
Author: YimingWu
Date:   Wed Jul 3 13:44:41 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBd7174b1860665ddaaac83c5f4c053c459c63b8c9

LANPR: Automatically update LANPR calculation in gp update button.

===

M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index c24df04e22e..b89c7e47cda 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -740,14 +740,21 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 return;
 
 if mode == "SOFTWARE" or mode == "DPIX":
-row=layout.row(align=True)
-row.prop(lanpr,'auto_update',toggle=True,text='Auto Update')
-txt = "Update" if mode == "SOFTWARE" else "Intersection Cache"
-if not lanpr.auto_update:
-row.operator("scene.lanpr_calculate", icon='FILE_REFRESH', 
text=txt)
-layout.prop(lanpr, "disable_edge_splits")
 
-if mode == "DPIX" or mode == "SOFTWARE":
+if scene.render.engine!="BLENDER_LANPR":
+row=layout.row()
+row.operator("scene.lanpr_update_gp_strokes", 
icon='RENDER_STILL', text='Update GPencil Targets')
+row=layout.row()
+row.operator("scene.lanpr_bake_gp_strokes", 
icon='RENDER_ANIMATION', text='Bake All Frames')
+else:
+row=layout.row(align=True)
+row.prop(lanpr,'auto_update',toggle=True,text='Auto Update')
+txt = "Update" if mode == "SOFTWARE" else "Intersection Cache"
+if not lanpr.auto_update:
+row.operator("scene.lanpr_calculate", icon='FILE_REFRESH', 
text=txt)
+
+
+layout.prop(lanpr, "disable_edge_splits")
 
 layout.prop(lanpr, "background_color")
 layout.prop(lanpr, "crease_threshold")
@@ -783,13 +790,6 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 else:
 layout.label(text="Vectorization:")
 layout.prop(lanpr, "enable_vector_trace", expand = True)
-
-if mode == "SOFTWARE":
-row=layout.row()
-row.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', 
text='Update GPencil Targets')
-row=layout.row()
-row.operator("scene.lanpr_bake_gp_strokes", 
icon='RENDER_ANIMATION', text='Bake All Frames')
-
 
 class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel):
 bl_label = "Layer Settings"
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index b75301bf490..5d03c482297 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4613,6 +4613,10 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, 
struct wmOperator *op)
   SceneLANPR *lanpr = >lanpr;
   int frame = scene->r.cfra;
 
+  if (lanpr_share.render_buffer_shared->cached_for_frame != frame) {
+lanpr_compute_feature_lines_internal(dg, 0);
+  }
+
   lanpr_chain_clear_picked_flag(lanpr_share.render_buffer_shared);
 
   lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [e2cc428686d] soc-2019-npr: LANPR: Fixed GPU mode bug: contour is always on.

2019-07-04 Thread YimingWu
Commit: e2cc428686df5589eecf944ee59cf8e73c99764c
Author: YimingWu
Date:   Fri Jul 5 10:44:56 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBe2cc428686df5589eecf944ee59cf8e73c99764c

LANPR: Fixed GPU mode
bug: contour is always on.

===

M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/draw/engines/lanpr/lanpr_engine.c
M   
source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index a64908c2417..fd40b549663 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -748,7 +748,7 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 return;
 
 if mode == "DPIX" and lanpr.shader_error:
-layout.label(text="DPIX transfor shader compile error!")
+layout.label(text="DPIX transform shader compile error!")
 return;
 
 if mode == "SOFTWARE" or mode == "DPIX":
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c 
b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 564915ecce1..3df81b6b362 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -292,6 +292,8 @@ static void lanpr_cache_init(void *vedata)
   "crease_fade_threshold",
   >crease_fade_threshold,
   1);
+DRW_shgroup_uniform_int(
+stl->g_data->dpix_transform_shgrp, "enable_contour", 
>enable_contour, 1);
 DRW_shgroup_uniform_int(
 stl->g_data->dpix_transform_shgrp, "enable_crease", 
>enable_crease, 1);
 DRW_shgroup_uniform_int(
diff --git 
a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl 
b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
index 9015a908f4d..78f625c4a92 100644
--- 
a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
+++ 
b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
@@ -4,6 +4,7 @@ uniform mat4 ViewMatrixInverse;
 uniform mat4 ProjectionMatrix;
 uniform mat4 ProjectionMatrixInverse;
 
+uniform int enable_contour;
 uniform int enable_crease;
 uniform int enable_material;
 uniform int enable_edge_mark;
@@ -334,7 +335,8 @@ int testProfileEdge(ivec2 texcoord, vec3 world_position)
   float dot2 = dot(normalize(vec3(face_normal_0.xyz)), 
normalize(vec3(face_normal_1.xyz)));
 
   bool contour = (dot0 >= 0.0 && dot1 <= 0.0) || (dot0 <= 0.0 && dot1 >= 0.0);
-  is_crease = ((!contour) && ((dot2 < crease_threshold) || (dot2 < 
crease_fade_threshold))) ? 1 :
+
+  is_crease = (((enable_contour>0 && !contour)||enable_contour==0) && ((dot2 < 
crease_threshold) || (dot2 < crease_fade_threshold))) ? 1 :

   0;
 
   crease_strength = (is_crease > 0 && dot2 > crease_threshold) ?
@@ -343,9 +345,9 @@ int testProfileEdge(ivec2 texcoord, vec3 world_position)
 0;
   // use 0 to 0.5 to repesent the range, because 1 will represent another 
meaning
 
-  if (contour)
+  if (enable_contour>0 && contour)
 return 1;
-  else if (((enable_crease > 0) && (is_crease > 0)) ||
+  if (((enable_crease > 0) && (is_crease > 0)) ||
((enable_material > 0) && (edge_mask.r > 0)) ||
((enable_edge_mark > 0) && (edge_mask.g > 0)) ||
((enable_intersection > 0) && (edge_mask.b > 0)) || false)

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [f7c0fce0612] soc-2019-npr: Gpencil: Fix stroke duplication offset and UI slider.

2019-07-04 Thread YimingWu
Commit: f7c0fce061266803627edd1636834a90ed6fcc3f
Author: YimingWu
Date:   Fri Jul 5 12:04:01 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBf7c0fce061266803627edd1636834a90ed6fcc3f

Gpencil: Fix stroke duplication offset and UI slider.

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
M   source/blender/makesrna/intern/rna_gpencil_modifier.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 81ee8a3dc37..782850f68af 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -2357,7 +2357,7 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, 
Panel):
 if md.enable_duplication:
 col.prop(md,"duplications")
 col.prop(md,"distance")
-col.prop(md,"offset")
+col.prop(md,"offset", slider=True)
 
 col = sp.column()
 col.prop(md, "enable_angle_splitting")
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
index 07bff517b8e..2ec84ea6505 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
@@ -148,6 +148,26 @@ static void duplicateStroke(
 normalize_v3(stroke_normal);
   }
 
+  float* t1_array = 
MEM_callocN(sizeof(float)*3*gps->totpoints,"duplicate_temp_result_array_1");
+  float* t2_array = 
MEM_callocN(sizeof(float)*3*gps->totpoints,"duplicate_temp_result_array_2");
+  
+  pt= gps->points;
+
+  for (int j = 0; j < gps->totpoints; j++) {
+if (j == 0) {
+  minter_v3_v3v3v3_ref(minter, NULL, [j].x, [j + 1].x, 
stroke_normal);
+}
+else if (j == gps->totpoints - 1) {
+  minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, NULL, 
stroke_normal);
+}
+else {
+  minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, [j + 1].x, 
stroke_normal);
+}
+mul_v3_fl(minter, dist);
+add_v3_v3v3(_array[j*3], [j].x, minter);
+sub_v3_v3v3(_array[j*3], [j].x, minter);
+  }
+
   for (i = 0; i < count; i++) {
 if (i != 0) {
   new_gps = BKE_gpencil_stroke_duplicate(gps);
@@ -159,32 +179,19 @@ static void duplicateStroke(
 }
 
 pt = new_gps->points;
-offset_factor = (float)i / (float)count;
-
-float* result_array = 
MEM_callocN(sizeof(float)*3*new_gps->totpoints,"duplicate_temp_result_array");
-
-for (int j = 0; j < new_gps->totpoints; j++) {
-  if (j == 0) {
-minter_v3_v3v3v3_ref(minter, NULL, [j].x, [j + 1].x, 
stroke_normal);
-  }
-  else if (j == new_gps->totpoints - 1) {
-minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, NULL, 
stroke_normal);
-  }
-  else {
-minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, [j + 1].x, 
stroke_normal);
-  }
-  mul_v3_fl(minter, dist);
-  add_v3_v3v3(target1, [j].x, minter);
-  sub_v3_v3v3(target2, [j].x, minter);
-  interp_v3_v3v3(_array[j*3], target1, target2, offset_factor + 
offset / 2);
+
+if(count == 1){
+  offset_factor = 0;
+}else{
+  offset_factor = offset_factor = (float)i / (float)(count-1);
 }
+
 for (int j = 0; j < new_gps->totpoints; j++) {
-  copy_v3_v3([j].x,_array[j*3]);
+  interp_v3_v3v3([j].x, _array[j*3], _array[j*3], 
interpf(1+offset,offset,offset_factor));
 }
-
-MEM_freeN(result_array);
-
   }
+  MEM_freeN(t1_array);
+  MEM_freeN(t2_array);
 }
 
 static void bakeModifier(Main *UNUSED(bmain),
diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c 
b/source/blender/makesrna/intern/rna_gpencil_modifier.c
index 13c1f96fd1d..f9284f4a992 100644
--- a/source/blender/makesrna/intern/rna_gpencil_modifier.c
+++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c
@@ -1780,7 +1780,7 @@ static void rna_def_modifier_gpencilmultiply(BlenderRNA 
*brna)
   RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
 
   prop = RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE);
-  RNA_def_property_range(prop, 0, 10);
+  RNA_def_property_ui_range(prop, -1, 1, 0.1, 3);
   RNA_def_property_ui_text(prop, "Offset", "Offset of duplications. -1 to 1: 
inner to outer");
   RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [3f7ed2261e4] soc-2019-npr: Merge branch 'master' into soc-2019-npr

2019-07-04 Thread YimingWu
Commit: 3f7ed2261e48674c6f8d9b16d97c07ab36677bd9
Author: YimingWu
Date:   Fri Jul 5 07:37:58 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB3f7ed2261e48674c6f8d9b16d97c07ab36677bd9

Merge branch 'master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [1c2a22bb185] soc-2019-npr: LANPR: Improvements of disable_edge_splits function.

2019-07-04 Thread YimingWu
Commit: 1c2a22bb1856376a111907e953cc8ab9ccb09d35
Author: YimingWu
Date:   Fri Jul 5 07:55:15 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB1c2a22bb1856376a111907e953cc8ab9ccb09d35

LANPR: Improvements of disable_edge_splits function.

===

M   source/blender/blenloader/intern/versioning_280.c
M   source/blender/draw/engines/lanpr/lanpr_access.c

===

diff --git a/source/blender/blenloader/intern/versioning_280.c 
b/source/blender/blenloader/intern/versioning_280.c
index 19e14da39cb..1188ff080f3 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -3543,6 +3543,8 @@ void blo_do_versions_280(FileData *fd, Library 
*UNUSED(lib), Main *bmain)
   sce->lanpr.enable_chaining = 1;
   sce->lanpr.chaining_image_threshold = 0.01;
   sce->lanpr.chaining_geometry_threshold = 0.1;
+
+  sce->lanpr.disable_edge_splits = 1;
 }
 for (Collection *co = bmain->collections.first; co; co = co->id.next) {
   co->lanpr.types = COLLECTION_FEATURE_LINE_ALL;
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c 
b/source/blender/draw/engines/lanpr/lanpr_access.c
index 27c9357dfcd..235fd2f153e 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -140,7 +140,7 @@ bool lanpr_dpix_shader_error()
 
 bool lanpr_disable_edge_splits(Scene *s)
 {
-  return s->lanpr.disable_edge_splits;
+  return (s->lanpr.enabled && s->lanpr.disable_edge_splits);
 }
 
 void lanpr_copy_data(Scene *from, Scene *to)

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [e6421de53b7] soc-2019-npr: LANPR: GPU mode empty layer list prompt.

2019-07-04 Thread YimingWu
Commit: e6421de53b7407fb2c0462583b952a6704176a2d
Author: YimingWu
Date:   Fri Jul 5 08:29:18 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBe6421de53b7407fb2c0462583b952a6704176a2d

LANPR: GPU mode empty layer list prompt.

===

M   release/scripts/startup/bl_ui/properties_render.py

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index 7c487a3c4de..ac9b0b24bc0 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -760,12 +760,17 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 if lanpr.master_mode == "DPIX":
 layout.label(text="Cache Size:")
 layout.prop(lanpr,"gpu_cache_size", expand=True)
+layout.prop(lanpr,"enable_intersections", text = "Intersection 
Lines")
 
 layout.prop(lanpr, "disable_edge_splits")
 
 layout.prop(lanpr, "background_color")
 layout.prop(lanpr, "crease_threshold")
 
+if lanpr.master_mode == "DPIX" and len(lanpr.layers)==0:
+layout.label(text="You don't have a layer to display.")
+layout.operator("scene.lanpr_add_line_layer");
+
 if lanpr.master_mode == "SOFTWARE":
 row = layout.row()
 row.prop(lanpr,"enable_intersections", text = "Intersection 
Lines")

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [4052d68a00e] soc-2019-npr: LANPR: Discard source object stroke update functions.

2019-07-04 Thread YimingWu
Commit: 4052d68a00eb9a5ebdb9f4b9d2be5e3f6ec94e39
Author: YimingWu
Date:   Fri Jul 5 09:57:13 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB4052d68a00eb9a5ebdb9f4b9d2be5e3f6ec94e39

LANPR: Discard source object stroke update functions.

===

M   release/scripts/startup/bl_ui/properties_object.py
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/editors/render/render_ops.c

===

diff --git a/release/scripts/startup/bl_ui/properties_object.py 
b/release/scripts/startup/bl_ui/properties_object.py
index a5663460de5..de2717c 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -413,12 +413,14 @@ class OBJECT_PT_lanpr(ObjectButtonsPanel, Panel):
 def draw(self, context):
 layout=self.layout
 lanpr = context.object.lanpr
-layout.label(text='Usage:')
-row = layout.row()
-row.prop(lanpr,'usage',expand=True)
 if context.object.type == 'MESH':
-layout.operator("object.lanpr_update_gp_source")
-elif context.object.type == 'GPENCIL':
+layout.label(text='Usage:')
+row = layout.row()
+row.prop(lanpr,'usage',expand=True)
+#if context.object.type == 'MESH':
+#layout.operator("object.lanpr_update_gp_source")
+if context.object.type == 'GPENCIL':
+layout.prop(context.scene.lanpr,"gpencil_overwrite", 
text="Overwrite Frame", toggle=True)
 layout.operator("object.lanpr_update_gp_target")
 
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 17d12fef90d..d13109c5a95 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4710,8 +4710,8 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
   CollectionObject *co;
   CollectionChild *cc;
 
-  for (co = source_only ? source_only : col->gobject.first; co; co = co->next) 
{
-ob = co->ob;
+  for (co = col->gobject.first; co||source_only; co = co->next) {
+ob = source_only ? source_only : co->ob;
 for (md = ob->modifiers.first; md; md = md->next) {
   if (md->type == eModifierType_FeatureLine) {
 FeatureLineModifierData *flmd = (FeatureLineModifierData *)md;
@@ -5055,6 +5055,7 @@ void OBJECT_OT_lanpr_update_gp_target(struct 
wmOperatorType *ot)
   ot->exec = lanpr_update_gp_target_exec;
 }
 
+/* Not working due to lack of GP flags for the object */
 void OBJECT_OT_lanpr_update_gp_source(struct wmOperatorType *ot)
 {
   ot->name = "Update Strokes";
diff --git a/source/blender/editors/render/render_ops.c 
b/source/blender/editors/render/render_ops.c
index 8bd1bead1cf..622d9795bb0 100644
--- a/source/blender/editors/render/render_ops.c
+++ b/source/blender/editors/render/render_ops.c
@@ -44,7 +44,8 @@ void ED_operatortypes_render(void)
   WM_operatortype_append(OBJECT_OT_material_slot_move);
 
   WM_operatortype_append(OBJECT_OT_lanpr_update_gp_target);
-  WM_operatortype_append(OBJECT_OT_lanpr_update_gp_source);
+  /* Not working */
+  /* WM_operatortype_append(OBJECT_OT_lanpr_update_gp_source); */
 
   WM_operatortype_append(MATERIAL_OT_new);
   WM_operatortype_append(TEXTURE_OT_new);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [de1994174ba] soc-2019-npr: LANPR: Fixed always-on contour in UI.

2019-07-04 Thread YimingWu
Commit: de1994174bab4249ca9865ae3b471cb0f449ee77
Author: YimingWu
Date:   Fri Jul 5 10:17:41 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBde1994174bab4249ca9865ae3b471cb0f449ee77

LANPR: Fixed always-on contour in UI.

===

M   release/scripts/startup/bl_ui/properties_render.py

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index 6965f7af682..a64908c2417 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -866,7 +866,7 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel):
 col.prop(active_layer, "enable_intersection", text="Intersection", 
toggle=True)
 col = split.column()
 row = col.row(align = True)
-#row.enabled = active_layer.enable_contour this is always enabled 
now
+row.enabled = active_layer.enable_contour
 row.prop(active_layer, "contour_color", text="")
 row.prop(active_layer, "thickness_contour", text="", slider=True)
 row = col.row(align = True)
@@ -882,18 +882,18 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, 
Panel):
 row.prop(active_layer, "material_color", text="")
 row.prop(active_layer, "thickness_material", text="", slider=True)
 row = col.row(align = True)
-if lanpr.enable_intersections:
-row.enabled = active_layer.enable_intersection
-row.prop(active_layer, "intersection_color", text="")
-row.prop(active_layer, "thickness_intersection", text="", 
slider=True)
-else:
-row.label(text= "Intersection Calculation Disabled")
-
-if lanpr.master_mode == "DPIX" and active_layer.enable_intersection:
-row = col.row(align = True)
-row.prop(lanpr,"enable_intersections", toggle = True, text = 
"Enable")
-if lanpr.enable_intersections:
-row.operator("scene.lanpr_calculate", text= "Recalculate")
+row.enabled = (active_layer.enable_intersection and 
lanpr.enable_intersections)
+row.prop(active_layer, "intersection_color", text="")
+row.prop(active_layer, "thickness_intersection", text="", 
slider=True)
+
+if lanpr.master_mode == "DPIX" and 
active_layer.enable_intersection:
+row = col.row(align = True)
+row.prop(lanpr,"enable_intersections", toggle = True, text = 
"Enable")
+if lanpr.enable_intersections:
+row.operator("scene.lanpr_calculate", text= "Recalculate")
+
+if not lanpr.enable_intersections:
+layout.label(text= "Intersection calculation disabled.")
 
 class RENDER_PT_lanpr_line_components(RenderButtonsPanel, Panel):
 bl_label = "Including"

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [fb96cbcf218] soc-2019-npr: LANPR: Stroke update button for GP targets and mesh source objects.

2019-07-04 Thread YimingWu
Commit: fb96cbcf218a2605335380ac752165db61b2db9c
Author: YimingWu
Date:   Fri Jul 5 09:15:00 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBfb96cbcf218a2605335380ac752165db61b2db9c

LANPR: Stroke update button for GP targets and mesh source objects.

===

M   release/scripts/startup/bl_ui/properties_object.py
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/editors/render/render_intern.h
M   source/blender/editors/render/render_ops.c

===

diff --git a/release/scripts/startup/bl_ui/properties_object.py 
b/release/scripts/startup/bl_ui/properties_object.py
index a854f498f9c..a5663460de5 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -416,6 +416,11 @@ class OBJECT_PT_lanpr(ObjectButtonsPanel, Panel):
 layout.label(text='Usage:')
 row = layout.row()
 row.prop(lanpr,'usage',expand=True)
+if context.object.type == 'MESH':
+layout.operator("object.lanpr_update_gp_source")
+elif context.object.type == 'GPENCIL':
+layout.operator("object.lanpr_update_gp_target")
+
 
 class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel, Panel):
 COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH', 
'BLENDER_LANPR'}
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index a91a01c07fd..17d12fef90d 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4699,7 +4699,7 @@ void lanpr_clear_gp_lanpr_flags(Depsgraph *dg, int frame)
   DEG_OBJECT_ITER_END;
 }
 
-void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, 
int frame)
+void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, 
int frame, Object* source_only, Object* target_only)
 {
   Object *ob;
   Object *gpobj;
@@ -4710,13 +4710,18 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
   CollectionObject *co;
   CollectionChild *cc;
 
-  for (co = col->gobject.first; co; co = co->next) {
+  for (co = source_only ? source_only : col->gobject.first; co; co = co->next) 
{
 ob = co->ob;
 for (md = ob->modifiers.first; md; md = md->next) {
   if (md->type == eModifierType_FeatureLine) {
 FeatureLineModifierData *flmd = (FeatureLineModifierData *)md;
 if (flmd->target && flmd->target->type == OB_GPENCIL) {
   gpobj = flmd->target;
+
+  if(target_only && target_only!=gpobj){
+continue;
+  }
+
   gpd = gpobj->data;
   gpl = BKE_gpencil_layer_get_index(gpd, flmd->layer, 1);
   if (!gpl) {
@@ -4749,12 +4754,15 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
 }
   }
 }
+if(source_only){
+  return;
+}
   }
   for (cc = col->children.first; cc; cc = cc->next) {
-lanpr_update_gp_strokes_recursive(dg, cc->collection, frame);
+lanpr_update_gp_strokes_recursive(dg, cc->collection, frame, source_only, 
target_only);
   }
 }
-void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, 
int frame)
+void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, 
int frame, int this_only, Object* target_only)
 {
   Object *ob;
   Object *gpobj;
@@ -4766,8 +4774,10 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, 
struct Collection *col, i
   CollectionChild *cc;
 
   /* depth first */
-  for (cc = col->children.first; cc; cc = cc->next) {
-lanpr_update_gp_strokes_collection(dg, cc->collection, frame);
+  if(!this_only){
+for (cc = col->children.first; cc; cc = cc->next) {
+  lanpr_update_gp_strokes_collection(dg, cc->collection, frame, this_only, 
target_only);
+}
   }
 
   if (col->lanpr.usage != COLLECTION_LANPR_INCLUDE || !col->lanpr.target) {
@@ -4775,6 +4785,11 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, 
struct Collection *col, i
   }
 
   gpobj = col->lanpr.target;
+
+  if(target_only && target_only!=gpobj){
+return;
+  }
+
   gpd = gpobj->data;
   gpl = BKE_gpencil_layer_get_index(gpd, col->lanpr.layer, 1);
   if (!gpl) {
@@ -4817,9 +4832,9 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, 
struct wmOperator *op)
 
   lanpr_chain_clear_picked_flag(lanpr_share.render_buffer_shared);
 
-  lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame);
+  lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame, NULL, 
NULL);
 
-  lanpr_update_gp_strokes_collection(dg, scene->master_collection, frame);
+  lanpr_update_gp_

[Bf-blender-cvs] [bcb12f6a6c1] soc-2019-npr: Gpencil: Fixed distance interpolation in multiply modifier.

2019-07-04 Thread YimingWu
Commit: bcb12f6a6c1ba8cc23f76aff17619b8b4721991a
Author: YimingWu
Date:   Fri Jul 5 11:27:16 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBbcb12f6a6c1ba8cc23f76aff17619b8b4721991a

Gpencil: Fixed distance interpolation in  multiply modifier.

===

M   source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c

===

diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
index b90cdf9060e..07bff517b8e 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
@@ -161,6 +161,8 @@ static void duplicateStroke(
 pt = new_gps->points;
 offset_factor = (float)i / (float)count;
 
+float* result_array = 
MEM_callocN(sizeof(float)*3*new_gps->totpoints,"duplicate_temp_result_array");
+
 for (int j = 0; j < new_gps->totpoints; j++) {
   if (j == 0) {
 minter_v3_v3v3v3_ref(minter, NULL, [j].x, [j + 1].x, 
stroke_normal);
@@ -174,8 +176,14 @@ static void duplicateStroke(
   mul_v3_fl(minter, dist);
   add_v3_v3v3(target1, [j].x, minter);
   sub_v3_v3v3(target2, [j].x, minter);
-  interp_v3_v3v3([j].x, target1, target2, offset_factor + offset / 2);
+  interp_v3_v3v3(_array[j*3], target1, target2, offset_factor + 
offset / 2);
+}
+for (int j = 0; j < new_gps->totpoints; j++) {
+  copy_v3_v3([j].x,_array[j*3]);
 }
+
+MEM_freeN(result_array);
+
   }
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [4ff47d66b38] soc-2019-npr: LANPR: GP target updater overwrite option.

2019-07-04 Thread YimingWu
Commit: 4ff47d66b38c0b7306ec8f8939d7052ba8e103f3
Author: YimingWu
Date:   Fri Jul 5 08:21:10 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB4ff47d66b38c0b7306ec8f8939d7052ba8e103f3

LANPR: GP target updater overwrite option.

===

M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   source/blender/makesdna/DNA_scene_types.h
M   source/blender/makesrna/intern/rna_scene.c

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index baa64787845..7c487a3c4de 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -742,8 +742,12 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 if mode == "SOFTWARE" or mode == "DPIX":
 
 if scene.render.engine!="BLENDER_LANPR":
-row=layout.row()
-row.operator("scene.lanpr_update_gp_strokes", 
icon='RENDER_STILL', text='Update GPencil Targets')
+row=layout.row(align=True)
+row.prop(lanpr,"auto_update",toggle=True,text='Auto Update')
+
row.prop(lanpr,"gpencil_overwrite",toggle=True,text='Overwrite')
+if not lanpr.auto_update:
+row=layout.row()
+row.operator("scene.lanpr_update_gp_strokes", 
icon='RENDER_STILL', text='Update GPencil Targets')
 row=layout.row()
 row.operator("scene.lanpr_bake_gp_strokes", 
icon='RENDER_ANIMATION', text='Bake All Frames')
 else:
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index ad27ea33bac..a91a01c07fd 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4724,6 +4724,11 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
   }
   gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW);
 
+  if (gpf->strokes.first &&
+  
!lanpr_share.render_buffer_shared->scene->lanpr.gpencil_overwrite) {
+continue;
+  }
+
   if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) {
 BKE_gpencil_free_strokes(gpf);
 gpf->flag |= GP_FRAME_LANPR_CLEARED;
@@ -4777,6 +4782,10 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, 
struct Collection *col, i
   }
   gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW);
 
+  if (gpf->strokes.first && 
!lanpr_share.render_buffer_shared->scene->lanpr.gpencil_overwrite) {
+return;
+  }
+
   if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) {
 BKE_gpencil_free_strokes(gpf);
 gpf->flag |= GP_FRAME_LANPR_CLEARED;
diff --git a/source/blender/makesdna/DNA_scene_types.h 
b/source/blender/makesdna/DNA_scene_types.h
index 8f959e1e090..f8f2031d7ae 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1696,7 +1696,8 @@ typedef struct SceneLANPR {
   float chaining_geometry_threshold;
   float chaining_image_threshold;
 
-  char _pad2[4];
+  /* Overwrite existing strokes in this frame. */
+  int gpencil_overwrite;
 
 } SceneLANPR;
 
diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index fd1a2025f66..c1905b25038 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -7211,6 +7211,12 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
   RNA_def_property_ui_text(
   prop, "Auto Update", "Automatically update LANPR cache when scene 
changes");
 
+  prop = RNA_def_property(srna, "gpencil_overwrite", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_boolean_default(prop, 0);
+  RNA_def_property_ui_text(prop,
+   "GPencil Overwrite",
+   "Overwrite existing strokes in the current frame of 
target GP objects");
+
   prop = RNA_def_property(srna, "reloaded", PROP_ENUM, PROP_NONE);
   RNA_def_property_enum_items(prop, DEBUG_rna_enum_lanpr_reload);
   RNA_def_property_enum_default(prop, 0);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [80939ade23a] soc-2019-npr: LANPR: Improved line layer display in the list.

2019-07-04 Thread YimingWu
Commit: 80939ade23af2ac49dff902ec78becc64a4d3e28
Author: YimingWu
Date:   Fri Jul 5 10:11:27 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB80939ade23af2ac49dff902ec78becc64a4d3e28

LANPR: Improved line layer display in the list.

===

M   release/scripts/startup/bl_ui/properties_render.py

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index ac9b0b24bc0..6965f7af682 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -693,16 +693,28 @@ class LANPR_UL_linesets(UIList):
 def draw_item(self, context, layout, data, item, icon, active_data, 
active_propname, index):
 lineset = item
 if self.layout_type in {'DEFAULT', 'COMPACT'}:
-split = layout.split(factor=0.4)
+split = layout.split(factor=0.25)
 t=''
 if not lineset.use_multiple_levels:
-t='Level %d'%lineset.qi_begin
+t='%d'%lineset.qi_begin
 else:
-t='Level %d - %d'%(lineset.qi_begin,lineset.qi_end)
+t='%d - %d'%(lineset.qi_begin,lineset.qi_end)
 split.label(text=t)
 row = split.row(align=True)
-row.prop(lineset, "color", text="", icon_value=icon)
-row.prop(lineset, "thickness", text="", icon_value=icon)
+s2 = row.split(factor=0.5,align=True)
+if lineset.use_same_style:
+row.prop(lineset, "contour_color", text="")
+row.prop(lineset, "thickness", text="", icon_value=icon)
+else:
+r = s2.row(align=True)
+r.prop(lineset, "contour_color", text="")
+r.prop(lineset, "crease_color", text="")
+r.prop(lineset, "edge_mark_color", text="")
+r.prop(lineset, "material_color", text="")
+r.prop(lineset, "intersection_color", text="")
+r = s2.row(align=True)
+r.prop(lineset, "thickness", text="", icon_value=icon)
+
 elif self.layout_type == 'GRID':
 layout.alignment = 'CENTER'
 layout.label("", icon_value=icon)

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [10098812d3c] soc-2019-npr: LANPR: Intersection cache now updates before lanpr_cache_finish().

2019-07-04 Thread YimingWu
Commit: 10098812d3c266ae9b01d1a60e641ee7e3b95344
Author: YimingWu
Date:   Thu Jul 4 22:12:07 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB10098812d3c266ae9b01d1a60e641ee7e3b95344

LANPR: Intersection cache now updates before lanpr_cache_finish().

===

M   source/blender/draw/engines/lanpr/lanpr_engine.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c 
b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 99732b804be..564915ecce1 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -185,6 +185,8 @@ static void lanpr_engine_free(void)
 void lanpr_calculate_normal_object_vector(LANPR_LineLayer *ll, float 
*normal_object_direction);
 int lanpr_dpix_texture_size(SceneLANPR *lanpr);
 
+void lanpr_rebuild_all_command(SceneLANPR *lanpr);
+
 static void lanpr_cache_init(void *vedata)
 {
 
@@ -417,6 +419,24 @@ static void lanpr_cache_init(void *vedata)
   else if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE) {
 ;
   }
+
+  /* Intersection cache must be calculated before drawing. */
+  int updated = 0;
+  if (draw_ctx->scene->lanpr.auto_update &&
+  (!lanpr_share.render_buffer_shared ||
+   lanpr_share.render_buffer_shared->cached_for_frame != 
draw_ctx->scene->r.cfra)) {
+if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_SOFTWARE) {
+  lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 0);
+  updated = 1;
+}
+else if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_DPIX) {
+  lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 1);
+}
+  }
+
+  if (updated) {
+lanpr_rebuild_all_command(_ctx->scene->lanpr);
+  }
 }
 
 static void lanpr_cache_populate(void *vedata, Object *ob)
@@ -579,28 +599,9 @@ static void lanpr_draw_scene_exec(void *vedata, 
GPUFrameBuffer *dfb, int is_rend
   }
 }
 
-void lanpr_rebuild_all_command(SceneLANPR *lanpr);
-
 static void lanpr_draw_scene(void *vedata)
 {
   DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get();
-  const DRWContextState *draw_ctx = DRW_context_state_get();
-  int updated = 0;
-  if (draw_ctx->scene->lanpr.auto_update &&
-  (!lanpr_share.render_buffer_shared ||
-   lanpr_share.render_buffer_shared->cached_for_frame != 
draw_ctx->scene->r.cfra)) {
-if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_SOFTWARE) {
-  lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 0);
-  updated = 1;
-}
-else if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_DPIX) {
-  lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 1);
-}
-  }
-
-  if (updated) {
-lanpr_rebuild_all_command(_ctx->scene->lanpr);
-  }
 
   lanpr_draw_scene_exec(vedata, dfbl->default_fb, 0);
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [7aed5dcad91] soc-2019-npr: Merge remote-tracking branch 'origin/master' into soc-2019-npr

2019-07-04 Thread YimingWu
Commit: 7aed5dcad91a369ed65ee9f3801f5e9845b5a769
Author: YimingWu
Date:   Thu Jul 4 22:35:59 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB7aed5dcad91a369ed65ee9f3801f5e9845b5a769

Merge remote-tracking branch 'origin/master' into soc-2019-npr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [38b68fa8fa4] soc-2019-npr: LANPR: Enable Freestyle mark functions when LANPR is enabled.

2019-07-05 Thread YimingWu
Commit: 38b68fa8fa42b8c26c7afdcbb29eda806f4a2208
Author: YimingWu
Date:   Fri Jul 5 15:05:34 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB38b68fa8fa42b8c26c7afdcbb29eda806f4a2208

LANPR: Enable Freestyle mark functions when LANPR is enabled.

===

M   release/scripts/startup/bl_ui/space_view3d.py

===

diff --git a/release/scripts/startup/bl_ui/space_view3d.py 
b/release/scripts/startup/bl_ui/space_view3d.py
index d8b62e58d18..09b0f6cd215 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3479,7 +3479,7 @@ class VIEW3D_MT_edit_mesh_context_menu(Menu):
 col.operator("mesh.mark_sharp")
 col.operator("mesh.mark_sharp", text="Clear Sharp").clear = True
 
-if render.use_freestyle:
+if render.use_freestyle or context.scene.lanpr.enabled:
 col.separator()
 
 col.operator("mesh.mark_freestyle_edge").clear = False

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [61ccd2fa38a] soc-2019-npr: Gpencil: Duplicator stroke fading data structures.

2019-07-04 Thread YimingWu
Commit: 61ccd2fa38a6387a99bfa92b9f2236308cb2fa9e
Author: YimingWu
Date:   Fri Jul 5 13:37:28 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB61ccd2fa38a6387a99bfa92b9f2236308cb2fa9e

Gpencil: Duplicator stroke fading data structures.

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/makesdna/DNA_gpencil_modifier_types.h
M   source/blender/makesrna/intern/rna_gpencil_modifier.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 782850f68af..f257a89453c 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -2358,12 +2358,20 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, 
Panel):
 col.prop(md,"duplications")
 col.prop(md,"distance")
 col.prop(md,"offset", slider=True)
+
+col.prop(md,"enable_fading")
+if md.enable_fading:
+col.prop(md, "fading_center")
+c = col.column(align = True)
+c.prop(md, "fading_thickness", slider=True)
+c.prop(md, "fading_opacity", slider=True)
 
 col = sp.column()
 col.prop(md, "enable_angle_splitting")
 if md.enable_angle_splitting:
 col.prop(md,"split_angle")
 
+
 
 
 
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h 
b/source/blender/makesdna/DNA_gpencil_modifier_types.h
index b190d557d46..9cc9412160b 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_types.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h
@@ -624,14 +624,19 @@ typedef struct MultiplyGpencilModifierData {
   float distance;
   float offset; /* -1:inner 0:middle 1:outer */
 
+  float fading_center;
+  float fading_thickness;
+  float fading_opacity;
+
   float split_angle; /* in rad not deg */
 
-  char _pad[4];
+  /* char _pad[4]; */
 } MultiplyGpencilModifierData;
 
 typedef enum eMultiplyGpencil_Flag {
   GP_MULTIPLY_ENABLE_DUPLICATION = (1 << 0),
   GP_MULTIPLY_ENABLE_ANGLE_SPLITTING = (1 << 1),
+  GP_MULTIPLY_ENABLE_FADING = (1<<2),
 } eMultiplyGpencil_Flag;
 
 #endif /* __DNA_GPENCIL_MODIFIER_TYPES_H__ */
diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c 
b/source/blender/makesrna/intern/rna_gpencil_modifier.c
index f9284f4a992..888e22cdea4 100644
--- a/source/blender/makesrna/intern/rna_gpencil_modifier.c
+++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c
@@ -1764,6 +1764,11 @@ static void rna_def_modifier_gpencilmultiply(BlenderRNA 
*brna)
   RNA_def_property_ui_text(prop, "Angle Splitting", "Enable angle splitting");
   RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
 
+  prop = RNA_def_property(srna, "enable_fading", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_boolean_sdna(prop, NULL, "flags", 
GP_MULTIPLY_ENABLE_FADING);
+  RNA_def_property_ui_text(prop, "Enable Fading", "Enable fading");
+  RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
+
   prop = RNA_def_property(srna, "split_angle", PROP_FLOAT, PROP_NONE);
   RNA_def_property_range(prop, 0, M_PI);
   RNA_def_property_ui_text(prop, "Angle", "Split angle for segments");
@@ -1783,6 +1788,23 @@ static void rna_def_modifier_gpencilmultiply(BlenderRNA 
*brna)
   RNA_def_property_ui_range(prop, -1, 1, 0.1, 3);
   RNA_def_property_ui_text(prop, "Offset", "Offset of duplications. -1 to 1: 
inner to outer");
   RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
+
+  prop = RNA_def_property(srna, "fading_thickness", PROP_FLOAT, PROP_NONE);
+  RNA_def_property_range(prop, 0, 1);
+  RNA_def_property_float_default(prop, 0.5);
+  RNA_def_property_ui_text(prop, "Thickness", "Fade influence of stroke's 
thickness");
+  RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
+
+  prop = RNA_def_property(srna, "fading_opacity", PROP_FLOAT, PROP_NONE);
+  RNA_def_property_range(prop, 0, 1);
+  RNA_def_property_float_default(prop, 0.5);
+  RNA_def_property_ui_text(prop, "Opacity", "Fade influence of stroke's 
opacity");
+  RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
+
+  prop = RNA_def_property(srna, "fading_center", PROP_FLOAT, PROP_NONE);
+  RNA_def_property_range(prop, 0, 1);
+  RNA_def_property_ui_text(prop, "Center", "Fade center");
+  RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
 }
 
 void RNA_def_greasepencil_modifier(BlenderRNA *brna)

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [b28eb5e339b] soc-2019-npr: Gpencil: Fading in duplicate modifier.

2019-07-05 Thread YimingWu
Commit: b28eb5e339b6c080e7acc5aee7a6f968c1306abe
Author: YimingWu
Date:   Fri Jul 5 14:33:22 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBb28eb5e339b6c080e7acc5aee7a6f968c1306abe

Gpencil: Fading in duplicate modifier.

===

M   source/blender/draw/engines/lanpr/lanpr_ops.c
M   
source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
M   source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
M   source/blender/makesdna/DNA_gpencil_modifier_types.h

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index d13109c5a95..8c24a86a611 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4699,7 +4699,8 @@ void lanpr_clear_gp_lanpr_flags(Depsgraph *dg, int frame)
   DEG_OBJECT_ITER_END;
 }
 
-void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, 
int frame, Object* source_only, Object* target_only)
+void lanpr_update_gp_strokes_recursive(
+Depsgraph *dg, struct Collection *col, int frame, Object *source_only, 
Object *target_only)
 {
   Object *ob;
   Object *gpobj;
@@ -4710,7 +4711,7 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
   CollectionObject *co;
   CollectionChild *cc;
 
-  for (co = col->gobject.first; co||source_only; co = co->next) {
+  for (co = col->gobject.first; co || source_only; co = co->next) {
 ob = source_only ? source_only : co->ob;
 for (md = ob->modifiers.first; md; md = md->next) {
   if (md->type == eModifierType_FeatureLine) {
@@ -4718,7 +4719,7 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
 if (flmd->target && flmd->target->type == OB_GPENCIL) {
   gpobj = flmd->target;
 
-  if(target_only && target_only!=gpobj){
+  if (target_only && target_only != gpobj) {
 continue;
   }
 
@@ -4754,7 +4755,7 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
 }
   }
 }
-if(source_only){
+if (source_only) {
   return;
 }
   }
@@ -4762,7 +4763,8 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, 
struct Collection *col, in
 lanpr_update_gp_strokes_recursive(dg, cc->collection, frame, source_only, 
target_only);
   }
 }
-void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, 
int frame, int this_only, Object* target_only)
+void lanpr_update_gp_strokes_collection(
+Depsgraph *dg, struct Collection *col, int frame, int this_only, Object 
*target_only)
 {
   Object *ob;
   Object *gpobj;
@@ -4774,7 +4776,7 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, 
struct Collection *col, i
   CollectionChild *cc;
 
   /* depth first */
-  if(!this_only){
+  if (!this_only) {
 for (cc = col->children.first; cc; cc = cc->next) {
   lanpr_update_gp_strokes_collection(dg, cc->collection, frame, this_only, 
target_only);
 }
@@ -4786,7 +4788,7 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, 
struct Collection *col, i
 
   gpobj = col->lanpr.target;
 
-  if(target_only && target_only!=gpobj){
+  if (target_only && target_only != gpobj) {
 return;
   }
 
@@ -4873,7 +4875,7 @@ int lanpr_update_gp_target_exec(struct bContext *C, 
struct wmOperator *op)
   Scene *scene = CTX_data_scene(C);
   Depsgraph *dg = CTX_data_depsgraph(C);
   SceneLANPR *lanpr = >lanpr;
-  Object* gpo = CTX_data_active_object(C);
+  Object *gpo = CTX_data_active_object(C);
 
   int frame = scene->r.cfra;
 
@@ -4899,7 +4901,7 @@ int lanpr_update_gp_source_exec(struct bContext *C, 
struct wmOperator *op)
   Scene *scene = CTX_data_scene(C);
   Depsgraph *dg = CTX_data_depsgraph(C);
   SceneLANPR *lanpr = >lanpr;
-  Object* source_obj = CTX_data_active_object(C);
+  Object *source_obj = CTX_data_active_object(C);
 
   int frame = scene->r.cfra;
 
@@ -4921,19 +4923,22 @@ int lanpr_update_gp_source_exec(struct bContext *C, 
struct wmOperator *op)
   return OPERATOR_FINISHED;
 }
 
-static bool lanpr_active_is_gpencil_object(bContext *C){
-  Object* o = CTX_data_active_object(C);
+static bool lanpr_active_is_gpencil_object(bContext *C)
+{
+  Object *o = CTX_data_active_object(C);
   return o->type == OB_GPENCIL;
 }
 
-static bool lanpr_active_is_source_object(bContext *C){
-  Object* o = CTX_data_active_object(C);
-  if(o->type!=OB_MESH){
+static bool lanpr_active_is_source_object(bContext *C)
+{
+  Object *o = CTX_data_active_object(C);
+  if (o->type != OB_MESH) {
 return false;
-  }else{
-ModifierData* md;
-for(md = o->modifiers.first;md;md=md->next){
-  if(md->type == eModifierType_Featur

[Bf-blender-cvs] [e9bac3a23a7] soc-2019-npr: LANPR: Modified default values for better initial experience.

2019-07-05 Thread YimingWu
Commit: e9bac3a23a7d4eea0b8f91e3e9f24018602b737f
Author: YimingWu
Date:   Fri Jul 5 15:16:58 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBe9bac3a23a7d4eea0b8f91e3e9f24018602b737f

LANPR: Modified default values for better initial experience.

===

M   source/blender/blenloader/intern/versioning_280.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/blenloader/intern/versioning_280.c 
b/source/blender/blenloader/intern/versioning_280.c
index 1188ff080f3..177da8ee5df 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -3529,20 +3529,20 @@ void blo_do_versions_280(FileData *fd, Library 
*UNUSED(lib), Main *bmain)
 
   sce->lanpr.enable_intersections = 1;
 
-  sce->lanpr.background_color[0] = 0;
-  sce->lanpr.background_color[1] = 0;
-  sce->lanpr.background_color[2] = 0;
+  sce->lanpr.background_color[0] = 0.75;
+  sce->lanpr.background_color[1] = 0.75;
+  sce->lanpr.background_color[2] = 0.75;
   sce->lanpr.background_color[3] = 1;
 
-  sce->lanpr.line_color[0] = 1;
-  sce->lanpr.line_color[1] = 1;
-  sce->lanpr.line_color[2] = 1;
-  sce->lanpr.line_color[3] = 1;
+  sce->lanpr.line_color[0] = 0;
+  sce->lanpr.line_color[1] = 0;
+  sce->lanpr.line_color[2] = 0;
+  sce->lanpr.line_color[3] = 0;
 
   sce->lanpr.enable_intersections = 1;
   sce->lanpr.enable_chaining = 1;
-  sce->lanpr.chaining_image_threshold = 0.01;
-  sce->lanpr.chaining_geometry_threshold = 0.1;
+  sce->lanpr.chaining_image_threshold = 0.01f;
+  sce->lanpr.chaining_geometry_threshold = 0.0f;
 
   sce->lanpr.disable_edge_splits = 1;
 }
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 8c24a86a611..da56830c4e7 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4456,9 +4456,9 @@ LANPR_LineLayer *lanpr_new_line_layer(SceneLANPR *lanpr)
   ll->qi_begin = ll->qi_end = max_occ + 1;
   ll->use_same_style = 1;
   ll->thickness = 1.0f;
-  ll->color[0] = 1.0f;
-  ll->color[1] = 1.0f;
-  ll->color[2] = 1.0f;
+  ll->color[0] = 0.0f;
+  ll->color[1] = 0.0f;
+  ll->color[2] = 0.0f;
   ll->color[3] = 1.0f;
   ll->enable_contour = 1;
   ll->enable_crease = 1;
@@ -4647,9 +4647,9 @@ int lanpr_auto_create_line_layer_exec(struct bContext *C, 
struct wmOperator *op)
 
   ll = lanpr_new_line_layer(lanpr);
   ll->thickness = 1.7;
-  ll->color[0] = 1;
-  ll->color[1] = 1;
-  ll->color[2] = 1;
+  ll->color[0] = 0;
+  ll->color[1] = 0;
+  ll->color[2] = 0;
 
   lanpr_enable_all_line_types_exec(C, op);
 
@@ -4657,8 +4657,8 @@ int lanpr_auto_create_line_layer_exec(struct bContext *C, 
struct wmOperator *op)
   ll->thickness = 0.9;
   ll->qi_begin = 1;
   ll->qi_end = 1;
-  ll->color[0] = 0.314;
-  ll->color[1] = 0.596;
+  ll->color[0] = 0.1;
+  ll->color[1] = 0.1;
   ll->color[2] = 1;
 
   lanpr_enable_all_line_types_exec(C, op);
@@ -4667,9 +4667,9 @@ int lanpr_auto_create_line_layer_exec(struct bContext *C, 
struct wmOperator *op)
   ll->thickness = 0.7;
   ll->qi_begin = 2;
   ll->qi_end = 2;
-  ll->color[0] = 0.135;
-  ll->color[1] = 0.304;
-  ll->color[2] = 0.508;
+  ll->color[0] = 0.2;
+  ll->color[1] = 0.2;
+  ll->color[2] = 0.2;
 
   lanpr_enable_all_line_types_exec(C, op);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [693cecab701] soc-2019-npr: LANPR: Disable header checkbox when in LANPR engine.

2019-07-05 Thread YimingWu
Commit: 693cecab701e3f65b78d8eda6e69f01c218f53e2
Author: YimingWu
Date:   Fri Jul 5 15:57:20 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB693cecab701e3f65b78d8eda6e69f01c218f53e2

LANPR: Disable header checkbox when in LANPR engine.

===

M   release/scripts/startup/bl_ui/properties_render.py
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index fd40b549663..68d4a0b5173 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -729,7 +729,8 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
 return True
 
 def draw_header(self, context):
-self.layout.prop(context.scene.lanpr, "enabled", text="")
+if context.scene.render.engine != 'BLENDER_LANPR':
+self.layout.prop(context.scene.lanpr, "enabled", text="")
 
 def draw(self, context):
 scene = context.scene
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index da56830c4e7..1a53f1a1b85 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4320,8 +4320,9 @@ int lanpr_compute_feature_lines_internal(Depsgraph 
*depsgraph, int intersectons_
   LANPR_RenderBuffer *rb;
   Scene *s = DEG_get_evaluated_scene(depsgraph);
   SceneLANPR *lanpr = >lanpr;
+  int is_lanpr_engine = !strcmp(s->r.engine, RE_engine_id_BLENDER_LANPR);
 
-  if (!lanpr->enabled) {
+  if (!is_lanpr_engine && !lanpr->enabled) {
 return OPERATOR_CANCELLED;
   }
 
@@ -4358,8 +4359,7 @@ int lanpr_compute_feature_lines_internal(Depsgraph 
*depsgraph, int intersectons_
   }
 
   /* When not using LANPR engine, chaining is forced in order to generate data 
for GPencil. */
-  if ((lanpr->enable_chaining || strcmp(s->r.engine, 
RE_engine_id_BLENDER_LANPR)) &&
-  (!intersectons_only)) {
+  if ((lanpr->enable_chaining || !is_lanpr_engine) && (!intersectons_only)) {
 lanpr_NO_THREAD_chain_feature_lines(rb); /*  should use user_adjustable 
value */
 lanpr_split_chains_for_fixed_occlusion(rb);
 lanpr_connect_chains(rb, 1);
@@ -4389,8 +4389,9 @@ static int lanpr_compute_feature_lines_exec(struct 
bContext *C, struct wmOperato
   Scene *scene = CTX_data_scene(C);
   SceneLANPR *lanpr = >lanpr;
   int result;
+  int is_lanpr_engine = !strcmp(scene->r.engine, RE_engine_id_BLENDER_LANPR);
 
-  if (!lanpr->enabled) {
+  if (!is_lanpr_engine && !lanpr->enabled) {
 return OPERATOR_CANCELLED;
   }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [ee1e72a316c] soc-2019-npr: Gpencil: make format

2019-07-05 Thread YimingWu
Commit: ee1e72a316c48b3db8bf0631ad20686ccc4604e6
Author: YimingWu
Date:   Fri Jul 5 14:52:04 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBee1e72a316c48b3db8bf0631ad20686ccc4604e6

Gpencil: make format

===

M   source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c

===

diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c 
b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
index dd9e0001447..1190a89ea2f 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
@@ -181,7 +181,7 @@ static void duplicateStroke(bGPDframe *gpf,
   }
 
   /* This ensures the original stroke is the last one to be processed. */
-  for (i = count - 1; i>=0; i--) {
+  for (i = count - 1; i >= 0; i--) {
 if (i != 0) {
   new_gps = BKE_gpencil_stroke_duplicate(gps);
   new_gps->flag |= GP_STROKE_RECALC_GEOMETRY;
@@ -203,9 +203,10 @@ static void duplicateStroke(bGPDframe *gpf,
 if (fading) {
   thickness_factor = (offset_factor > fading_center) ?
  (interpf(1 - fading_thickness, 1.0f, 
offset_factor - fading_center)) :
- (interpf(1.0f, 1 - fading_thickness, 
offset_factor - fading_center + 1));
+ (interpf(
+ 1.0f, 1 - fading_thickness, offset_factor - 
fading_center + 1));
   opacity_factor = (offset_factor > fading_center) ?
-   (interpf(1 - fading_opacity, 1.0f, offset_factor - 
fading_center)):
+   (interpf(1 - fading_opacity, 1.0f, offset_factor - 
fading_center)) :
(interpf(1.0f, 1 - fading_opacity, offset_factor - 
fading_center + 1));
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [8697062438e] soc-2019-npr: LANPR: Fix MSVC errors.

2019-07-05 Thread YimingWu
Commit: 8697062438e0bac175d094d9142926d93da59923
Author: YimingWu
Date:   Fri Jul 5 20:49:49 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB8697062438e0bac175d094d9142926d93da59923

LANPR: Fix MSVC errors.

===

M   source/blender/draw/engines/lanpr/lanpr_chain.c
M   source/blender/draw/engines/lanpr/lanpr_ops.c

===

diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c 
b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 868958a1719..b78baf75616 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -441,9 +441,7 @@ LANPR_BoundingArea 
*lanpr_get_rlci_bounding_area_recursive(LANPR_RenderBuffer *r
   else {
 LANPR_BoundingArea *ch = root->child;
 #define IN_BOUND(ba, rlci) \
-  \ 
-ba.l <= rlci->pos[0] && \
-  ba.r >= rlci->pos[0] && ba.b <= rlci->pos[1] && ba.u >= rlci->pos[1]
+  ba.l <= rlci->pos[0] && ba.r >= rlci->pos[0] && ba.b <= rlci->pos[1] && ba.u 
>= rlci->pos[1]
 
 if (IN_BOUND(ch[0], rlci)) {
   return lanpr_get_rlci_bounding_area_recursive(rb, [0], rlci);
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 1a53f1a1b85..e6ed645f142 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -450,16 +450,20 @@ void 
lanpr_link_line_with_bounding_area(LANPR_RenderBuffer *rb,
 list_append_pointer_static_pool(>render_data_pool, 
>linked_lines, rl);
   }
   else {
-if (lanpr_line_crosses_bounding_area(rb, rl->l, rl->r, 
>child[0])) {
+if (lanpr_line_crosses_bounding_area(
+rb, rl->l->fbcoord, rl->r->fbcoord, >child[0])) {
   lanpr_link_line_with_bounding_area(rb, >child[0], rl);
 }
-else if (lanpr_line_crosses_bounding_area(rb, rl->l, rl->r, 
>child[1])) {
+else if (lanpr_line_crosses_bounding_area(
+ rb, rl->l->fbcoord, rl->r->fbcoord, 
>child[1])) {
   lanpr_link_line_with_bounding_area(rb, >child[1], rl);
 }
-else if (lanpr_line_crosses_bounding_area(rb, rl->l, rl->r, 
>child[2])) {
+else if (lanpr_line_crosses_bounding_area(
+ rb, rl->l->fbcoord, rl->r->fbcoord, 
>child[2])) {
   lanpr_link_line_with_bounding_area(rb, >child[2], rl);
 }
-else if (lanpr_line_crosses_bounding_area(rb, rl->l, rl->r, 
>child[3])) {
+else if (lanpr_line_crosses_bounding_area(
+ rb, rl->l->fbcoord, rl->r->fbcoord, 
>child[3])) {
   lanpr_link_line_with_bounding_area(rb, >child[3], rl);
 }
   }
@@ -591,10 +595,7 @@ static LANPR_BoundingArea 
*lanpr_get_point_bounding_area_recursive(LANPR_Boundin
   else {
 LANPR_BoundingArea *ch = ba->child;
 #define IN_BOUND(i, x, y) \
-  \ 
-ba->child[i] \
-  .l <= x && \
-  ba->child[i].r >= x && ba->child[i].b <= y && ba->child[i].u >= y
+  ba->child[i].l <= x && ba->child[i].r >= x && ba->child[i].b <= y && 
ba->child[i].u >= y
 
 if (IN_BOUND(0, x, y)) {
   return lanpr_get_point_bounding_area_recursive(>child[0], x, y);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


  1   2   3   4   5   6   7   8   9   10   >