[Bf-blender-cvs] [a2ed635a73] surface-deform-modifier: Fix typo and change `.enabled` to `.active`

2017-02-17 Thread Luca Rood
Commit: a2ed635a73330d66eaf9edb308a00576e7b10bcb
Author: Luca Rood
Date:   Sat Feb 18 04:10:53 2017 -0200
Branches: surface-deform-modifier
https://developer.blender.org/rBa2ed635a73330d66eaf9edb308a00576e7b10bcb

Fix typo and change `.enabled` to `.active`

===

M   release/scripts/startup/bl_ui/properties_data_modifier.py
M   source/blender/modifiers/intern/MOD_surfacedeform.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py 
b/release/scripts/startup/bl_ui/properties_data_modifier.py
index daa5ff2d39..e8601dc908 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -949,7 +949,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
 
 def SURFACE_DEFORM(self, layout, ob, md):
 col = layout.column()
-col.enabled = not md.is_bound
+col.active = not md.is_bound
 
 col.prop(md, "target")
 col.prop(md, "falloff")
diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c 
b/source/blender/modifiers/intern/MOD_surfacedeform.c
index 03ae6aab4c..5e852e8451 100644
--- a/source/blender/modifiers/intern/MOD_surfacedeform.c
+++ b/source/blender/modifiers/intern/MOD_surfacedeform.c
@@ -1006,11 +1006,11 @@ static bool surfacedeformBind(SurfaceDeformModifierData 
*smd, float (*vertexCos)
freeData((ModifierData *)smd);
}
else if (data.success == MOD_SDEF_BIND_RESULT_CONCAVE_ERR) {
-   modifier_setError((ModifierData *)smd, "Target containts 
concave polys");
+   modifier_setError((ModifierData *)smd, "Target contains concave 
polys");
freeData((ModifierData *)smd);
}
else if (data.success == MOD_SDEF_BIND_RESULT_OVERLAP_ERR) {
-   modifier_setError((ModifierData *)smd, "Target containts 
overlapping verts");
+   modifier_setError((ModifierData *)smd, "Target contains 
overlapping verts");
freeData((ModifierData *)smd);
}
else if (data.success == MOD_SDEF_BIND_RESULT_GENERIC_ERR) {

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


[Bf-blender-cvs] [ab6993811f] blender2.8: Fixup for last commit :/

2017-02-17 Thread Dalai Felinto
Commit: ab6993811f42f93f84113477c6e9866acd19dcc1
Author: Dalai Felinto
Date:   Fri Feb 17 22:29:53 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBab6993811f42f93f84113477c6e9866acd19dcc1

Fixup for last commit :/

===

M   source/blender/blenkernel/BKE_layer.h

===

diff --git a/source/blender/blenkernel/BKE_layer.h 
b/source/blender/blenkernel/BKE_layer.h
index 9e8865d754..641cc969e7 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -215,7 +215,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
/* flush all the data to objects*/  
  \
Base *base_;
  \
for (base_ = (sl_)->object_bases.first; base_; base_ = base_->next) {   
  \
-   if ((base->flag & BASE_VISIBLED) == 0) {  \
+   if ((base_->flag & BASE_VISIBLED) == 0) { \
continue;   
  \
} \

  \

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


[Bf-blender-cvs] [b30044d4af] blender2.8: Fix crash introduced in engine separation (50fb3ea3)

2017-02-17 Thread Dalai Felinto
Commit: b30044d4af84f0ddc606eeb4d2860e2cffcf7834
Author: Dalai Felinto
Date:   Fri Feb 17 22:24:08 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBb30044d4af84f0ddc606eeb4d2860e2cffcf7834

Fix crash introduced in engine separation (50fb3ea3)

Basically DEG_OBJECT_ITER (or rather,
BKE_scene_layer_engine_settings_update) wasn't creating
Object->collection_settings data for invisible objects.

Now I'm removing those objects from the loop entirely. If we are to
bring them back we need to either create CollectionEngineSettings dat
from them or to skip them in DRW_mode_cache_populate.

===

M   source/blender/blenkernel/BKE_layer.h
M   source/blender/draw/engines/clay/clay.c

===

diff --git a/source/blender/blenkernel/BKE_layer.h 
b/source/blender/blenkernel/BKE_layer.h
index c2752ec1d7..9e8865d754 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -215,6 +215,10 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
/* flush all the data to objects*/  
  \
Base *base_;
  \
for (base_ = (sl_)->object_bases.first; base_; base_ = base_->next) {   
  \
+   if ((base->flag & BASE_VISIBLED) == 0) {  \
+   continue;   
  \
+   } \
+   
  \
instance_ = base_->object;  
  \
instance_->base_flag = base_->flag;
 
diff --git a/source/blender/draw/engines/clay/clay.c 
b/source/blender/draw/engines/clay/clay.c
index f121eb8600..314e0c08f6 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -639,9 +639,6 @@ static void CLAY_cache_populate(Object *ob)
bool do_cull = false;
CollectionEngineSettings *ces_mode_ed, *ces_mode_ob;
 
-   if ((ob->base_flag & BASE_VISIBLED) == 0)
-   return;
-
switch (mode) {
case CTX_MODE_EDIT_MESH:
case CTX_MODE_EDIT_CURVE:

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


[Bf-blender-cvs] [39e212eb05] blender2.8: OpenGL: further mask_draw tweaks

2017-02-17 Thread Mike Erwin
Commit: 39e212eb05bd2d0a9aeae7820c66834fbb2a393c
Author: Mike Erwin
Date:   Fri Feb 17 15:41:47 2017 -0500
Branches: blender2.8
https://developer.blender.org/rB39e212eb05bd2d0a9aeae7820c66834fbb2a393c

OpenGL: further mask_draw tweaks

- smooth round points
- fewer state changes
- minor cleanup & warning fix

This is a follow-up to rB84141f27a668

===

M   source/blender/editors/mask/mask_draw.c

===

diff --git a/source/blender/editors/mask/mask_draw.c 
b/source/blender/editors/mask/mask_draw.c
index f2106773be..b20862e763 100644
--- a/source/blender/editors/mask/mask_draw.c
+++ b/source/blender/editors/mask/mask_draw.c
@@ -49,9 +49,11 @@
 #include "ED_clip.h"
 #include "ED_mask.h"  /* own include */
 #include "ED_space_api.h"
+
 #include "BIF_glutil.h"
 
 #include "GPU_immediate.h"
+#include "GPU_draw.h"
 
 #include "UI_resources.h"
 #include "UI_view2d.h"
@@ -100,21 +102,9 @@ static void mask_point_undistort_pos(SpaceClip *sc, float 
r_co[2], const float c
BKE_mask_coord_from_movieclip(sc->clip, >user, r_co, r_co);
 }
 
-static void draw_circle(const float x, const float y,
-const float size, const bool fill,
-const float scale, const unsigned pos)
-{
-   if (fill) {
-   imm_draw_filled_circle(pos, x, y, 0.7f / scale * size, 8);
-   }
-   else {
-   imm_draw_lined_circle(pos, x, y, 0.7f / scale * size, 8);
-   }
-}
-
 static void draw_single_handle(const MaskLayer *mask_layer, const 
MaskSplinePoint *point,
const eMaskWhichHandle which_handle, const int 
draw_type,
-   const float handle_size, const float scale,
+   const float handle_size,
const float point_pos[2], const float 
handle_pos[2])
 {
const BezTriple *bezt = >bezt;
@@ -132,7 +122,7 @@ static void draw_single_handle(const MaskLayer *mask_layer, 
const MaskSplinePoin
}
 
VertexFormat *format = immVertexFormat();
-   unsigned pos = add_attrib(format, "pos", GL_FLOAT, 2, KEEP_FLOAT);
+   unsigned pos = add_attrib(format, "pos", COMP_F32, 2, KEEP_FLOAT);
const unsigned char rgb_gray[4] = {0x60, 0x60, 0x60, 0xff};
 
immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
@@ -141,7 +131,7 @@ static void draw_single_handle(const MaskLayer *mask_layer, 
const MaskSplinePoin
/* this could be split into its own loop */
if (draw_type == MASK_DT_OUTLINE) {
glLineWidth(3.0f);
-   immBegin(GL_LINES, 2);
+   immBegin(PRIM_LINES, 2);
immVertex2fv(pos, point_pos);
immVertex2fv(pos, handle_pos);
immEnd();
@@ -161,30 +151,40 @@ static void draw_single_handle(const MaskLayer 
*mask_layer, const MaskSplinePoin
}
 
glLineWidth(1.0f);
-   immBegin(GL_LINES, 2);
+   immBegin(PRIM_LINES, 2);
immVertex2fv(pos, point_pos);
immVertex2fv(pos, handle_pos);
immEnd();
+   immUnbindProgram();
 
/* draw handle points */
+   
immBindBuiltinProgram(GPU_SHADER_2D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_OUTLINE_SMOOTH);
+   immUniform1f("size", handle_size);
+   immUniform1f("outlineWidth", 1.5f);
+
+   float point_color[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; /* active color by 
default */
if (MASKPOINT_ISSEL_HANDLE(point, which_handle)) {
-   if (point == mask_layer->act_point)
-   immUniformColor3f(1.0f, 1.0f, 1.0f);
-   else
-   immUniformThemeColor(TH_HANDLE_VERTEX_SELECT);
+   if (point != mask_layer->act_point) {
+   UI_GetThemeColor3fv(TH_HANDLE_VERTEX_SELECT, 
point_color);
+   }
}
else {
-   immUniformThemeColor(TH_HANDLE_VERTEX);
+   UI_GetThemeColor3fv(TH_HANDLE_VERTEX, point_color);
}
 
-   draw_circle(handle_pos[0], handle_pos[1], handle_size, false, scale, 
pos);
+   immUniform4fv("outlineColor", point_color);
+   immUniformColor3fvAlpha(point_color, 0.25f);
+
+   immBegin(PRIM_POINTS, 1);
+   immVertex2fv(pos, handle_pos);
+   immEnd();
+
immUnbindProgram();
 }
 
 /* return non-zero if spline is selected */
 static void draw_spline_points(const bContext *C, MaskLayer *masklay, 
MaskSpline *spline,
-   const char draw_flag, const char draw_type,
-   const float scale)
+   const char draw_flag, const char draw_type)
 {
const bool is_spline_sel = (spline->flag & SELECT) && 
(masklay->restrictflag & MASK_RESTRICT_SELECT) == 0;
const bool is_smooth = (draw_flag & MASK_DRAWFLAG_SMOOTH) != 0;
@@ -205,16 +205,15 @@ static void 

[Bf-blender-cvs] [a54e461b84] blender2.8: Fix building without Clay engine.

2017-02-17 Thread Bastien Montagne
Commit: a54e461b843552caa843a7975eb3d7a7a671d6ac
Author: Bastien Montagne
Date:   Fri Feb 17 20:06:31 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBa54e461b843552caa843a7975eb3d7a7a671d6ac

Fix building without Clay engine.

===

M   source/blender/draw/intern/draw_manager.c

===

diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index 283be353e8..a834284b19 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1036,6 +1036,11 @@ void DRW_draw_mode_overlays(void)
DRW_draw_manipulator();
DRW_draw_region_info();
 }
+#else
+void DRW_draw_pass(DRWPass *UNUSED(pass))
+{
+}
+
 #endif
 
 /* *** Mode Engine Cache 
** */
@@ -1343,4 +1348,4 @@ void DRW_engines_free(void)
 
BLI_remlink(_engines, _clay_type);
 #endif
-}
\ No newline at end of file
+}

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


[Bf-blender-cvs] [b41c5c81c6] blender2.8: Fix bplayer (c)

2017-02-17 Thread Bastien Montagne
Commit: b41c5c81c68ab21c0f0ead2e2b4d6cf8ab994649
Author: Bastien Montagne
Date:   Fri Feb 17 20:07:13 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBb41c5c81c68ab21c0f0ead2e2b4d6cf8ab994649

Fix bplayer (c)

===

M   source/blenderplayer/bad_level_call_stubs/stubs.c

===

diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c 
b/source/blenderplayer/bad_level_call_stubs/stubs.c
index 0acc66ad9b..54a7e909ab 100644
--- a/source/blenderplayer/bad_level_call_stubs/stubs.c
+++ b/source/blenderplayer/bad_level_call_stubs/stubs.c
@@ -684,6 +684,9 @@ float RE_fresnel_dielectric(float incoming[3], float 
normal[3], float eta) RET_Z
 /* Draw */
 void *DRW_render_settings_get(struct Scene *scene, const char *engine_name) 
RET_NULL
 
+void OBJECT_collection_settings_create(struct CollectionEngineSettings *ces) 
RET_NONE
+void EDIT_collection_settings_create(struct CollectionEngineSettings *ces) 
RET_NONE
+
 /* python */
 struct wmOperatorType *WM_operatortype_find(const char *idname, bool quiet) 
RET_NULL
 void WM_operatortype_iter(struct GHashIterator *ghi) RET_NONE

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


[Bf-blender-cvs] [322b1d3187] blender2.8: Merge branch 'master' into blender2.8

2017-02-17 Thread Bastien Montagne
Commit: 322b1d3187fc5b3e82ebf8b13a675e3132059ef4
Author: Bastien Montagne
Date:   Fri Feb 17 20:03:55 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB322b1d3187fc5b3e82ebf8b13a675e3132059ef4

Merge branch 'master' into blender2.8

Conflicts:
source/blender/editors/animation/anim_draw.c

===



===

diff --cc source/blender/editors/animation/anim_draw.c
index 2b83065792,98900812bb..1d71ba8dc3
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@@ -121,7 -114,11 +123,8 @@@ void ANIM_draw_cfra(const bContext *C, 
  {
Scene *scene = CTX_data_scene(C);
  
-   const float x = (float)(scene->r.cfra * scene->r.framelen);
 -  /* Draw a light green line to indicate current frame */
 -  UI_ThemeColor(TH_CFRAME);
 -
+   const float time = scene->r.cfra + scene->r.subframe;
+   const float x = (float)(time * scene->r.framelen);
  
glLineWidth((flag & DRAWCFRA_WIDE) ? 3.0 : 2.0);

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


[Bf-blender-cvs] [cb36dbe606] blender2.8: bug in DEG_OBJECT_ITER

2017-02-17 Thread Dalai Felinto
Commit: cb36dbe606d9e5bef32a756a60b1d77a92dccfa8
Author: Dalai Felinto
Date:   Fri Feb 17 19:37:11 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBcb36dbe606d9e5bef32a756a60b1d77a92dccfa8

bug in DEG_OBJECT_ITER

===

M   source/blender/blenkernel/BKE_layer.h

===

diff --git a/source/blender/blenkernel/BKE_layer.h 
b/source/blender/blenkernel/BKE_layer.h
index 54a047d680..c2752ec1d7 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -210,7 +210,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
 { \
Object *instance_;  
  \
/* temporary solution, waiting for depsgraph update */  
  \
-   BKE_scene_layer_engine_settings_update(sl); 
  \
+   BKE_scene_layer_engine_settings_update(sl_);
  \

  \
/* flush all the data to objects*/  
  \
Base *base_;
  \

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


[Bf-blender-cvs] [6f1493f68f] master: Fix T50614: Curve doesn't restore initial form after deleting all its shapekeys

2017-02-17 Thread Bastien Montagne
Commit: 6f1493f68fe01a8e951cf6c4e50103e20b85d513
Author: Bastien Montagne
Date:   Fri Feb 17 18:55:52 2017 +0100
Branches: master
https://developer.blender.org/rB6f1493f68fe01a8e951cf6c4e50103e20b85d513

Fix T50614: Curve doesn't restore initial form after deleting all its shapekeys

Logic of handling shapekeys when entering and leaving edit mode for
curves was... utterly broken.

Was leaving actual curve data with edited shapekey applied to it.

===

M   source/blender/editors/curve/editcurve.c

===

diff --git a/source/blender/editors/curve/editcurve.c 
b/source/blender/editors/curve/editcurve.c
index e9fd5fb5a4..b09186b970 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -1195,6 +1195,11 @@ void ED_curve_editnurb_load(Object *obedit)
 
remap_hooks_and_vertex_parents(obedit);
 
+   /* We have to apply shapekeys *before* copying nurbs into 
newnurb, otherwise the reset to
+* refkey/original curve data that has to be done when editing 
non-refkey shapekey would be useless,
+* only affecting editnurb and not ob->data. */
+   calc_shapeKeys(obedit);
+
for (nu = editnurb->first; nu; nu = nu->next) {
newnu = BKE_nurb_duplicate(nu);
BLI_addtail(, newnu);
@@ -1206,7 +1211,6 @@ void ED_curve_editnurb_load(Object *obedit)
 
cu->nurb = newnurb;
 
-   calc_shapeKeys(obedit);
ED_curve_updateAnimPaths(obedit->data);
 
BKE_nurbList_free();
@@ -1227,7 +1231,6 @@ void ED_curve_editnurb_make(Object *obedit)
if (actkey) {
// XXX strcpy(G.editModeTitleExtra, "(Key) ");
undo_editmode_clear();
-   BKE_keyblock_convert_to_curve(actkey, cu, >nurb);
}
 
if (editnurb) {
@@ -1248,12 +1251,16 @@ void ED_curve_editnurb_make(Object *obedit)
nu = nu->next;
}
 
-   if (actkey)
-   editnurb->shapenr = obedit->shapenr;
-
/* animation could be added in editmode even if there was no 
animdata in
 * object mode hence we always need CVs index be created */
init_editNurb_keyIndex(editnurb, >nurb);
+
+   if (actkey) {
+   editnurb->shapenr = obedit->shapenr;
+   /* Apply shapekey to new nurbs of editnurb, not those 
of original curve (and *after* we generated keyIndex),
+* else we do not have valid 'original' data to 
properly restore curve when leaving editmode. */
+   BKE_keyblock_convert_to_curve(actkey, cu, 
>nurbs);
+   }
}
 }

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


[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [61810] trunk/lib/tests/layers: Update layer unittest after rB65a75e11

2017-02-17 Thread Dalai Felinto
Revision: 61810
  https://developer.blender.org/rBL61810
Author:   dfelinto
Date: 2017-02-17 18:28:48 +0100 (Fri, 17 Feb 2017)
Log Message:
---
Update layer unittest after rB65a75e11

Modified Paths:
--
trunk/lib/tests/layers/layers.json
trunk/lib/tests/layers/layers_copy_full.json
trunk/lib/tests/layers/layers_copy_link.json
trunk/lib/tests/layers/layers_layer_collection_link.json
trunk/lib/tests/layers/layers_layer_collection_unlink.json
trunk/lib/tests/layers/layers_nested.json
trunk/lib/tests/layers/layers_new_layer.json
trunk/lib/tests/layers/layers_object_add_cylinder.json
trunk/lib/tests/layers/layers_object_add_empty.json
trunk/lib/tests/layers/layers_object_add_torus.json
trunk/lib/tests/layers/layers_object_copy_duplicate.json
trunk/lib/tests/layers/layers_object_delete.json

Modified: trunk/lib/tests/layers/layers.json
===
--- trunk/lib/tests/layers/layers.json  2017-02-16 15:28:37 UTC (rev 61809)
+++ trunk/lib/tests/layers/layers.json  2017-02-17 17:28:48 UTC (rev 61810)
@@ -274,7 +274,7 @@
 "T.5a"
 ]
 },
-"Render Layer": {
+"Viewport": {
 "active_object": "",
 "collections": {
 "Master Collection": {
@@ -343,7 +343,7 @@
 }
 },
 "engine": "",
-"name": "Render Layer",
+"name": "Viewport",
 "objects": [
 "T.1a",
 "T.2a",

Modified: trunk/lib/tests/layers/layers_copy_full.json
===
--- trunk/lib/tests/layers/layers_copy_full.json2017-02-16 15:28:37 UTC 
(rev 61809)
+++ trunk/lib/tests/layers/layers_copy_full.json2017-02-17 17:28:48 UTC 
(rev 61810)
@@ -274,7 +274,7 @@
 "T.5a.001"
 ]
 },
-"Render Layer": {
+"Viewport": {
 "active_object": "",
 "collections": {
 "Master Collection": {
@@ -343,7 +343,7 @@
 }
 },
 "engine": "",
-"name": "Render Layer",
+"name": "Viewport",
 "objects": [
 "T.1a.001",
 "T.2a.001",

Modified: trunk/lib/tests/layers/layers_copy_link.json
===
--- trunk/lib/tests/layers/layers_copy_link.json2017-02-16 15:28:37 UTC 
(rev 61809)
+++ trunk/lib/tests/layers/layers_copy_link.json2017-02-17 17:28:48 UTC 
(rev 61810)
@@ -274,7 +274,7 @@
 "T.5a"
 ]
 },
-"Render Layer": {
+"Viewport": {
 "active_object": "",
 "collections": {
 "Master Collection": {
@@ -343,7 +343,7 @@
 }
 },
 "engine": "",
-"name": "Render Layer",
+"name": "Viewport",
 "objects": [
 "T.1a",
 "T.2a",

Modified: trunk/lib/tests/layers/layers_layer_collection_link.json
===
--- trunk/lib/tests/layers/layers_layer_collection_link.json2017-02-16 
15:28:37 UTC (rev 61809)
+++ trunk/lib/tests/layers/layers_layer_collection_link.json2017-02-17 
17:28:48 UTC (rev 61810)
@@ -487,7 +487,7 @@
 "T.5a"
 ]
 },
-"Render Layer": {
+"Viewport": {
 "active_object": "",
 "collections": {
 "Master Collection": {
@@ -578,7 +578,7 @@
 }
 },
 "engine": "",
-"name": "Render Layer",
+"name": "Viewport",
 "objects": [
 "T.1a",
 "T.2a",

Modified: trunk/lib/tests/layers/layers_layer_collection_unlink.json
===
--- trunk/lib/tests/layers/layers_layer_collection_unlink.json  2017-02-16 
15:28:37 UTC (rev 61809)
+++ trunk/lib/tests/layers/layers_layer_collection_unlink.json  2017-02-17 
17:28:48 UTC (rev 61810)
@@ -394,7 +394,7 @@
 "T.3c"
 ]
 },
-"Render Layer": {
+"Viewport": {
 "active_object": "",
 "collections": {
 "Master Collection": {
@@ -485,7 +485,7 @@
 }
 },
 "engine": "",
-"name": "Render Layer",
+"name": "Viewport",
 "objects": [
 "T.1a",
 "T.2a",

Modified: trunk/lib/tests/layers/layers_nested.json
===
--- trunk/lib/tests/layers/layers_nested.json   2017-02-16 15:28:37 UTC (rev 
61809)
+++ trunk/lib/tests/layers/layers_nested.json   2017-02-17 17:28:48 UTC (rev 
61810)
@@ -358,7 +358,7 @@
 "T.5a"
 ]
 },
-"Render Layer": {
+"Viewport": {
 "active_object": "",
 "collections": {
 "Master Collection": {
@@ -448,7 +448,7 @@
 }
 },
 "engine": "",
-"name": "Render Layer",
+

[Bf-blender-cvs] [7868c0aa8b] blender2.8: Layers: Fix unittest after 65a75e11

2017-02-17 Thread Dalai Felinto
Commit: 7868c0aa8b8c19c51d7bd7bb5fce9755c2011fcd
Author: Dalai Felinto
Date:   Fri Feb 17 18:20:41 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB7868c0aa8b8c19c51d7bd7bb5fce9755c2011fcd

Layers: Fix unittest after 65a75e11

===

M   tests/python/render_layer/test_operator_context.py

===

diff --git a/tests/python/render_layer/test_operator_context.py 
b/tests/python/render_layer/test_operator_context.py
index 82fd4be3c7..3c51327fbe 100644
--- a/tests/python/render_layer/test_operator_context.py
+++ b/tests/python/render_layer/test_operator_context.py
@@ -92,10 +92,10 @@ class UnitTesting(RenderLayerTesting):
 
 scene = bpy.context.scene
 scene.render_layers.active_index = len(scene.render_layers) - 2
-self.assertEqual(scene.render_layers.active.name, "Render Layer")
+self.assertEqual(scene.render_layers.active.name, "Viewport")
 
 # old layer
-self.assertEqual(bpy.ops.testing.sample(render_layer='Render Layer', 
use_verbose=True), {'FINISHED'})
+self.assertEqual(bpy.ops.testing.sample(render_layer='Viewport', 
use_verbose=True), {'FINISHED'})
 
 # expected to fail
 self.assertTrue(bpy.ops.testing.sample(render_layer=layer.name), 
{'CANCELLED'})

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


[Bf-blender-cvs] [65a75e112c] blender2.8: Layer: change default name of doversion layer (Viewport now)

2017-02-17 Thread Dalai Felinto
Commit: 65a75e112c5c6e82af384a153c0ba07fc25b46ad
Author: Dalai Felinto
Date:   Fri Feb 17 15:30:54 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB65a75e112c5c6e82af384a153c0ba07fc25b46ad

Layer: change default name of doversion layer (Viewport now)

===

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 4eb9741c3c..9d575c8f6d 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -121,7 +121,7 @@ void do_versions_after_linking_280(Main *main)
}
}
 
-   SceneLayer *sl = BKE_scene_layer_add(scene, 
"Render Layer");
+   SceneLayer *sl = BKE_scene_layer_add(scene, 
"Viewport");
 
/* In this particular case we can safely assume 
the data struct */
LayerCollection *lc = ((LayerCollection 
*)sl->layer_collections.first)->layer_collections.first;

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


[Bf-blender-cvs] [df56721931] blender2.8: Layer/Outliner: add a few operators that I need for the video demo

2017-02-17 Thread Dalai Felinto
Commit: df5672193198b24d577144ac9838c26dd793526c
Author: Dalai Felinto
Date:   Fri Feb 17 15:31:16 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBdf5672193198b24d577144ac9838c26dd793526c

Layer/Outliner: add a few operators that I need for the video demo

===

M   source/blender/editors/space_outliner/outliner_intern.h
M   source/blender/editors/space_outliner/outliner_ops.c
M   source/blender/editors/space_outliner/outliner_tools.c

===

diff --git a/source/blender/editors/space_outliner/outliner_intern.h 
b/source/blender/editors/space_outliner/outliner_intern.h
index f521b8f441..4685744c57 100644
--- a/source/blender/editors/space_outliner/outliner_intern.h
+++ b/source/blender/editors/space_outliner/outliner_intern.h
@@ -268,6 +268,7 @@ void OUTLINER_OT_animdata_operation(struct wmOperatorType 
*ot);
 void OUTLINER_OT_action_set(struct wmOperatorType *ot);
 void OUTLINER_OT_constraint_operation(struct wmOperatorType *ot);
 void OUTLINER_OT_modifier_operation(struct wmOperatorType *ot);
+void OUTLINER_OT_collection_operation(struct wmOperatorType *ot);
 /*  */
 
 /* outliner_ops.c */
diff --git a/source/blender/editors/space_outliner/outliner_ops.c 
b/source/blender/editors/space_outliner/outliner_ops.c
index bdbad00a67..68a6ea85b1 100644
--- a/source/blender/editors/space_outliner/outliner_ops.c
+++ b/source/blender/editors/space_outliner/outliner_ops.c
@@ -62,6 +62,7 @@ void outliner_operatortypes(void)
WM_operatortype_append(OUTLINER_OT_action_set);
WM_operatortype_append(OUTLINER_OT_constraint_operation);
WM_operatortype_append(OUTLINER_OT_modifier_operation);
+   WM_operatortype_append(OUTLINER_OT_collection_operation);
 
WM_operatortype_append(OUTLINER_OT_show_one_level);
WM_operatortype_append(OUTLINER_OT_show_active);
diff --git a/source/blender/editors/space_outliner/outliner_tools.c 
b/source/blender/editors/space_outliner/outliner_tools.c
index 550dc63dd3..10d29436c7 100644
--- a/source/blender/editors/space_outliner/outliner_tools.c
+++ b/source/blender/editors/space_outliner/outliner_tools.c
@@ -648,6 +648,14 @@ typedef enum eOutliner_PropModifierOps {
OL_MODIFIER_OP_DELETE
 } eOutliner_PropModifierOps;
 
+typedef enum eOutliner_PropCollectionOps {
+   OL_COLLECTION_OP_OBJECTS_ADD = 1,
+   OL_COLLECTION_OP_OBJECTS_REMOVE,
+   OL_COLLECTION_OP_COLLECTION_NEW,
+   OL_COLLECTION_OP_COLLECTION_DEL,
+   OL_COLLECTION_OP_COLLECTION_UNLINK,
+} eOutliner_PropCollectionOps;
+
 static void pchan_cb(int event, TreeElement *te, TreeStoreElem 
*UNUSED(tselem), void *UNUSED(arg))
 {
bPoseChannel *pchan = (bPoseChannel *)te->directdata;
@@ -798,6 +806,61 @@ static void modifier_cb(int event, TreeElement *te, 
TreeStoreElem *UNUSED(tselem
}
 }
 
+static void collection_cb(int event, TreeElement *te, TreeStoreElem 
*UNUSED(tselem), void *Carg)
+{
+   bContext *C = (bContext *)Carg;
+   Scene *scene= CTX_data_scene(C);
+   LayerCollection *lc = te->directdata;
+   SceneCollection *sc = lc->scene_collection;
+
+   if (event == OL_COLLECTION_OP_OBJECTS_ADD) {
+   CTX_DATA_BEGIN (C, Object *, ob, selected_objects)
+   {
+   BKE_collection_object_add(scene, sc, ob);
+   }
+   CTX_DATA_END;
+
+   WM_event_add_notifier(C, NC_SCENE | ND_LAYER, scene);
+   }
+   else if (event == OL_COLLECTION_OP_OBJECTS_REMOVE) {
+   Main *bmain = CTX_data_main(C);
+
+   CTX_DATA_BEGIN (C, Object *, ob, selected_objects)
+   {
+   BKE_collection_object_remove(bmain, scene, sc, ob, 
true);
+   }
+   CTX_DATA_END;
+
+   WM_event_add_notifier(C, NC_SCENE | ND_LAYER, scene);
+   te->store_elem->flag &= ~TSE_SELECTED;
+   }
+   else if (event == OL_COLLECTION_OP_COLLECTION_NEW) {
+   BKE_collection_add(scene, sc, NULL);
+   WM_event_add_notifier(C, NC_SCENE | ND_LAYER, scene);
+   }
+   else if (event == OL_COLLECTION_OP_COLLECTION_UNLINK) {
+   SceneLayer *sl = CTX_data_scene_layer(C);
+
+   if (BLI_findindex(>layer_collections, lc) == -1) {
+   /* we can't unlink if the layer collection wasn't 
directly linked */
+   TODO_LAYER_OPERATORS; /* this shouldn't be in the menu 
in those cases */
+   }
+   else {
+   BKE_collection_unlink(sl, lc);
+   WM_event_add_notifier(C, NC_SCENE | ND_LAYER, scene);
+   }
+   }
+   else if (event == OL_COLLECTION_OP_COLLECTION_DEL) {
+   if (BKE_collection_remove(scene, sc)) {
+  

[Bf-blender-cvs] [1ed20a692f] blender2.8: Follow up on mode engine code separation

2017-02-17 Thread Dalai Felinto
Commit: 1ed20a692ffe23f5f1efd6a2baf89aaecb45b190
Author: Dalai Felinto
Date:   Fri Feb 17 17:53:51 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB1ed20a692ffe23f5f1efd6a2baf89aaecb45b190

Follow up on mode engine code separation

The settings initialization belong within the engines

===

M   source/blender/blenkernel/CMakeLists.txt
M   source/blender/blenkernel/intern/layer.c
M   source/blender/draw/DRW_engine.h
M   source/blender/draw/modes/edit_mode.c
M   source/blender/draw/modes/edit_mode.h
M   source/blender/draw/modes/object_mode.c
M   source/blender/draw/modes/object_mode.h

===

diff --git a/source/blender/blenkernel/CMakeLists.txt 
b/source/blender/blenkernel/CMakeLists.txt
index 6202c84f32..b665183a37 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -30,6 +30,7 @@ set(INC
../blenloader
../blentranslation
../depsgraph
+   ../draw
../gpu
../ikplugin
../imbuf
diff --git a/source/blender/blenkernel/intern/layer.c 
b/source/blender/blenkernel/intern/layer.c
index 7b8ad5eaa8..ad5a5081e1 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -44,6 +44,8 @@
 #include "DNA_node_types.h"
 #include "DNA_scene_types.h"
 
+#include "DRW_engine.h"
+
 #include "MEM_guardedalloc.h"
 
 /* prototype */
@@ -820,8 +822,7 @@ static void 
layer_collection_create_mode_settings_object(ListBase *lb)
ces->type = COLLECTION_MODE_OBJECT;
 
/* properties */
-   BKE_collection_engine_property_add_int(ces, "show_wire", false);
-   BKE_collection_engine_property_add_int(ces, "show_backface_culling", 
false);
+   OBJECT_collection_settings_create(ces);
 
BLI_addtail(lb, ces);
 }
@@ -835,7 +836,7 @@ static void 
layer_collection_create_mode_settings_edit(ListBase *lb)
ces->type = COLLECTION_MODE_EDIT;
 
/* properties */
-   BKE_collection_engine_property_add_int(ces, "show_occlude_wire", false);
+   EDIT_collection_settings_create(ces);
 
BLI_addtail(lb, ces);
 }
diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h
index 4f86e3fcd9..f5ac6e4c6c 100644
--- a/source/blender/draw/DRW_engine.h
+++ b/source/blender/draw/DRW_engine.h
@@ -28,6 +28,7 @@
 
 //#define WITH_VIEWPORT_CACHE_TEST
 
+struct CollectionEngineSettings;
 struct DRWPass;
 struct Material;
 struct Scene;
@@ -42,4 +43,8 @@ void DRW_pass_free(struct DRWPass *pass);
 void *DRW_material_settings_get(struct Material *ma, const char *engine_name);
 void *DRW_render_settings_get(struct Scene *scene, const char *engine_name);
 
-#endif /* __DRW_ENGINE_H__ */
\ No newline at end of file
+/* Mode engines initialization */
+void OBJECT_collection_settings_create(struct CollectionEngineSettings *ces);
+void EDIT_collection_settings_create(struct CollectionEngineSettings *ces);
+
+#endif /* __DRW_ENGINE_H__ */
diff --git a/source/blender/draw/modes/edit_mode.c 
b/source/blender/draw/modes/edit_mode.c
index 83c9cdd190..93b8e026fd 100644
--- a/source/blender/draw/modes/edit_mode.c
+++ b/source/blender/draw/modes/edit_mode.c
@@ -23,6 +23,7 @@
  *  \ingroup draw
  */
 
+#include "DRW_engine.h"
 #include "DRW_render.h"
 
 #include "draw_mode_pass.h"
@@ -104,4 +105,10 @@ void EDIT_draw(void)
DRW_draw_pass(psl->wire_outline_pass);
DRW_draw_pass(psl->non_meshes_pass);
DRW_draw_pass(psl->ob_center_pass);
-}
\ No newline at end of file
+}
+
+void EDIT_collection_settings_create(CollectionEngineSettings *ces)
+{
+   BLI_assert(ces);
+   BKE_collection_engine_property_add_int(ces, "show_occlude_wire", false);
+}
diff --git a/source/blender/draw/modes/edit_mode.h 
b/source/blender/draw/modes/edit_mode.h
index 241450ac2b..66079e9672 100644
--- a/source/blender/draw/modes/edit_mode.h
+++ b/source/blender/draw/modes/edit_mode.h
@@ -26,8 +26,10 @@
 #ifndef __EDIT_MODE_H__
 #define __EDIT_MODE_H__
 
+struct Object;
+
 void EDIT_cache_init(void);
-void EDIT_cache_populate(Object *ob);
+void EDIT_cache_populate(struct Object *ob);
 void EDIT_cache_finish(void);
 
 void EDIT_draw(void);
diff --git a/source/blender/draw/modes/object_mode.c 
b/source/blender/draw/modes/object_mode.c
index 2b553ffcdb..5c05ca1e81 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -23,6 +23,7 @@
  *  \ingroup draw
  */
 
+#include "DRW_engine.h"
 #include "DRW_render.h"
 
 #include "draw_mode_pass.h"
@@ -88,4 +89,11 @@ void OBJECT_draw(void)
DRW_draw_pass(psl->wire_outline_pass);
DRW_draw_pass(psl->non_meshes_pass);
DRW_draw_pass(psl->ob_center_pass);
-}
\ No newline at end of file
+}
+
+void OBJECT_collection_settings_create(CollectionEngineSettings *ces)
+{
+   BLI_assert(ces);
+   

[Bf-blender-cvs] [50fb3ea3de] blender2.8: Clay Engine: Separate mode drawing to different files/engines.

2017-02-17 Thread Clément Foucault
Commit: 50fb3ea3de8db278fd135392b990158b745e3e3f
Author: Clément Foucault
Date:   Fri Feb 17 17:29:43 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB50fb3ea3de8db278fd135392b990158b745e3e3f

Clay Engine: Separate mode drawing to different files/engines.

===

M   source/blender/draw/CMakeLists.txt
M   source/blender/draw/engines/clay/clay.c
M   source/blender/draw/intern/DRW_render.h
M   source/blender/draw/intern/draw_manager.c
M   source/blender/draw/intern/draw_mode_pass.c
M   source/blender/draw/intern/draw_mode_pass.h
A   source/blender/draw/modes/edit_mode.c
A   source/blender/draw/modes/edit_mode.h
A   source/blender/draw/modes/object_mode.c
A   source/blender/draw/modes/object_mode.h
M   source/blender/editors/space_view3d/view3d_draw.c
M   source/blender/gpu/GPU_viewport.h
M   source/blender/gpu/intern/gpu_viewport.c

===

diff --git a/source/blender/draw/CMakeLists.txt 
b/source/blender/draw/CMakeLists.txt
index 006fb0fbc2..be517d799a 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -27,6 +27,7 @@ set(INC
.
intern
engines/clay
+   modes/
 
../blenkernel
../blenlib
@@ -55,12 +56,16 @@ set(SRC
intern/draw_cache.c
intern/draw_view.c
engines/clay/clay.c
+   modes/edit_mode.c
+   modes/object_mode.c
 
intern/DRW_render.h
intern/draw_mode_pass.h
intern/draw_cache.h
intern/draw_view.h
engines/clay/clay.h
+   modes/edit_mode.h
+   modes/object_mode.h
 
./DRW_engine.h
 )
diff --git a/source/blender/draw/engines/clay/clay.c 
b/source/blender/draw/engines/clay/clay.c
index 1673dd219c..f121eb8600 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -126,17 +126,9 @@ enum {
 
 /* keep it under MAX_PASSES */
 typedef struct CLAY_PassList{
-   /* default */
-   struct DRWPass *non_meshes_pass;
-   struct DRWPass *ob_center_pass;
-   /* engine specific */
struct DRWPass *depth_pass;
struct DRWPass *depth_pass_cull;
-   struct DRWPass *depth_pass_hidden_wire;
struct DRWPass *clay_pass;
-   struct DRWPass *wire_overlay_pass;
-   struct DRWPass *wire_outline_pass;
-   struct DRWPass *wire_outline_pass_hidden_wire;
 } CLAY_PassList;
 
 //#define GTAO
@@ -286,8 +278,12 @@ MaterialEngineSettings *CLAY_material_settings_create(void)
return (MaterialEngineSettings *)settings;
 }
 
-static void CLAY_engine_init(CLAY_StorageList *stl, CLAY_TextureList *txl, 
CLAY_FramebufferList *fbl)
+static void CLAY_engine_init(void)
 {
+   CLAY_StorageList *stl = DRW_engine_storage_list_get();
+   CLAY_TextureList *txl = DRW_engine_texture_list_get();
+   CLAY_FramebufferList *fbl = DRW_engine_framebuffer_list_get();
+
/* Create Texture Array */
if (!data.matcap_array) {
PreviewImage *prv[24]; /* For now use all of the 24 internal 
matcaps */
@@ -384,56 +380,56 @@ static void CLAY_engine_init(CLAY_StorageList *stl, 
CLAY_TextureList *txl, CLAY_
 (int)viewport_size[0], 
(int)viewport_size[1],
 , 1);
}
-}
 
-static void CLAY_ssao_setup(void)
-{
-   float invproj[4][4];
-   float dfdyfacs[2];
-   bool is_persp = DRW_viewport_is_persp_get();
-   /* view vectors for the corners of the view frustum. Can be used to 
recreate the world space position easily */
-   float viewvecs[3][4] = {
-   {-1.0f, -1.0f, -1.0f, 1.0f},
-   {1.0f, -1.0f, -1.0f, 1.0f},
-   {-1.0f, 1.0f, -1.0f, 1.0f}
-   };
-   int i;
-   float *size = DRW_viewport_size_get();
-   RenderEngineSettingsClay *settings = DRW_render_settings_get(NULL, 
RE_engine_id_BLENDER_CLAY);
-
-   DRW_get_dfdy_factors(dfdyfacs);
-
-   data.ssao_params[0] = settings->ssao_samples;
-   data.ssao_params[1] = size[0] / 64.0;
-   data.ssao_params[2] = size[1] / 64.0;
-   data.ssao_params[3] = dfdyfacs[1]; /* dfdy sign for offscreen */
-
-   /* invert the view matrix */
-   DRW_viewport_matrix_get(data.winmat, DRW_MAT_WIN);
-   invert_m4_m4(invproj, data.winmat);
-
-   /* convert the view vectors to view space */
-   for (i = 0; i < 3; i++) {
-   mul_m4_v4(invproj, viewvecs[i]);
-   /* normalized trick see 
http://www.derschmale.com/2014/01/26/reconstructing-positions-from-the-depth-buffer
 */
-   mul_v3_fl(viewvecs[i], 1.0f / viewvecs[i][3]);
-   if (is_persp)
-   mul_v3_fl(viewvecs[i], 1.0f / viewvecs[i][2]);
-   viewvecs[i][3] = 1.0;
-
-   copy_v4_v4(data.viewvecs[i], viewvecs[i]);
-   }
+   /* SSAO 

[Bf-blender-cvs] [a908e63590] cycles_split_kernel: Merge branch 'master' into cycles_split_kernel

2017-02-17 Thread Sergey Sharybin
Commit: a908e63590cf8579894642df095c64dbe3abed01
Author: Sergey Sharybin
Date:   Fri Feb 17 13:54:04 2017 +0100
Branches: cycles_split_kernel
https://developer.blender.org/rBa908e63590cf8579894642df095c64dbe3abed01

Merge branch 'master' into cycles_split_kernel

===



===

diff --cc intern/cycles/kernel/kernel_shadow.h
index 84b5fd254c,06a77a208c..6abfa9c387
--- a/intern/cycles/kernel/kernel_shadow.h
+++ b/intern/cycles/kernel/kernel_shadow.h
@@@ -168,129 -204,262 +204,262 @@@ ccl_device bool shadow_blocked_transpar
return blocked;
  }
  
- #undef STACK_MAX_HITS
- 
- #else
+ /* Here we do all device specific trickery before invoking actual traversal
+  * loop to help readability of the actual logic.
+  */
+ ccl_device bool shadow_blocked_transparent_all(KernelGlobals *kg,
+ShaderData *shadow_sd,
+ccl_addr_space PathState 
*state,
+Ray *ray,
+uint max_hits,
+float3 *shadow)
+ {
+ #ifdef __KERNEL_CUDA__
+   Intersection *hits = kg->hits_stack;
+ #else
+   Intersection hits_stack[SHADOW_STACK_MAX_HITS];
+   Intersection *hits = hits_stack;
+ #endif
+ #ifndef __KERNEL_GPU__
+   /* Prefer to use stack but use dynamic allocation if too deep max hits
+* we need max_hits + 1 storage space due to the logic in
+* scene_intersect_shadow_all which will first store and then check if
+* the limit is exceeded.
+*
+* Ignore this on GPU because of slow/unavailable malloc().
+*/
+   if(max_hits + 1 > SHADOW_STACK_MAX_HITS) {
+   if(kg->transparent_shadow_intersections == NULL) {
+   const int transparent_max_bounce = 
kernel_data.integrator.transparent_max_bounce;
+   kg->transparent_shadow_intersections =
+   
(Intersection*)malloc(sizeof(Intersection)*(transparent_max_bounce + 1));
+   }
+   hits = kg->transparent_shadow_intersections;
+   }
+ #endif  /* __KERNEL_GPU__ */
+   /* Invoke actual traversal. */
+   return shadow_blocked_transparent_all_loop(kg,
+  shadow_sd,
+  state,
+  ray,
+  hits,
+  max_hits,
+  shadow);
+ }
+ #  endif  /* __SHADOW_RECORD_ALL__ */
  
- /* Shadow function to compute how much light is blocked, GPU variation.
 -#  ifdef __KERNEL_GPU__
++#  if defined(__KERNEL_GPU__) || !defined(__SHADOW_RECORD_ALL__)
+ /* Shadow function to compute how much light is blocked,
   *
   * Here we raytrace from one transparent surface to the next step by step.
   * To minimize overhead in cases where we don't need transparent shadows, we
   * first trace a regular shadow ray. We check if the hit primitive was
   * potentially transparent, and only in that case start marching. this gives
-  * one extra ray cast for the cases were we do want transparency. */
+  * one extra ray cast for the cases were we do want transparency.
+  */
  
- ccl_device_noinline bool shadow_blocked(KernelGlobals *kg,
- ShaderData *shadow_sd,
- ccl_addr_space PathState *state,
- ccl_addr_space Ray *ray_input,
- float3 *shadow)
+ /* This function is only implementing device-independent traversal logic
+  * which requires some precalculation done.
+  */
+ ccl_device bool shadow_blocked_transparent_stepped_loop(
+ KernelGlobals *kg,
+ ShaderData *shadow_sd,
+ ccl_addr_space PathState *state,
+ Ray *ray,
+ Intersection *isect,
+ const bool blocked,
+ const bool is_transparent_isect,
+ float3 *shadow)
  {
-   *shadow = make_float3(1.0f, 1.0f, 1.0f);
+   if(blocked && is_transparent_isect) {
+   float3 throughput = make_float3(1.0f, 1.0f, 1.0f);
+   float3 Pend = ray->P + ray->D*ray->t;
+   int bounce = state->transparent_bounce;
+ #ifdef __VOLUME__
+   PathState ps = *state;
+ #endif
+   for(;;) {
+   if(bounce >= 
kernel_data.integrator.transparent_max_bounce) {
+   return true;
+   }
+   if(!scene_intersect(kg,
+   *ray,
+   

[Bf-blender-cvs] [9cb44cbba1] blender2.8: Layers: Fix visibility evalution + Unittesting

2017-02-17 Thread Dalai Felinto
Commit: 9cb44cbba13817dc981e4d865ec04847f03fb719
Author: Dalai Felinto
Date:   Fri Feb 17 13:08:24 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB9cb44cbba13817dc981e4d865ec04847f03fb719

Layers: Fix visibility evalution + Unittesting

test_evaluation_visibility_a failed before, but it is now fixed
test_evaluation_visibility_b passed before and was used as control to make sure 
it was not broken

===

M   source/blender/blenkernel/intern/layer.c
M   tests/python/render_layer/CMakeLists.txt
A   tests/python/render_layer/test_evaluation_visibility_a.py
A   tests/python/render_layer/test_evaluation_visibility_b.py

===

diff --git a/source/blender/blenkernel/intern/layer.c 
b/source/blender/blenkernel/intern/layer.c
index d08801477a..7b8ad5eaa8 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -252,16 +252,10 @@ static void 
layer_collection_base_flag_recalculate(LayerCollection *lc, const bo
if (is_visible) {
base->flag |= BASE_VISIBLED;
}
-   else {
-   base->flag &= ~BASE_VISIBLED;
-   }
 
if (is_selectable) {
base->flag |= BASE_SELECTABLED;
}
-   else {
-   base->flag &= ~BASE_SELECTABLED;
-   }
}
 
for (LayerCollection *lcn = lc->layer_collections.first; lcn; lcn = 
lcn->next) {
@@ -274,6 +268,10 @@ static void 
layer_collection_base_flag_recalculate(LayerCollection *lc, const bo
  */
 void BKE_scene_layer_base_flag_recalculate(SceneLayer *sl)
 {
+   for (Base *base = sl->object_bases.first; base; base = base->next) {
+   base->flag &= ~(BASE_VISIBLED | BASE_SELECTABLED);
+   }
+
for (LayerCollection *lc = sl->layer_collections.first; lc; lc = 
lc->next) {
layer_collection_base_flag_recalculate(lc, true, true);
}
diff --git a/tests/python/render_layer/CMakeLists.txt 
b/tests/python/render_layer/CMakeLists.txt
index 0291801927..f47b193f8c 100644
--- a/tests/python/render_layer/CMakeLists.txt
+++ b/tests/python/render_layer/CMakeLists.txt
@@ -66,3 +66,5 @@ RENDER_LAYER_TEST(link)
 RENDER_LAYER_TEST(operator_context)
 RENDER_LAYER_TEST(object_add)
 RENDER_LAYER_TEST(object_copy)
+RENDER_LAYER_TEST(evaluation_visibility_a)
+RENDER_LAYER_TEST(evaluation_visibility_b)
diff --git a/tests/python/render_layer/test_evaluation_visibility_a.py 
b/tests/python/render_layer/test_evaluation_visibility_a.py
new file mode 100644
index 00..0e82a6578e
--- /dev/null
+++ b/tests/python/render_layer/test_evaluation_visibility_a.py
@@ -0,0 +1,59 @@
+# ./blender.bin --background -noaudio --python 
tests/python/render_layer/test_link.py -- --testdir="/data/lib/tests/"
+
+# 
+# Importing - Same For All Render Layer Tests
+# 
+
+import unittest
+
+import os, sys
+sys.path.append(os.path.dirname(__file__))
+
+from render_layer_common import *
+
+
+# 
+# Testing
+# 
+
+class UnitTesting(RenderLayerTesting):
+def test_visibility(self):
+"""
+See if we can link objects
+"""
+import bpy
+
+scene = bpy.context.scene
+cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh'))
+
+layer = scene.render_layers.new('Visibility Test')
+layer.collections.unlink(layer.collections[0])
+scene.render_layers.active = layer
+
+scene_collection_a = scene.master_collection.collections.new("Visible")
+scene_collection_b = 
scene.master_collection.collections.new("Invisible")
+
+scene_collection_a.objects.link(cube)
+scene_collection_b.objects.link(cube)
+
+layer_collection_a = layer.collections.link(scene_collection_a)
+layer_collection_b = layer.collections.link(scene_collection_b)
+
+layer_collection_a.hide = False
+layer_collection_b.hide = True
+
+self.assertTrue(cube.visible_get(), "Object is not visible")
+
+
+# 
+# Main - Same For All Render Layer Tests
+# 
+
+if __name__ == '__main__':
+import sys
+
+extra_arguments = sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv 
else []
+sys.argv = [__file__] + (sys.argv[sys.argv.index("--") + 2:] if "--" in 
sys.argv else [])
+
+UnitTesting._extra_arguments = extra_arguments
+unittest.main()
diff --git a/tests/python/render_layer/test_evaluation_visibility_b.py 

[Bf-blender-cvs] [7884406f33] blender2.8: Layers: ob.visible_get()

2017-02-17 Thread Dalai Felinto
Commit: 7884406f33c91a5161b570ef53d84450e3775a24
Author: Dalai Felinto
Date:   Fri Feb 17 12:57:12 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB7884406f33c91a5161b570ef53d84450e3775a24

Layers: ob.visible_get()

Similar to ob.select_get(), but for BASE_VISIBLED.

===

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

===

diff --git a/source/blender/makesrna/intern/rna_object_api.c 
b/source/blender/makesrna/intern/rna_object_api.c
index c93f72e798..0390ba0422 100644
--- a/source/blender/makesrna/intern/rna_object_api.c
+++ b/source/blender/makesrna/intern/rna_object_api.c
@@ -135,6 +135,19 @@ static int rna_Object_select_get(Object *ob, bContext *C, 
ReportList *reports)
return ((base->flag & BASE_SELECTED) != 0) ? 1 : 0;
 }
 
+static int rna_Object_visible_get(Object *ob, bContext *C, ReportList *reports)
+{
+   SceneLayer *sl = CTX_data_scene_layer(C);
+   Base *base = BKE_scene_layer_base_find(sl, ob);
+
+   if (!base) {
+   BKE_reportf(reports, RPT_ERROR, "Object '%s' not in Render 
Layer '%s'!", ob->id.name + 2, sl->name);
+   return -1;
+   }
+
+   return ((base->flag & BASE_VISIBLED) != 0) ? 1 : 0;
+}
+
 /* Convert a given matrix from a space to another (using the object and/or a 
bone as reference). */
 static void rna_Scene_mat_convert_space(Object *ob, ReportList *reports, 
bPoseChannel *pchan,
 float *mat, float *mat_ret, int from, 
int to)
@@ -569,6 +582,12 @@ void RNA_api_object(StructRNA *srna)
parm = RNA_def_boolean(func, "result", 0, "", "Object selected");
RNA_def_function_return(func, parm);
 
+   func = RNA_def_function(srna, "visible_get", "rna_Object_visible_get");
+   RNA_def_function_ui_description(func, "Get the object visibility for 
the active render layer");
+   RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS);
+   parm = RNA_def_boolean(func, "result", 0, "", "Object visible");
+   RNA_def_function_return(func, parm);
+
/* Matrix space conversion */
func = RNA_def_function(srna, "convert_space", 
"rna_Scene_mat_convert_space");
RNA_def_function_ui_description(func, "Convert (transform) the given 
matrix from one space to another");

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


[Bf-blender-cvs] [31123f09cd] master: Remove unused functions related to distance between BoundBox and ray

2017-02-17 Thread Germano Cavalcante
Commit: 31123f09cd431191e99135c17e80b96441f985f5
Author: Germano Cavalcante
Date:   Fri Feb 17 09:49:20 2017 -0300
Branches: master
https://developer.blender.org/rB31123f09cd431191e99135c17e80b96441f985f5

Remove unused functions related to distance between BoundBox and ray

===

M   source/blender/blenkernel/BKE_bvhutils.h
M   source/blender/blenkernel/intern/bvhutils.c
M   source/blender/blenlib/BLI_kdopbvh.h
M   source/blender/blenlib/BLI_math_geom.h
M   source/blender/blenlib/intern/BLI_kdopbvh.c
M   source/blender/blenlib/intern/math_geom.c

===

diff --git a/source/blender/blenkernel/BKE_bvhutils.h 
b/source/blender/blenkernel/BKE_bvhutils.h
index ad729ad37d..cb72f0859d 100644
--- a/source/blender/blenkernel/BKE_bvhutils.h
+++ b/source/blender/blenkernel/BKE_bvhutils.h
@@ -54,7 +54,6 @@ typedef struct BVHTreeFromEditMesh {
/* default callbacks to bvh nearest and raycast */
BVHTree_NearestPointCallback nearest_callback;
BVHTree_RayCastCallback raycast_callback;
-   BVHTree_NearestToRayCallback nearest_to_ray_callback;
 
struct BMEditMesh *em;
 
@@ -75,7 +74,6 @@ typedef struct BVHTreeFromMesh {
/* default callbacks to bvh nearest and raycast */
BVHTree_NearestPointCallback nearest_callback;
BVHTree_RayCastCallback raycast_callback;
-   BVHTree_NearestToRayCallback nearest_to_ray_callback;
 
/* Vertex array, so that callbacks have instante access to data */
const struct MVert *vert;
diff --git a/source/blender/blenkernel/intern/bvhutils.c 
b/source/blender/blenkernel/intern/bvhutils.c
index 5a0006e679..c0e4ef37a9 100644
--- a/source/blender/blenkernel/intern/bvhutils.c
+++ b/source/blender/blenkernel/intern/bvhutils.c
@@ -376,45 +376,6 @@ static void mesh_edges_spherecast(void *userdata, int 
index, const BVHTreeRay *r
}
 }
 
-#define V3_MUL_ELEM(a, b) \
-   (a)[0] * (b)[0], \
-   (a)[1] * (b)[1], \
-   (a)[2] * (b)[2]
-
-/* Callback to bvh tree nearest edge to ray.
- * The tree must have been built using bvhtree_from_mesh_edges.
- * userdata must be a BVHMeshCallbackUserdata built from the same mesh as the 
tree. */
-static void mesh_edges_nearest_to_ray(
-void *userdata, const float ray_co[3], const float ray_dir[3],
-const float scale[3], int index, BVHTreeNearest *nearest)
-{
-   struct BVHTreeFromMesh *data = userdata;
-   const MVert *vert = data->vert;
-   const MEdge *e = >edge[index];
-
-   const float t0[3]= {V3_MUL_ELEM(vert[e->v1].co, scale)};
-   const float t1[3]= {V3_MUL_ELEM(vert[e->v2].co, scale)};
-   const float origin_sc[3] = {V3_MUL_ELEM(ray_co, scale)};
-   const float dir_sc[3]= {V3_MUL_ELEM(ray_dir, scale)};
-
-   float depth, point[3];
-   const float dist_sq = dist_squared_ray_to_seg_v3(origin_sc, dir_sc, t0, 
t1, point, );
-
-   if (dist_sq < nearest->dist_sq) {
-   nearest->dist_sq = dist_sq;
-   nearest->index = index;
-
-   point[0] /= scale[0];
-   point[1] /= scale[1];
-   point[2] /= scale[2];
-
-   copy_v3_v3(nearest->co, point);
-   sub_v3_v3v3(nearest->no, t0, t1);
-   }
-}
-
-#undef V3_MUL_ELEM
-
 /** \} */
 
 /*
@@ -499,7 +460,6 @@ static void bvhtree_from_mesh_verts_setup_data(
 * remember the min distance to point is the same as the min distance 
to BV of point */
data->nearest_callback = NULL;
data->raycast_callback = mesh_verts_spherecast;
-   data->nearest_to_ray_callback = NULL;
 
data->vert = vert;
data->vert_allocated = vert_allocated;
@@ -524,7 +484,6 @@ BVHTree *bvhtree_from_editmesh_verts_ex(
data->em = em;
data->nearest_callback = NULL;
data->raycast_callback = editmesh_verts_spherecast;
-   data->nearest_to_ray_callback = NULL;
}
 
return tree;
@@ -707,7 +666,6 @@ static void bvhtree_from_mesh_edges_setup_data(
 
data->nearest_callback = mesh_edges_nearest_point;
data->raycast_callback = mesh_edges_spherecast;
-   data->nearest_to_ray_callback = mesh_edges_nearest_to_ray;
 
data->vert = vert;
data->vert_allocated = vert_allocated;
@@ -735,8 +693,6 @@ BVHTree *bvhtree_from_editmesh_edges_ex(
data->em = em;
data->nearest_callback = NULL;  /* TODO */
data->raycast_callback = NULL;  /* TODO */
-   /* TODO: not urgent however since users currently define own 
callbacks */
-   data->nearest_to_ray_callback = NULL;
}
 
return tree;
@@ -893,7 +849,6 @@ static void bvhtree_from_mesh_faces_setup_data(
 
data->nearest_callback = mesh_faces_nearest_point;
data->raycast_callback = 

[Bf-blender-cvs] [5a14578116] blender2.8: Layers: Fix crash on opening files saved in clay

2017-02-17 Thread Dalai Felinto
Commit: 5a14578116488b23a22f49d0aee2eac3b036abbd
Author: Dalai Felinto
Date:   Fri Feb 17 11:02:25 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB5a14578116488b23a22f49d0aee2eac3b036abbd

Layers: Fix crash on opening files saved in clay

Basically we were not tagging the layers and bases as dirty. As usual this will 
likely change once Depsgraph kicks in. But this will do for now.

===

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

===

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index 3413f30b9d..61a93018f7 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -126,6 +126,7 @@
 #include "BKE_fcurve.h"
 #include "BKE_global.h" // for G
 #include "BKE_group.h"
+#include "BKE_layer.h"
 #include "BKE_library.h" // for which_libbase
 #include "BKE_library_idmap.h"
 #include "BKE_library_query.h"
@@ -5809,9 +5810,12 @@ static void lib_link_scene(FileData *fd, Main *main)
lib_link_scene_collection(fd, sce->id.lib, 
sce->collection);
 
for (sl = sce->render_layers.first; sl; sl = sl->next) {
+   /* tag scene layer to update for collection 
tree evaluation */
+   sl->flag |= SCENE_LAYER_ENGINE_DIRTY;
for (Base *base = sl->object_bases.first; base; 
base = base->next) {
/* we only bump the use count for the 
collection objects */
base->object = newlibadr(fd, 
sce->id.lib, base->object);
+   base->flag |= 
BASE_DIRTY_ENGINE_SETTINGS;
}
}
 
@@ -6229,6 +6233,8 @@ static void direct_link_scene(FileData *fd, Scene *sce)
link_list(fd, >object_bases);
sl->basact = newdataadr(fd, sl->basact);
direct_link_layer_collections(fd, >layer_collections);
+   /* tag scene layer to update for collection tree evaluation */
+   BKE_scene_layer_base_flag_recalculate(sl);
}
 
link_list(fd, >engines_settings);
diff --git a/source/blender/blenloader/intern/versioning_280.c 
b/source/blender/blenloader/intern/versioning_280.c
index b8867f7b62..4eb9741c3c 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -173,7 +173,7 @@ void do_versions_after_linking_280(Main *main)
}
 }
 
-void blo_do_version_temporary(Main *main)
+static void blo_do_version_temporary(Main *main)
 {
BKE_scene_layer_doversion_update(main);
 }

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


[Bf-blender-cvs] [84141f27a6] blender2.8: OpenGL: mask_draw uses new imm mode

2017-02-17 Thread Mike Erwin
Commit: 84141f27a6685e5823213728ea343722870209a0
Author: Mike Erwin
Date:   Fri Feb 17 03:23:26 2017 -0500
Branches: blender2.8
https://developer.blender.org/rB84141f27a6685e5823213728ea343722870209a0

OpenGL: mask_draw uses new imm mode

Based on D2371 from @ryry. Mostly T49043, a little T49042.
Deleted some unused drawing code instead of updating it.
I have a few more things in mind for this file... tomorrow!

===

M   source/blender/editors/mask/mask_draw.c

===

diff --git a/source/blender/editors/mask/mask_draw.c 
b/source/blender/editors/mask/mask_draw.c
index 2b4f94a37e..f2106773be 100644
--- a/source/blender/editors/mask/mask_draw.c
+++ b/source/blender/editors/mask/mask_draw.c
@@ -36,6 +36,7 @@
 #include "BLI_math.h"
 #include "BLI_rect.h"
 #include "BLI_task.h"
+#include "BLI_listbase.h"
 
 #include "BKE_context.h"
 #include "BKE_mask.h"
@@ -48,10 +49,9 @@
 #include "ED_clip.h"
 #include "ED_mask.h"  /* own include */
 #include "ED_space_api.h"
-#include "BIF_gl.h"
 #include "BIF_glutil.h"
 
-#include "GPU_basic_shader.h"
+#include "GPU_immediate.h"
 
 #include "UI_resources.h"
 #include "UI_view2d.h"
@@ -93,40 +93,6 @@ static void mask_spline_feather_color_get(MaskLayer 
*UNUSED(masklay), MaskSpline
r_rgb[3] = 255;
 }
 
-#if 0
-static void draw_spline_parents(MaskLayer *UNUSED(masklay), MaskSpline *spline)
-{
-   int i;
-   MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
-
-   if (!spline->tot_point)
-   return;
-
-   GPU_basic_shader_bind_enable(GPU_SHADER_LINE | GPU_SHADER_STIPPLE);
-   GPU_basic_shader_line_stipple(1, 0x);
-
-   glColor3ub(0, 0, 0);
-   glBegin(GL_LINES);
-
-   for (i = 0; i < spline->tot_point; i++) {
-   MaskSplinePoint *point = _array[i];
-   BezTriple *bezt = >bezt;
-
-   if (point->parent.id) {
-   glVertex2f(bezt->vec[1][0],
-  bezt->vec[1][1]);
-
-   glVertex2f(bezt->vec[1][0] - point->parent.offset[0],
-  bezt->vec[1][1] - point->parent.offset[1]);
-   }
-   }
-
-   glEnd();
-
-   GPU_basic_shader_bind_disable(GPU_SHADER_LINE | GPU_SHADER_STIPPLE);
-}
-#endif
-
 static void mask_point_undistort_pos(SpaceClip *sc, float r_co[2], const float 
co[2])
 {
BKE_mask_coord_to_movieclip(sc->clip, >user, r_co, co);
@@ -136,44 +102,19 @@ static void mask_point_undistort_pos(SpaceClip *sc, float 
r_co[2], const float c
 
 static void draw_circle(const float x, const float y,
 const float size, const bool fill,
-const float xscale, const float yscale)
+const float scale, const unsigned pos)
 {
-   static GLuint wire_displist = 0;
-   static GLuint fill_displist = 0;
-   GLuint displist = fill ? fill_displist : wire_displist;
-
-   /* Initialize round circle shape. */
-   if (displist == 0) {
-   GLUquadricObj *qobj;
-
-   displist = glGenLists(1);
-   glNewList(displist, GL_COMPILE);
-
-   qobj = gluNewQuadric();
-   gluQuadricDrawStyle(qobj, fill ? GLU_FILL : GLU_SILHOUETTE);
-   gluDisk(qobj, 0,  0.7, 8, 1);
-   gluDeleteQuadric(qobj);
-
-   glEndList();
-
-   if (fill) {
-   fill_displist = displist;
-   }
-   else {
-   wire_displist = displist;
-   }
+   if (fill) {
+   imm_draw_filled_circle(pos, x, y, 0.7f / scale * size, 8);
+   }
+   else {
+   imm_draw_lined_circle(pos, x, y, 0.7f / scale * size, 8);
}
-
-   glPushMatrix();
-   glTranslatef(x, y, 0.0f);
-   glScalef(1.0f / xscale * size, 1.0f / yscale * size, 1.0f);
-   glCallList(displist);
-   glPopMatrix();
 }
 
 static void draw_single_handle(const MaskLayer *mask_layer, const 
MaskSplinePoint *point,
const eMaskWhichHandle which_handle, const int 
draw_type,
-   const float handle_size, const float xscale, 
const float yscale,
+   const float handle_size, const float scale,
const float point_pos[2], const float 
handle_pos[2])
 {
const BezTriple *bezt = >bezt;
@@ -190,54 +131,60 @@ static void draw_single_handle(const MaskLayer 
*mask_layer, const MaskSplinePoin
return;
}
 
+   VertexFormat *format = immVertexFormat();
+   unsigned pos = add_attrib(format, "pos", GL_FLOAT, 2, KEEP_FLOAT);
+   const unsigned char rgb_gray[4] = {0x60, 0x60, 0x60, 0xff};
+
+   immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
+