[Bf-blender-cvs] [ce30ab1e02b] blender2.8: Accidentally left show_weight enabled

2017-05-07 Thread Campbell Barton
Commit: ce30ab1e02b8bbc7a94aac8051c24474bc19b9e7
Author: Campbell Barton
Date:   Mon May 8 14:44:13 2017 +1000
Branches: blender2.8
https://developer.blender.org/rBce30ab1e02b8bbc7a94aac8051c24474bc19b9e7

Accidentally left show_weight enabled

===

M   source/blender/draw/modes/edit_mesh_mode.c

===

diff --git a/source/blender/draw/modes/edit_mesh_mode.c 
b/source/blender/draw/modes/edit_mesh_mode.c
index 83bdd788900..d46b50fb1c9 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -523,7 +523,7 @@ void EDIT_MESH_collection_settings_create(IDProperty 
*properties)
   properties->type == IDP_GROUP &&
   properties->subtype == IDP_GROUP_SUB_MODE_EDIT);
BKE_collection_engine_property_add_int(properties, "show_occlude_wire", 
false);
-   BKE_collection_engine_property_add_int(properties, "show_weight", true);
+   BKE_collection_engine_property_add_int(properties, "show_weight", 
false);
BKE_collection_engine_property_add_int(properties, "face_normals_show", 
false);
BKE_collection_engine_property_add_int(properties, "vert_normals_show", 
false);
BKE_collection_engine_property_add_int(properties, "loop_normals_show", 
false);

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


[Bf-blender-cvs] [d8bf5c13784] blender2.8: Cleanup: use struct for custom-data offsets

2017-05-07 Thread Campbell Barton
Commit: d8bf5c1378412d6b8b3b8c405a1cbd9f523d4ee2
Author: Campbell Barton
Date:   Mon May 8 12:57:38 2017 +1000
Branches: blender2.8
https://developer.blender.org/rBd8bf5c1378412d6b8b3b8c405a1cbd9f523d4ee2

Cleanup: use struct for custom-data offsets

===

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

===

diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c 
b/source/blender/draw/intern/draw_cache_impl_mesh.c
index 54ab262b2c6..bd2d933f34a 100644
--- a/source/blender/draw/intern/draw_cache_impl_mesh.c
+++ b/source/blender/draw/intern/draw_cache_impl_mesh.c
@@ -147,11 +147,14 @@ typedef struct MeshRenderData {
int vcol_active;
int tangent_active;
 
-   int crease_ofs;
-   int bweight_ofs;
-   int *uv_ofs;
-   int *vcol_ofs;
-   int *tangent_ofs;
+   /* Custom-data offsets (only needed for BMesh access) */
+   struct {
+   int crease;
+   int bweight;
+   int *uv;
+   int *vcol;
+   int *tangent;
+   } cd_offset;
 
char (*auto_names)[32];
char (*uv_names)[32];
@@ -251,8 +254,8 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, 
const int types)
rdata->efa_act = BM_mesh_active_face_get(bm, false, 
true);
rdata->eed_act = BM_mesh_active_edge_get(bm);
rdata->eve_act = BM_mesh_active_vert_get(bm);
-   rdata->crease_ofs = CustomData_get_offset(>edata, 
CD_CREASE);
-   rdata->bweight_ofs = CustomData_get_offset(>edata, 
CD_BWEIGHT);
+   rdata->cd_offset.crease = 
CustomData_get_offset(>edata, CD_CREASE);
+   rdata->cd_offset.bweight = 
CustomData_get_offset(>edata, CD_BWEIGHT);
}
if (types & (MR_DATATYPE_DVERT)) {
bm_ensure_types |= BM_VERT;
@@ -342,9 +345,9 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, 
const int types)
rdata->vcol_names = MEM_mallocN(sizeof(*rdata->vcol_names) * 
rdata->vcol_len, "rdata->vcol_names");
rdata->tangent_names = 
MEM_mallocN(sizeof(*rdata->tangent_names) * rdata->uv_len, 
"rdata->tangent_names");
 
-   rdata->uv_ofs = MEM_mallocN(sizeof(*rdata->uv_ofs) * 
rdata->uv_len, "rdata->uv_ofs");
-   rdata->vcol_ofs = MEM_mallocN(sizeof(*rdata->vcol_ofs) * 
rdata->vcol_len, "rdata->vcol_ofs");
-   rdata->tangent_ofs = MEM_mallocN(sizeof(*rdata->tangent_ofs) * 
rdata->uv_len, "rdata->tangent_ofs");
+   rdata->cd_offset.uv = MEM_mallocN(sizeof(*rdata->cd_offset.uv) 
* rdata->uv_len, "rdata->uv_ofs");
+   rdata->cd_offset.vcol = 
MEM_mallocN(sizeof(*rdata->cd_offset.vcol) * rdata->vcol_len, 
"rdata->vcol_ofs");
+   rdata->cd_offset.tangent = 
MEM_mallocN(sizeof(*rdata->cd_offset.tangent) * rdata->uv_len, 
"rdata->tangent_ofs");
 
/* Allocate max */
rdata->auto_vcol = MEM_callocN(
@@ -365,7 +368,7 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, 
const int types)
BLI_snprintf(rdata->vcol_names[i], 
sizeof(*rdata->vcol_names), "c%u", hash);
rdata->mloopcol[i] = CustomData_get_layer_n(>ldata, 
CD_MLOOPCOL, i);
if (rdata->edit_bmesh) {
-   rdata->vcol_ofs[i] = 
CustomData_get_n_offset(>edit_bmesh->bm->ldata, CD_MLOOPCOL, i);
+   rdata->cd_offset.vcol[i] = 
CustomData_get_n_offset(>edit_bmesh->bm->ldata, CD_MLOOPCOL, i);
}
 
/* Gather number of auto layers. */
@@ -387,7 +390,7 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, 
const int types)
BLI_snprintf(rdata->uv_names[i], 
sizeof(*rdata->uv_names), "u%u", hash);
rdata->mloopuv[i] = 
CustomData_get_layer_n(>ldata, CD_MLOOPUV, i);
if (rdata->edit_bmesh) {
-   rdata->uv_ofs[i] = 
CustomData_get_n_offset(>edit_bmesh->bm->ldata, CD_MLOOPUV, i);
+   rdata->cd_offset.uv[i] = 
CustomData_get_n_offset(>edit_bmesh->bm->ldata, CD_MLOOPUV, i);
}
BLI_snprintf(rdata->auto_names[i], 
sizeof(*rdata->auto_names), "a%u", hash);
}
@@ -411,7 +414,7 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, 
const int types)
 
rdata->tangent_ofs[i] = 
CustomData_get_n_offset(>ldata, CD_MLOOPTANGENT, i);
 #else
-   rdata->tangent_ofs[i] = -1;
+   rdata->cd_offset.tangent[i] = -1;
 

[Bf-blender-cvs] [09277486245] blender2.8: Vertex color access for edit-mode

2017-05-07 Thread Campbell Barton
Commit: 0927748624519608b9caf4b898eaf192c83d3d7b
Author: Campbell Barton
Date:   Mon May 8 12:41:05 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB0927748624519608b9caf4b898eaf192c83d3d7b

Vertex color access for edit-mode

Currently not used, adding since legacy drawing can display this.

===

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

===

diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c 
b/source/blender/draw/intern/draw_cache_impl_mesh.c
index 2024541ccac..54ab262b2c6 100644
--- a/source/blender/draw/intern/draw_cache_impl_mesh.c
+++ b/source/blender/draw/intern/draw_cache_impl_mesh.c
@@ -703,8 +703,30 @@ static void 
mesh_render_data_ensure_vert_color(MeshRenderData *rdata)
char (*vcol)[3] = rdata->vert_color;
if (vcol == NULL) {
if (rdata->edit_bmesh) {
-   /* TODO */
-   BLI_assert(0);
+   BMesh *bm = rdata->edit_bmesh->bm;
+   const int cd_loop_color_offset = 
CustomData_get_offset(>ldata, CD_MLOOPCOL);
+   if (cd_loop_color_offset == -1) {
+   goto fallback;
+   }
+
+   vcol = rdata->vert_color = MEM_mallocN(sizeof(*vcol) * 
rdata->loop_len, __func__);
+
+   BMIter fiter;
+   BMFace *face;
+   int i = 0;
+
+   BM_ITER_MESH(face, , bm, BM_FACES_OF_MESH) {
+   BMLoop *l_iter, *l_first;
+   l_iter = l_first = BM_FACE_FIRST_LOOP(face);
+   do {
+   const MLoopCol *lcol = 
BM_ELEM_CD_GET_VOID_P(l_iter, cd_loop_color_offset);
+   vcol[i][0] = lcol->r;
+   vcol[i][1] = lcol->g;
+   vcol[i][2] = lcol->b;
+   i += 1;
+   } while ((l_iter = l_iter->next) != l_first);
+   }
+   BLI_assert(i == rdata->loop_len);
}
else {
if (rdata->loopcol == NULL) {
@@ -1244,8 +1266,27 @@ static bool mesh_render_data_looptri_cos_vert_colors_get(
(MR_DATATYPE_VERT | MR_DATATYPE_LOOPTRI | MR_DATATYPE_LOOP | 
MR_DATATYPE_POLY | MR_DATATYPE_LOOPCOL));
 
if (rdata->edit_bmesh) {
-   /* TODO */
-   return false;
+   const BMLoop **bm_looptri = (const BMLoop 
**)rdata->edit_bmesh->looptris[tri_idx];
+
+   mesh_render_data_ensure_poly_normals_short(rdata);
+   mesh_render_data_ensure_vert_color(rdata);
+
+   short (*pnors_short)[3] = rdata->poly_normals_short;
+   short (*vnors_short)[3] = rdata->vert_normals_short;
+   char (*vcol)[3] = rdata->vert_color;
+
+   (*r_vert_cos)[0] = bm_looptri[0]->v->co;
+   (*r_vert_cos)[1] = bm_looptri[1]->v->co;
+   (*r_vert_cos)[2] = bm_looptri[2]->v->co;
+   (*r_vert_colors)[0] = vcol[BM_elem_index_get(bm_looptri[0]->v)];
+   (*r_vert_colors)[1] = vcol[BM_elem_index_get(bm_looptri[1]->v)];
+   (*r_vert_colors)[2] = vcol[BM_elem_index_get(bm_looptri[2]->v)];
+   *r_tri_nor = pnors_short[BM_elem_index_get(bm_looptri[0]->f)];
+   (*r_vert_nors)[0] = 
vnors_short[BM_elem_index_get(bm_looptri[0]->v)];
+   (*r_vert_nors)[1] = 
vnors_short[BM_elem_index_get(bm_looptri[1]->v)];
+   (*r_vert_nors)[2] = 
vnors_short[BM_elem_index_get(bm_looptri[2]->v)];
+
+   *r_is_smooth = BM_elem_flag_test_bool(bm_looptri[0]->f, 
BM_ELEM_SMOOTH);
}
else {
const MLoopTri *mlt = >mlooptri[tri_idx];

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


[Bf-blender-cvs] [d94e7936ee3] blender2.8: Cleanup: style & header guards

2017-05-07 Thread Campbell Barton
Commit: d94e7936ee3221a3760882d3054f5ae3b69f9459
Author: Campbell Barton
Date:   Mon May 8 11:44:58 2017 +1000
Branches: blender2.8
https://developer.blender.org/rBd94e7936ee3221a3760882d3054f5ae3b69f9459

Cleanup: style & header guards

===

M   source/blender/draw/engines/eevee/eevee_private.h
M   source/blender/draw/intern/draw_common.h
M   source/blender/draw/modes/draw_mode_engines.h
M   source/blender/nodes/composite/nodes/node_composite_image.c
M   source/blender/windowmanager/intern/wm_draw.c
M   source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c

===

diff --git a/source/blender/draw/engines/eevee/eevee_private.h 
b/source/blender/draw/engines/eevee/eevee_private.h
index 517926554f9..0c47af0f889 100644
--- a/source/blender/draw/engines/eevee/eevee_private.h
+++ b/source/blender/draw/engines/eevee/eevee_private.h
@@ -23,6 +23,9 @@
  *  \ingroup DNA
  */
 
+#ifndef __EEVEE_PRIVATE_H__
+#define __EEVEE_PRIVATE_H__
+
 struct Object;
 
 /* Minimum UBO is 16384 bytes */
@@ -300,3 +303,5 @@ static const float cubefacemat[6][4][4] = {
 {0.0, 0.0, 1.0, 0.0},
 {0.0, 0.0, 0.0, 1.0}},
 };
+
+#endif /* __EEVEE_PRIVATE_H__ */
diff --git a/source/blender/draw/intern/draw_common.h 
b/source/blender/draw/intern/draw_common.h
index d1af67fcdfd..d7ec08b2394 100644
--- a/source/blender/draw/intern/draw_common.h
+++ b/source/blender/draw/intern/draw_common.h
@@ -23,8 +23,8 @@
  *  \ingroup draw
  */
 
-#ifndef __DRAW_COMMON__
-#define __DRAW_COMMON__
+#ifndef __DRAW_COMMON_H__
+#define __DRAW_COMMON_H__
 
 struct DRWPass;
 struct DRWShadingGroup;
@@ -122,4 +122,4 @@ void DRW_shgroup_armature_edit(
 bool DRW_pose_mode_armature(
 struct Object *ob, struct Object *active_ob);
 
-#endif /* __DRAW_COMMON__ */
+#endif /* __DRAW_COMMON_H__ */
diff --git a/source/blender/draw/modes/draw_mode_engines.h 
b/source/blender/draw/modes/draw_mode_engines.h
index c3b4d5ee61a..23fedbba5a5 100644
--- a/source/blender/draw/modes/draw_mode_engines.h
+++ b/source/blender/draw/modes/draw_mode_engines.h
@@ -23,8 +23,8 @@
  *  \ingroup draw
  */
 
-#ifndef __DRAW_MODES_ENGINES_H__
-#define __DRAW_MODES_ENGINES_H__
+#ifndef __DRAW_MODE_ENGINES_H__
+#define __DRAW_MODE_ENGINES_H__
 
 extern DrawEngineType draw_engine_object_type;
 extern DrawEngineType draw_engine_edit_armature_type;
@@ -41,4 +41,4 @@ extern DrawEngineType draw_engine_particle_type;
 extern DrawEngineType draw_engine_pose_type;
 extern DrawEngineType draw_engine_sculpt_type;
 
-#endif /* __DRAW_MODES_ENGINES_H__ */
\ No newline at end of file
+#endif /* __DRAW_MODE_ENGINES_H__ */
\ No newline at end of file
diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c 
b/source/blender/nodes/composite/nodes/node_composite_image.c
index f1fdaa32ce4..30f877891b6 100644
--- a/source/blender/nodes/composite/nodes/node_composite_image.c
+++ b/source/blender/nodes/composite/nodes/node_composite_image.c
@@ -107,8 +107,8 @@ static void cmp_node_image_add_pass_output(bNodeTree 
*ntree, bNode *node,
 
BLI_strncpy(sockdata->pass_name, passname, 
sizeof(sockdata->pass_name));
 
-   sock_index = BLI_listbase_count(>outputs)-1;
-   if (sock_index != after_index+1) {
+   sock_index = BLI_listbase_count(>outputs) - 1;
+   if (sock_index != after_index + 1) {
bNodeSocket *after_sock = BLI_findlink(>outputs, 
after_index);
BLI_remlink(>outputs, sock);
BLI_insertlinkafter(>outputs, after_sock, sock);
@@ -218,9 +218,9 @@ static void cmp_node_rlayer_create_outputs(bNodeTree 
*ntree, bNode *node, LinkNo
 
if (scene) {
RenderEngineType *engine_type = 
RE_engines_find(scene->r.engine);
-   if(engine_type && engine_type->update_render_passes) {
+   if (engine_type && engine_type->update_render_passes) {
SceneRenderLayer *srl = BLI_findlink(>r.layers, 
node->custom1);
-   if(srl) {
+   if (srl) {
RLayerUpdateData *data = 
MEM_mallocN(sizeof(RLayerUpdateData), "render layer update data");
data->available_sockets = available_sockets;
data->prev_index = -1;
diff --git a/source/blender/windowmanager/intern/wm_draw.c 
b/source/blender/windowmanager/intern/wm_draw.c
index 22af98e26c6..3c176912409 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -518,10 +518,10 @@ static void wm_method_draw_triple(bContext *C, wmWindow 
*win)
bool copytex = false;
 
if (drawdata && drawdata->triple) {
-   #if 0 /* why do we need to clear before overwriting? */
+#if 0 /* why do we need to clear 

[Bf-blender-cvs] [1a869fb6b96] blender2.8: DWM: show weights in edit-mode

2017-05-07 Thread Campbell Barton
Commit: 1a869fb6b96c5f36d9db8cb7a87b6b01567ecd45
Author: Campbell Barton
Date:   Mon May 8 12:46:54 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB1a869fb6b96c5f36d9db8cb7a87b6b01567ecd45

DWM: show weights in edit-mode

Engine collection settings aren't currently flushed,
once they are this will work as expected.

===

M   source/blender/draw/intern/draw_manager.c
M   source/blender/draw/modes/edit_mesh_mode.c
M   source/blender/makesrna/intern/rna_scene.c

===

diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index 52b44039c0f..de7f0220c3b 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1615,10 +1615,14 @@ bool DRW_object_is_renderable(Object *ob)
if (ob->type == OB_MESH) {
if (ob == obedit) {
IDProperty *props = 
BKE_layer_collection_engine_evaluated_get(ob, COLLECTION_MODE_EDIT, "");
-   bool do_occlude_wire = 
BKE_collection_engine_property_value_get_bool(props, "show_occlude_wire");
-
-   if (do_occlude_wire)
+   bool do_show_occlude_wire = 
BKE_collection_engine_property_value_get_bool(props, "show_occlude_wire");
+   if (do_show_occlude_wire) {
+   return false;
+   }
+   bool do_show_weight = 
BKE_collection_engine_property_value_get_bool(props, "show_weight");
+   if (do_show_weight) {
return false;
+   }
}
}
 
diff --git a/source/blender/draw/modes/edit_mesh_mode.c 
b/source/blender/draw/modes/edit_mesh_mode.c
index 120d977c222..83bdd788900 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -55,6 +55,7 @@ extern char datatoc_gpu_shader_uniform_color_frag_glsl[];
 
 /* *** LISTS *** */
 typedef struct EDIT_MESH_PassList {
+   struct DRWPass *vcolor_faces;
struct DRWPass *depth_hidden_wire;
struct DRWPass *edit_face_overlay;
struct DRWPass *edit_face_occluded;
@@ -87,6 +88,8 @@ typedef struct EDIT_MESH_Data {
 /* *** STATIC *** */
 
 static struct {
+   /* weight/vert-color */
+   GPUShader *vcolor_face_shader;
GPUShader *overlay_tri_sh;
GPUShader *overlay_tri_fast_sh;
GPUShader *overlay_tri_vcol_sh;
@@ -103,6 +106,8 @@ static struct {
 } e_data = {NULL}; /* Engine data */
 
 typedef struct EDIT_MESH_PrivateData {
+   /* weight/vert-color */
+   DRWShadingGroup *fvcolor_shgrp;
DRWShadingGroup *depth_shgrp_hidden_wire;
 
DRWShadingGroup *fnormals_shgrp;
@@ -140,6 +145,10 @@ static void EDIT_MESH_engine_init(void *vedata)
(int)viewport_size[0], (int)viewport_size[1],
tex, ARRAY_SIZE(tex));
 
+   if (!e_data.vcolor_face_shader) {
+   e_data.vcolor_face_shader = 
GPU_shader_get_builtin_shader(GPU_SHADER_SIMPLE_LIGHTING_SMOOTH_COLOR_ALPHA);
+   }
+
if (!e_data.overlay_tri_sh) {
e_data.overlay_tri_sh = DRW_shader_create_with_lib(
datatoc_edit_mesh_overlay_vert_glsl,
@@ -302,6 +311,21 @@ static void EDIT_MESH_cache_init(void *vedata)
}
 
{
+   psl->vcolor_faces = DRW_pass_create(
+   "Vert Color Pass",
+   DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | 
DRW_STATE_DEPTH_LESS);
+
+   stl->g_data->fvcolor_shgrp = 
DRW_shgroup_create(e_data.vcolor_face_shader, psl->vcolor_faces);
+
+   static float light[3] = {-0.3f, 0.5f, 1.0f};
+   static float alpha = 1.0f;
+   static float world_light = 1.0f;  /* XXX, see: 
paint_vertex_mode.c */
+   DRW_shgroup_uniform_vec3(stl->g_data->fvcolor_shgrp, "light", 
light, 1);
+   DRW_shgroup_uniform_float(stl->g_data->fvcolor_shgrp, "alpha", 
, 1);
+   DRW_shgroup_uniform_float(stl->g_data->fvcolor_shgrp, "global", 
_light, 1);
+   }
+
+   {
/* Complementary Depth Pass */
psl->depth_hidden_wire = DRW_pass_create(
"Depth Pass Hidden Wire",
@@ -402,6 +426,8 @@ static void EDIT_MESH_cache_populate(void *vedata, Object 
*ob)
if (ob == obedit) {
IDProperty *ces_mode_ed = 
BKE_layer_collection_engine_evaluated_get(ob, COLLECTION_MODE_EDIT, "");
bool do_occlude_wire = 
BKE_collection_engine_property_value_get_bool(ces_mode_ed, "show_occlude_wire");
+   bool do_show_weight = 
BKE_collection_engine_property_value_get_bool(ces_mode_ed, "show_weight");
+
   

[Bf-blender-cvs] [d2bd9195d4b] blender2.8: Cleanup: naming

2017-05-07 Thread Campbell Barton
Commit: d2bd9195d4b9a5ba05b674e34ba92a81d3bcd9e2
Author: Campbell Barton
Date:   Mon May 8 11:15:28 2017 +1000
Branches: blender2.8
https://developer.blender.org/rBd2bd9195d4b9a5ba05b674e34ba92a81d3bcd9e2

Cleanup: naming

===

M   source/blender/draw/engines/basic/basic_engine.c
M   source/blender/draw/engines/clay/clay_engine.c
M   source/blender/draw/engines/external/external_engine.c
M   source/blender/draw/intern/DRW_render.h
M   source/blender/draw/intern/draw_manager.c

===

diff --git a/source/blender/draw/engines/basic/basic_engine.c 
b/source/blender/draw/engines/basic/basic_engine.c
index 16d9ca3ef0d..e10eaaac128 100644
--- a/source/blender/draw/engines/basic/basic_engine.c
+++ b/source/blender/draw/engines/basic/basic_engine.c
@@ -178,7 +178,7 @@ static void BASIC_cache_populate(void *vedata, Object *ob)
 {
BASIC_StorageList *stl = ((BASIC_Data *)vedata)->stl;
 
-   if (!DRW_is_object_renderable(ob))
+   if (!DRW_object_is_renderable(ob))
return;
 
struct Batch *geom = DRW_cache_object_surface_get(ob);
diff --git a/source/blender/draw/engines/clay/clay_engine.c 
b/source/blender/draw/engines/clay/clay_engine.c
index f7ca64e6288..fee1849f6e2 100644
--- a/source/blender/draw/engines/clay/clay_engine.c
+++ b/source/blender/draw/engines/clay/clay_engine.c
@@ -573,7 +573,7 @@ static void CLAY_cache_populate(void *vedata, Object *ob)
 
DRWShadingGroup *clay_shgrp;
 
-   if (!DRW_is_object_renderable(ob))
+   if (!DRW_object_is_renderable(ob))
return;
 
struct Batch *geom = DRW_cache_object_surface_get(ob);
diff --git a/source/blender/draw/engines/external/external_engine.c 
b/source/blender/draw/engines/external/external_engine.c
index 3b7595d18d1..f94194e29fc 100644
--- a/source/blender/draw/engines/external/external_engine.c
+++ b/source/blender/draw/engines/external/external_engine.c
@@ -125,7 +125,7 @@ static void EXTERNAL_cache_populate(void *vedata, Object 
*ob)
 {
EXTERNAL_StorageList *stl = ((EXTERNAL_Data *)vedata)->stl;
 
-   if (!DRW_is_object_renderable(ob))
+   if (!DRW_object_is_renderable(ob))
return;
 
struct Batch *geom = DRW_cache_object_surface_get(ob);
diff --git a/source/blender/draw/intern/DRW_render.h 
b/source/blender/draw/intern/DRW_render.h
index 9eb6ed86cd2..8db189022cb 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -318,7 +318,7 @@ struct LampEngineData *DRW_lamp_engine_data_get(Object *ob, 
struct RenderEngineT
 void DRW_lamp_engine_data_free(struct LampEngineData *led);
 
 /* Settings */
-bool DRW_is_object_renderable(struct Object *ob);
+bool DRW_object_is_renderable(struct Object *ob);
 
 /* Draw commands */
 void DRW_draw_pass(DRWPass *pass);
diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index 12300ee6d00..52b44039c0f 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1607,7 +1607,7 @@ struct DRWTextStore *DRW_text_cache_ensure(void)
 /** \name Settings
  * \{ */
 
-bool DRW_is_object_renderable(Object *ob)
+bool DRW_object_is_renderable(Object *ob)
 {
Scene *scene = DST.draw_ctx.scene;
Object *obedit = scene->obedit;

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


[Bf-blender-cvs] [1cfc48192c8] master: Fix T51432: Find Files case sensitive on win32

2017-05-07 Thread Campbell Barton
Commit: 1cfc48192c8555642f9fa6c03d96f558b46a0430
Author: Campbell Barton
Date:   Mon May 8 09:42:36 2017 +1000
Branches: master
https://developer.blender.org/rB1cfc48192c8555642f9fa6c03d96f558b46a0430

Fix T51432: Find Files case sensitive on win32

===

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

===

diff --git a/source/blender/blenkernel/intern/bpath.c 
b/source/blender/blenkernel/intern/bpath.c
index 487b8ffa2b5..f210c6aa7f3 100644
--- a/source/blender/blenkernel/intern/bpath.c
+++ b/source/blender/blenkernel/intern/bpath.c
@@ -243,7 +243,7 @@ static bool missing_files_find__recursive(
continue;  /* cant stat, don't bother with this file, 
could print debug info here */
 
if (S_ISREG(status.st_mode)) { /* is file */
-   if (STREQLEN(filename, de->d_name, FILE_MAX)) { /* name 
matches */
+   if (BLI_path_ncmp(filename, de->d_name, FILE_MAX) == 0) 
{ /* name matches */
/* open the file to read its size */
size = status.st_size;
if ((size > 0) && (size > *r_filesize)) { /* 
find the biggest file */

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


[Bf-blender-cvs] [415ff7467ca] master: UI: Cleanup VSE Properties Shelf

2017-05-07 Thread Mike Pan
Commit: 415ff7467ca937bca7d658e80d927388f5d1f0b1
Author: Mike Pan
Date:   Sun May 7 18:13:50 2017 -0400
Branches: master
https://developer.blender.org/rB415ff7467ca937bca7d658e80d927388f5d1f0b1

UI: Cleanup VSE Properties Shelf

The goal is to reduce wasted space and improve clarity in the 'N' panel of the 
VSE through layout changes.
The changes are intentional conservative to avoid making people re-learn 
anything.

Author: @mpan3

Differential Revision: https://developer.blender.org/D2439

===

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

===

diff --git a/release/scripts/startup/bl_ui/space_sequencer.py 
b/release/scripts/startup/bl_ui/space_sequencer.py
index 01da3b48f7d..ac26c3f4713 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -36,26 +36,35 @@ def act_strip(context):
 
 
 def draw_color_balance(layout, color_balance):
-col = layout.column()
+box = layout.box()
+split = box.split(percentage=0.35)
+col = split.column(align=True)
 col.label(text="Lift:")
-col.template_color_picker(color_balance, "lift", value_slider=True, 
cubic=True)
-row = col.row()
-row.prop(color_balance, "lift", text="")
-row.prop(color_balance, "invert_lift", text="Inverse")
-
-col = layout.column()
+col.separator()
+col.separator()
+col.prop(color_balance, "lift")
+col.prop(color_balance, "invert_lift", text="Invert", 
icon="ARROW_LEFTRIGHT")
+split.template_color_picker(color_balance, "lift", value_slider=True,  
cubic=True)
+
+box = layout.box()
+split = box.split(percentage=0.35)
+col = split.column(align=True)
 col.label(text="Gamma:")
-col.template_color_picker(color_balance, "gamma", value_slider=True, 
lock_luminosity=True, cubic=True)
-row = col.row()
-row.prop(color_balance, "gamma", text="")
-row.prop(color_balance, "invert_gamma", text="Inverse")
-
-col = layout.column()
+col.separator()
+col.separator()
+col.prop(color_balance, "gamma")
+col.prop(color_balance, "invert_gamma", text="Invert", 
icon="ARROW_LEFTRIGHT")
+split.template_color_picker(color_balance, "gamma", value_slider=True, 
lock_luminosity=True, cubic=True)
+
+box = layout.box()
+split = box.split(percentage=0.35)
+col = split.column(align=True)
 col.label(text="Gain:")
-col.template_color_picker(color_balance, "gain", value_slider=True, 
lock_luminosity=True, cubic=True)
-row = col.row()
-row.prop(color_balance, "gain", text="")
-row.prop(color_balance, "invert_gain", text="Inverse")
+col.separator()
+col.separator()
+col.prop(color_balance, "gain", text="Gain")
+col.prop(color_balance, "invert_gain", text="Invert", 
icon="ARROW_LEFTRIGHT")
+split.template_color_picker(color_balance, "gain", value_slider=True, 
lock_luminosity=True, cubic=True)
 
 
 class SEQUENCER_HT_header(Header):
@@ -500,16 +509,16 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
 frame_current = scene.frame_current
 strip = act_strip(context)
 
-split = layout.split(percentage=0.3)
+split = layout.split(percentage=0.25, align=True)
 split.label(text="Name:")
 split.prop(strip, "name", text="")
 
-split = layout.split(percentage=0.3)
+split = layout.split(percentage=0.25)
 split.label(text="Type:")
 split.prop(strip, "type", text="")
 
 if strip.type != 'SOUND':
-split = layout.split(percentage=0.3)
+split = layout.split(percentage=0.25)
 split.label(text="Blend:")
 split.prop(strip, "blend_type", text="")
 
@@ -518,16 +527,20 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
 sub.active = (not strip.mute)
 sub.prop(strip, "blend_alpha", text="Opacity", slider=True)
 row.prop(strip, "mute", toggle=True, icon_only=True)
-row.prop(strip, "lock", toggle=True, icon_only=True)
+
 else:
-row = layout.row(align=True)
-row.prop(strip, "mute", toggle=True, icon_only=True)
-row.prop(strip, "lock", toggle=True, icon_only=True)
+row = layout.row()
+row.prop(strip, "mute", toggle=True, icon_only=True, text='Mute', 
icon='MUTE_IPO_OFF')
 
 col = layout.column()
-sub = col.column()
-sub.enabled = not strip.lock
-sub.prop(strip, "channel")
+col.enabled = not strip.lock
+sub = col.row(align=True)
+
+sub = col.column(align=True)
+row = sub.row(align=True)
+row.prop(strip, "channel")
+row.prop(strip, "lock", toggle=True, icon_only=True)
+
 sub.prop(strip, "frame_start")
 sub.prop(strip, "frame_final_duration")
 
@@ -552,8 +565,6 @@ class 

[Bf-blender-cvs] [3f5ddbf7245] workspaces: Merge branch 'blender2.8' into workspaces

2017-05-07 Thread Julian Eisel
Commit: 3f5ddbf72451c6f2eb3914ebca79838557a81f51
Author: Julian Eisel
Date:   Mon May 8 00:19:46 2017 +0200
Branches: workspaces
https://developer.blender.org/rB3f5ddbf72451c6f2eb3914ebca79838557a81f51

Merge branch 'blender2.8' into workspaces

===



===



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


[Bf-blender-cvs] [9181f13af71] blender2.8: Merge branch 'master' into blender2.8

2017-05-07 Thread Julian Eisel
Commit: 9181f13af710f39e28368461f9979ce2052a55ee
Author: Julian Eisel
Date:   Mon May 8 00:19:22 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB9181f13af710f39e28368461f9979ce2052a55ee

Merge branch 'master' into blender2.8

===



===

diff --cc intern/cycles/device/device.h
index 21d29a801ae,527940e8f50..c22969d7dc6
--- a/intern/cycles/device/device.h
+++ b/intern/cycles/device/device.h
@@@ -228,28 -228,24 +228,37 @@@ struct DeviceDrawParams 
  };
  
  class Device {
+   friend class device_sub_ptr;
  protected:
 -  Device(DeviceInfo& info_, Stats _, bool background) : 
background(background), vertex_buffer(0), info(info_), stats(stats_) {}
 +  enum {
 +  FALLBACK_SHADER_STATUS_NONE = 0,
 +  FALLBACK_SHADER_STATUS_ERROR,
 +  FALLBACK_SHADER_STATUS_SUCCESS,
 +  };
 +
 +  Device(DeviceInfo& info_, Stats _, bool background) : 
background(background),
 +  vertex_buffer(0),
 +  fallback_status(FALLBACK_SHADER_STATUS_NONE), 
fallback_shader_program(0),
 +  info(info_), stats(stats_) {}
  
bool background;
string error_msg;
  
/* used for real time display */
unsigned int vertex_buffer;
 +  int fallback_status, fallback_shader_program;
 +  int image_texture_location, fullscreen_location;
 +
 +  bool bind_fallback_display_space_shader(const float width, const float 
height);
  
+   virtual device_ptr mem_alloc_sub_ptr(device_memory& /*mem*/, int 
/*offset*/, int /*size*/, MemoryType /*type*/)
+   {
+   /* Only required for devices that implement denoising. */
+   assert(false);
+   return (device_ptr) 0;
+   }
+   virtual void mem_free_sub_ptr(device_ptr /*ptr*/) {};
+ 
  public:
virtual ~Device();

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


[Bf-blender-cvs] [b7c756985a2] workspaces: Revert redundant workaround for buffer overflow

2017-05-07 Thread Julian Eisel
Commit: b7c756985a2b5c751c6ef48395a81a801677ede5
Author: Julian Eisel
Date:   Sun May 7 23:57:08 2017 +0200
Branches: workspaces
https://developer.blender.org/rBb7c756985a2b5c751c6ef48395a81a801677ede5

Revert redundant workaround for buffer overflow

This reverts commit 9ddb857c7a9b9ea7ae55ef39879497676d6d8e71.
Should be redundant after rB839bf119c1a774b475.

===

M   source/blender/editors/interface/interface_regions.c

===

diff --git a/source/blender/editors/interface/interface_regions.c 
b/source/blender/editors/interface/interface_regions.c
index 355b4f4d467..fd6d056f7d4 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -794,12 +794,8 @@ bool UI_search_item_add(uiSearchItems *items, const char 
*name, void *poin, int
return true;
}

-   if (items->names) {
-   MEM_freeN(items->names[items->totitem]);
-   int name_len = min_ii(strlen(name) + 1, items->maxstrlen);
-   items->names[items->totitem] = MEM_mallocN(name_len, __func__);
-   BLI_strncpy(items->names[items->totitem], name, name_len);
-   }
+   if (items->names)
+   BLI_strncpy(items->names[items->totitem], name, 
items->maxstrlen);
if (items->pointers)
items->pointers[items->totitem] = poin;
if (items->icons)

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


[Bf-blender-cvs] [9b1a5b942cd] workspaces: Better fix for reading fullscreens from old files

2017-05-07 Thread Julian Eisel
Commit: 9b1a5b942cdcccbfe6209fa65be3df58c8de4bce
Author: Julian Eisel
Date:   Sun May 7 23:26:42 2017 +0200
Branches: workspaces
https://developer.blender.org/rB9b1a5b942cdcccbfe6209fa65be3df58c8de4bce

Better fix for reading fullscreens from old files

Old fix was rBe38481e53b84db. We now solve this in a nicer way by doing
all workspace versioning after lib-linking.

===

M   source/blender/blenkernel/BKE_workspace.h
M   source/blender/blenkernel/intern/workspace.c
M   source/blender/blenloader/intern/readfile.c
M   source/blender/blenloader/intern/versioning_280.c

===

diff --git a/source/blender/blenkernel/BKE_workspace.h 
b/source/blender/blenkernel/BKE_workspace.h
index de251d2b2d2..78e45cf9950 100644
--- a/source/blender/blenkernel/BKE_workspace.h
+++ b/source/blender/blenkernel/BKE_workspace.h
@@ -65,9 +65,6 @@ void BKE_workspace_layout_remove(
 struct Main *bmain,
 WorkSpace *workspace, WorkSpaceLayout *layout) ATTR_NONNULL();
 
-void BKE_workspace_layouts_transfer(
-WorkSpace *workspace_dst, WorkSpace *workspace_src) ATTR_NONNULL();
-
 /*  */
 /* General Utils */
 
diff --git a/source/blender/blenkernel/intern/workspace.c 
b/source/blender/blenkernel/intern/workspace.c
index 4462833fe66..89535c02ba6 100644
--- a/source/blender/blenkernel/intern/workspace.c
+++ b/source/blender/blenkernel/intern/workspace.c
@@ -228,12 +228,6 @@ void BKE_workspace_layout_remove(
BLI_freelinkN(>layouts, layout);
 }
 
-void BKE_workspace_layouts_transfer(
-WorkSpace *workspace_dst, WorkSpace *workspace_src)
-{
-   BLI_movelisttolist(_dst->layouts, _src->layouts);
-}
-
 /*  */
 /* General Utils */
 
diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index a91dd3e7c18..b6c6381e251 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2786,9 +2786,6 @@ static void direct_link_cachefile(FileData *fd, CacheFile 
*cache_file)
 
 static void lib_link_workspaces(FileData *fd, Main *bmain)
 {
-   /* Note the NULL pointer checks for result of newlibadr. This is needed 
for reading old files from before the
-* introduction of workspaces (in do_versioning code we already created 
workspaces for screens of old file). */
-
BKE_WORKSPACE_ITER_BEGIN (workspace, bmain->workspaces.first) {
ID *id = BKE_workspace_id_get(workspace);
ListBase *layouts = BKE_workspace_layouts_get(workspace);
@@ -2798,15 +2795,13 @@ static void lib_link_workspaces(FileData *fd, Main 
*bmain)
BKE_WORKSPACE_LAYOUT_ITER_BEGIN (layout, layouts->first) {
bScreen *screen = newlibadr(fd, id->lib, 
BKE_workspace_layout_screen_get(layout));
 
-   if (screen) {
-   BKE_workspace_layout_screen_set(layout, screen);
+   BKE_workspace_layout_screen_set(layout, screen);
 
-   if (ID_IS_LINKED_DATABLOCK(id)) {
-   screen->winid = 0;
-   if (screen->temp) {
-   /* delete temp layouts when 
appending */
-   
BKE_workspace_layout_remove(bmain, workspace, layout);
-   }
+   if (ID_IS_LINKED_DATABLOCK(id)) {
+   screen->winid = 0;
+   if (screen->temp) {
+   /* delete temp layouts when appending */
+   BKE_workspace_layout_remove(bmain, 
workspace, layout);
}
}
} BKE_WORKSPACE_LAYOUT_ITER_END;
@@ -6533,9 +6528,10 @@ static void lib_link_windowmanager(FileData *fd, Main 
*main)
if (wm->id.tag & LIB_TAG_NEED_LINK) {
/* Note: WM IDProperties are never written to file, 
hence no need to read/link them here. */
for (win = wm->windows.first; win; win = win->next) {
-   /* Note: WM IDProperties are never written to 
file, hence no need to read/link them here. */
+   if (win->workspace_hook) { /* NULL for old 
files */
+   lib_link_workspace_instance_hook(fd, 
win->workspace_hook, >id);
+   }
win->scene = newlibadr(fd, wm->id.lib, 
win->scene);
-   lib_link_workspace_instance_hook(fd, 
win->workspace_hook, >id);
   

[Bf-blender-cvs] [ce28025eaf5] master: Remove unused node socket flag that was added in the render pass commit

2017-05-07 Thread Lukas Stockner
Commit: ce28025eaf5014f16460dd1cb798ce5292087d94
Author: Lukas Stockner
Date:   Sun May 7 20:32:51 2017 +0200
Branches: master
https://developer.blender.org/rBce28025eaf5014f16460dd1cb798ce5292087d94

Remove unused node socket flag that was added in the render pass commit

===

M   source/blender/compositor/intern/COM_NodeGraph.cpp
M   source/blender/editors/space_node/drawnode.c
M   source/blender/makesdna/DNA_node_types.h
M   source/blender/makesrna/intern/rna_nodetree.c

===

diff --git a/source/blender/compositor/intern/COM_NodeGraph.cpp 
b/source/blender/compositor/intern/COM_NodeGraph.cpp
index 891e64ed12b..c5096a6b352 100644
--- a/source/blender/compositor/intern/COM_NodeGraph.cpp
+++ b/source/blender/compositor/intern/COM_NodeGraph.cpp
@@ -179,8 +179,7 @@ void NodeGraph::add_bNodeLink(const NodeRange _range, 
bNodeLink *b_nodelink
/// @note: ignore invalid links
if (!(b_nodelink->flag & NODE_LINK_VALID))
return;
-   const int unavail_mask = SOCK_UNAVAIL | SOCK_VIRTUAL;
-   if ((b_nodelink->fromsock->flag & unavail_mask) || 
(b_nodelink->tosock->flag & unavail_mask))
+   if ((b_nodelink->fromsock->flag & SOCK_UNAVAIL) || 
(b_nodelink->tosock->flag & SOCK_UNAVAIL))
return;

/* Note: a DNA input socket can have multiple NodeInput in the 
compositor tree! (proxies)
diff --git a/source/blender/editors/space_node/drawnode.c 
b/source/blender/editors/space_node/drawnode.c
index 9b517425c1f..ad41aa0 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -3069,7 +3069,6 @@ static void std_node_socket_draw(bContext *C, uiLayout 
*layout, PointerRNA *ptr,
bNode *node = node_ptr->data;
bNodeSocket *sock = ptr->data;
int type = sock->typeinfo->type;
-   bool connected_to_virtual = (sock->link && (sock->link->fromsock->flag 
& SOCK_VIRTUAL));
/*int subtype = sock->typeinfo->subtype;*/

/* XXX not nice, eventually give this node its own socket type ... */
@@ -3078,7 +3077,7 @@ static void std_node_socket_draw(bContext *C, uiLayout 
*layout, PointerRNA *ptr,
return;
}
 
-   if ((sock->in_out == SOCK_OUT) || ((sock->flag & SOCK_IN_USE) && 
!connected_to_virtual) || (sock->flag & SOCK_HIDE_VALUE)) {
+   if ((sock->in_out == SOCK_OUT) || (sock->flag & SOCK_IN_USE) || 
(sock->flag & SOCK_HIDE_VALUE)) {
node_socket_button_label(C, layout, ptr, node_ptr, text);
return;
}
@@ -3591,7 +3590,6 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, 
bNodeLink *link)
 {
bool do_shaded = false;
bool do_triple = false;
-   bool do_dashed = false;
int th_col1 = TH_WIRE_INNER, th_col2 = TH_WIRE_INNER, th_col3 = TH_WIRE;

if (link->fromsock == NULL && link->tosock == NULL)
@@ -3608,8 +3606,6 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, 
bNodeLink *link)
return;
if (link->fromsock->flag & SOCK_UNAVAIL)
return;
-   if ((link->fromsock->flag & SOCK_VIRTUAL) || 
(link->tosock->flag & SOCK_VIRTUAL))
-   do_dashed = true;
 
if (link->flag & NODE_LINK_VALID) {
/* special indicated link, on drop-node */
@@ -3631,9 +3627,7 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, 
bNodeLink *link)
}
}
 
-   if (do_dashed) setlinestyle(3);
node_draw_link_bezier(v2d, snode, link, th_col1, do_shaded, th_col2, 
do_triple, th_col3);
-   if (do_dashed) setlinestyle(0);
 // node_draw_link_straight(v2d, snode, link, th_col1, do_shaded, th_col2, 
do_triple, th_col3);
 }
 
diff --git a/source/blender/makesdna/DNA_node_types.h 
b/source/blender/makesdna/DNA_node_types.h
index 0ba3e013c23..b922ac072b0 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -159,8 +159,7 @@ typedef enum eNodeSocketFlag {
SOCK_COLLAPSED = 64,/* socket collapsed in 
UI */
SOCK_HIDE_VALUE = 128,  /* hide socket value, 
if it gets auto default */
SOCK_AUTO_HIDDEN__DEPRECATED = 256, /* socket hidden automatically, 
to distinguish from manually hidden */
-   SOCK_NO_INTERNAL_LINK = 512,
-   SOCK_VIRTUAL = 1024 /* socket behaves like 
SOCK_UNAVAIL, but is drawn with dashed links */
+   SOCK_NO_INTERNAL_LINK = 512
 } eNodeSocketFlag;
 
 /* limit data in bNode to what we want to see saved? */
diff --git a/source/blender/makesrna/intern/rna_nodetree.c 
b/source/blender/makesrna/intern/rna_nodetree.c
index dfdd2ff293a..60b75fca689 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ 

[Bf-blender-cvs] [99184b77f9a] workspaces: Fix empty default workspace configuration

2017-05-07 Thread Julian Eisel
Commit: 99184b77f9a1d8d2f0e0e2c985f6238580353ff0
Author: Julian Eisel
Date:   Sun May 7 20:58:10 2017 +0200
Branches: workspaces
https://developer.blender.org/rB99184b77f9a1d8d2f0e0e2c985f6238580353ff0

Fix empty default workspace configuration

The default workspace configuration bundled with Blender was supposed to
contain the pre-2.8 default screen-layouts converted to workspaces ("3D
View Full", "Animation", "Compositing", ...). Apparently I committed the
configuration with only one workspace though ("General"), so correcting
now.

===

M   release/datafiles/workspaces.blend

===

diff --git a/release/datafiles/workspaces.blend 
b/release/datafiles/workspaces.blend
index 13cb8e27530..4e5e9646830 100644
Binary files a/release/datafiles/workspaces.blend and 
b/release/datafiles/workspaces.blend differ

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


[Bf-blender-cvs] [e518ea9b5ea] master: Cycles: Fix transform addressing in the denoiser code

2017-05-07 Thread Lukas Stockner
Commit: e518ea9b5ea0d2517aaf79594d2661a97c6b4a5e
Author: Lukas Stockner
Date:   Sun May 7 20:48:24 2017 +0200
Branches: master
https://developer.blender.org/rBe518ea9b5ea0d2517aaf79594d2661a97c6b4a5e

Cycles: Fix transform addressing in the denoiser code

===

M   intern/cycles/kernel/filter/filter_transform_gpu.h
M   intern/cycles/kernel/filter/filter_transform_sse.h

===

diff --git a/intern/cycles/kernel/filter/filter_transform_gpu.h 
b/intern/cycles/kernel/filter/filter_transform_gpu.h
index f7414aeed8a..68304e14143 100644
--- a/intern/cycles/kernel/filter/filter_transform_gpu.h
+++ b/intern/cycles/kernel/filter/filter_transform_gpu.h
@@ -109,7 +109,7 @@ ccl_device void 
kernel_filter_construct_transform(ccl_global float ccl_restrict_
/* Bake the feature scaling into the transformation matrix. */
for(int i = 0; i < DENOISE_FEATURES; i++) {
for(int j = 0; j < (*rank); j++) {
-   transform[i*DENOISE_FEATURES + j] *= feature_scale[i];
+   transform[(i*DENOISE_FEATURES + j)*transform_stride] *= 
feature_scale[i];
}
}
 }
diff --git a/intern/cycles/kernel/filter/filter_transform_sse.h 
b/intern/cycles/kernel/filter/filter_transform_sse.h
index 846f3ab3afa..ed3a92f6241 100644
--- a/intern/cycles/kernel/filter/filter_transform_sse.h
+++ b/intern/cycles/kernel/filter/filter_transform_sse.h
@@ -81,10 +81,6 @@ ccl_device void kernel_filter_construct_transform(float 
ccl_restrict_ptr buffer,
break;
float s = feature_matrix[i*DENOISE_FEATURES+i];
reduced_energy += s;
-   /* Bake the feature scaling into the transformation 
matrix. */
-   for(int j = 0; j < DENOISE_FEATURES; j++) {
-   transform[(*rank)*DENOISE_FEATURES + j] *= 
_mm_cvtss_f32(feature_scale[j]);
-   }
}
}
else {
@@ -92,10 +88,6 @@ ccl_device void kernel_filter_construct_transform(float 
ccl_restrict_ptr buffer,
float s = feature_matrix[i*DENOISE_FEATURES+i];
if(i >= 2 && sqrtf(s) < pca_threshold)
break;
-   /* Bake the feature scaling into the transformation 
matrix. */
-   for(int j = 0; j < DENOISE_FEATURES; j++) {
-   transform[(*rank)*DENOISE_FEATURES + j] *= 
_mm_cvtss_f32(feature_scale[j]);
-   }
}
}

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


[Bf-blender-cvs] [c9451f1cff4] master: [Cycles] Fix math problems in safe_logf

2017-05-07 Thread lazydodo
Commit: c9451f1cff4403855d5a77c15cfd428e0a9ebe87
Author: lazydodo
Date:   Sun May 7 09:16:14 2017 -0600
Branches: master
https://developer.blender.org/rBc9451f1cff4403855d5a77c15cfd428e0a9ebe87

[Cycles] Fix math problems in safe_logf

log(0) is undefined and should not have been included
log(1) == 0, dividing by zero is not recommended

===

M   intern/cycles/util/util_math.h

===

diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h
index 12abd8e201e..b719640b19c 100644
--- a/intern/cycles/util/util_math.h
+++ b/intern/cycles/util/util_math.h
@@ -492,17 +492,17 @@ ccl_device float safe_powf(float a, float b)
return compatible_powf(a, b);
 }
 
-ccl_device float safe_logf(float a, float b)
+ccl_device float safe_divide(float a, float b)
 {
-   if(UNLIKELY(a < 0.0f || b < 0.0f))
-   return 0.0f;
-
-   return logf(a)/logf(b);
+   return (b != 0.0f)? a/b: 0.0f;
 }
 
-ccl_device float safe_divide(float a, float b)
+ccl_device float safe_logf(float a, float b)
 {
-   return (b != 0.0f)? a/b: 0.0f;
+   if(UNLIKELY(a <= 0.0f || b <= 0.0f))
+   return 0.0f;
+
+   return safe_divide(logf(a),logf(b));
 }
 
 ccl_device float safe_modulo(float a, float b)

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


[Bf-blender-cvs] [3cd27374ee5] master: Color management: add Filmic view transform to Blender configuration.

2017-05-07 Thread Brecht Van Lommel
Commit: 3cd27374ee53bc2ae3fd08b0b73c0a3118f81020
Author: Brecht Van Lommel
Date:   Sun May 7 16:41:38 2017 +0200
Branches: master
https://developer.blender.org/rB3cd27374ee53bc2ae3fd08b0b73c0a3118f81020

Color management: add Filmic view transform to Blender configuration.

* "Filmic" and "False Color" view transforms added (sRGB display device only).
* "Very Low/Low/Base/High/Very High Contrast" looks added.
* Added filtering so that Filmic only shows look names prefixed with "Filmic - 
".

Filmic Dynamic Range LUT configuration created by Troy James Sobotka with
special thanks and feedback from Guillermo, Claudio Rocha, Bassam Kurdali,
Eugenio Pignataro, Henri Hebeisen, Jason Clarke, Haarm-Peter Duiker, Thomas
Mansencal, and Timothy Lottes.

Differential Revision: https://developer.blender.org/D2659

===

M   release/datafiles/colormanagement/config.ocio
A   release/datafiles/colormanagement/filmic/filmic_desat65cube.spi3d
A   release/datafiles/colormanagement/filmic/filmic_false_color.spi3d
A   release/datafiles/colormanagement/filmic/filmic_to_0-35_1-30.spi1d
A   release/datafiles/colormanagement/filmic/filmic_to_0-48_1-09.spi1d
A   release/datafiles/colormanagement/filmic/filmic_to_0-60_1-04.spi1d
A   release/datafiles/colormanagement/filmic/filmic_to_0-70_1-03.spi1d
A   release/datafiles/colormanagement/filmic/filmic_to_0-85_1-011.spi1d
A   release/datafiles/colormanagement/filmic/filmic_to_0.99_1-0075.spi1d
A   release/datafiles/colormanagement/filmic/filmic_to_1.20_1-00.spi1d
M   source/blender/imbuf/IMB_colormanagement.h
M   source/blender/imbuf/intern/IMB_colormanagement_intern.h
M   source/blender/imbuf/intern/colormanagement.c
M   source/blender/makesrna/intern/rna_color.c

===

diff --git a/release/datafiles/colormanagement/config.ocio 
b/release/datafiles/colormanagement/config.ocio
index 924a140d6f3..5bed23cf210 100644
--- a/release/datafiles/colormanagement/config.ocio
+++ b/release/datafiles/colormanagement/config.ocio
@@ -2,11 +2,16 @@
 #
 # Based on aces, nuke-default and spi configurations from OpenColorIO-Config
 #
+# Filmic Dynamic Range LUT configuration crafted by Troy James Sobotka with
+# special thanks and feedback from Guillermo, Claudio Rocha, Bassam Kurdali,
+# Eugenio Pignataro, Henri Hebeisen, Jason Clarke, Haarm-Peter Duiker, Thomas
+# Mansencal, and Timothy Lottes.
+#
 # See ocio-license.txt for details.
 
 ocio_profile_version: 1
 
-search_path: luts
+search_path: "luts:filmic"
 strictparsing: true
 luma: [0.2126, 0.7152, 0.0722]
 
@@ -17,6 +22,7 @@ roles:
 
   # Internal scene linear space
   scene_linear: Linear
+  rendering: Linear
 
   # Default color space for byte image
   default_byte: sRGB
@@ -31,13 +37,18 @@ roles:
   color_picking: Raw
   texture_paint: Raw
 
+  # Non-color data
+  data: Non-Color
+
 displays:
   sRGB:
 - ! {name: Default, colorspace: sRGB}
+- ! {name: Filmic, colorspace: Filmic sRGB}
 - ! {name: RRT, colorspace: rrt_srgb}
 - ! {name: Film, colorspace: srgb8}
 - ! {name: Raw, colorspace: Raw}
 - ! {name: Log, colorspace: lg10}
+- ! {name: False Color, colorspace: False Color}
   DCI-P3:
 - ! {name: RRT, colorspace: rrt_p3dci}
 - ! {name: Film, colorspace: p3dci8}
@@ -61,7 +72,7 @@ active_views: [Default, RRT, Raw, Log]
 colorspaces:
   - !
 name: Linear
-family: aces
+family: linear
 equalitygroup:
 bitdepth: 32f
 description: |
@@ -101,7 +112,7 @@ colorspaces:
 
   - !
 name: Linear ACES
-family:
+family: linear
 equalitygroup:
 bitdepth: 32f
 description: |
@@ -113,7 +124,7 @@ colorspaces:
 
   - !
 name: rrt_srgb
-family: rrt
+family: display
 equalitygroup:
 bitdepth: 32f
 isdata: false
@@ -141,7 +152,7 @@ colorspaces:
 
   - !
 name: rrt_rec709
-family: rrt
+family: display
 equalitygroup:
 bitdepth: 32f
 isdata: false
@@ -155,7 +166,7 @@ colorspaces:
 
   - !
 name: rrt_p3dci
-family: rrt
+family: display
 equalitygroup:
 bitdepth: 32f
 isdata: false
@@ -169,7 +180,7 @@ colorspaces:
 
   - !
 name: XYZ
-family:
+family: linear
 equalitygroup:
 bitdepth: 32f
 isdata: false
@@ -182,7 +193,7 @@ colorspaces:
 
   - !
 name: rrt_xyz
-family: rrt
+family: display
 equalitygroup:
 bitdepth: 32f
 isdata: false
@@ -287,8 +298,108 @@ colorspaces:
 - ! {src: Linear, dst: lg10}
 - ! {src: colorworks_filmlg_to_p3.3dl, interpolation: 
linear}
 
+  - !
+name: Filmic Log
+family: log
+equalitygroup:
+bitdepth: 32f
+description: |
+  Log based filmic shaper with 16.5 stops of latitude, and 25 stops of 
dynamic range.
+isdata: false
+allocation: lg2
+allocationvars: [-12.473931188, 12.526068812]
+from_reference: !
+  

[Bf-blender-cvs] [29c5692eba0] blender2.8: Draw Manager: Fix multiple timer query issued for one pass.

2017-05-07 Thread Clément Foucault
Commit: 29c5692eba0cbf48fc54b65d533ab200ee62e922
Author: Clément Foucault
Date:   Sat May 6 17:00:37 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB29c5692eba0cbf48fc54b65d533ab200ee62e922

Draw Manager: Fix multiple timer query issued for one pass.

===

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 04bf7eea0bd..52bdf05e26a 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1512,8 +1512,6 @@ void DRW_draw_pass(DRWPass *pass)
DRW_state_set(pass->state);
BLI_listbase_clear(_texs);
 
-   pass->wasdrawn = true;
-
/* Init Timer queries */
if (pass->timer_queries[0] == 0) {
pass->front_idx = 0;
@@ -1532,8 +1530,10 @@ void DRW_draw_pass(DRWPass *pass)
pass->front_idx = tmp;
}
 
-   /* issue query for the next frame */
-   glBeginQuery(GL_TIME_ELAPSED, pass->timer_queries[pass->back_idx]);
+   if (!pass->wasdrawn) {
+   /* issue query for the next frame */
+   glBeginQuery(GL_TIME_ELAPSED, 
pass->timer_queries[pass->back_idx]);
+   }
 
for (DRWShadingGroup *shgroup = pass->shgroups.first; shgroup; shgroup 
= shgroup->next) {
draw_shgroup(shgroup, pass->state);
@@ -1551,7 +1551,11 @@ void DRW_draw_pass(DRWPass *pass)
DST.shader = NULL;
}
 
-   glEndQuery(GL_TIME_ELAPSED);
+   if (!pass->wasdrawn) {
+   glEndQuery(GL_TIME_ELAPSED);
+   }
+
+   pass->wasdrawn = true;
 }
 
 void DRW_draw_callbacks_pre_scene(void)

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


[Bf-blender-cvs] [c47926542ac] blender2.8: GPUMaterial: Fix regressions concerning background texco

2017-05-07 Thread Clément Foucault
Commit: c47926542acf1fc342b4d0b8f7ccaf1e3a8be6d8
Author: Clément Foucault
Date:   Sun May 7 15:22:25 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBc47926542acf1fc342b4d0b8f7ccaf1e3a8be6d8

GPUMaterial: Fix regressions concerning background texco

===

M   source/blender/draw/intern/draw_manager.c
M   source/blender/gpu/intern/gpu_codegen.c
M   source/blender/gpu/shaders/gpu_shader_material.glsl

===

diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index 010684889bc..12300ee6d00 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -160,6 +160,7 @@ struct DRWInterface {
int viewprojectioninverse;
int normal;
int worldnormal;
+   int camtexfac;
int eye;
/* Dynamic batch */
GLuint instance_vbo;
@@ -528,6 +529,7 @@ static DRWInterface *DRW_interface_create(GPUShader *shader)
interface->modelviewprojection = GPU_shader_get_uniform(shader, 
"ModelViewProjectionMatrix");
interface->normal = GPU_shader_get_uniform(shader, "NormalMatrix");
interface->worldnormal = GPU_shader_get_uniform(shader, 
"WorldNormalMatrix");
+   interface->camtexfac = GPU_shader_get_uniform(shader, 
"CameraTexCoFactors");
interface->eye = GPU_shader_get_uniform(shader, "eye");
interface->instance_count = 0;
interface->attribs_count = 0;
@@ -1369,6 +1371,9 @@ static void draw_geometry(DRWShadingGroup *shgroup, Batch 
*geom, const float (*o
if (interface->worldnormal != -1) {
GPU_shader_uniform_vector(shgroup->shader, 
interface->worldnormal, 9, 1, (float *)wn);
}
+   if (interface->camtexfac != -1) {
+   GPU_shader_uniform_vector(shgroup->shader, 
interface->camtexfac, 4, 1, (float *)rv3d->viewcamtexcofac);
+   }
if (interface->eye != -1) {
GPU_shader_uniform_vector(shgroup->shader, interface->eye, 3, 
1, (float *)eye);
}
diff --git a/source/blender/gpu/intern/gpu_codegen.c 
b/source/blender/gpu/intern/gpu_codegen.c
index 0e230bc5037..8e97b208877 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -624,6 +624,8 @@ static void codegen_call_functions(DynStr *ds, ListBase 
*nodes, GPUOutput *final
else if (input->source == GPU_SOURCE_BUILTIN) {
if (input->builtin == GPU_INVERSE_VIEW_MATRIX)
BLI_dynstr_append(ds, "viewinv");
+   else if (input->builtin == 
GPU_CAMERA_TEXCO_FACTORS)
+   BLI_dynstr_append(ds, "camtexfac");
else if (input->builtin == 
GPU_INVERSE_OBJECT_MATRIX)
BLI_dynstr_append(ds, "objinv");
else if (input->builtin == GPU_VIEW_POSITION)
@@ -693,6 +695,8 @@ static char *code_generate_fragment(ListBase *nodes, 
GPUOutput *output, bool use
BLI_dynstr_append(ds, "void main()\n{\n");
 
if (use_new_shading) {
+   if (builtins & GPU_CAMERA_TEXCO_FACTORS)
+   BLI_dynstr_append(ds, "\tvec4 camtexfac = 
CameraTexCoFactors;\n");
if (builtins & GPU_INVERSE_OBJECT_MATRIX)
BLI_dynstr_append(ds, "\tmat4 objinv = 
ModelMatrixInverse;\n");
if (builtins & GPU_INVERSE_VIEW_MATRIX)
@@ -701,9 +705,10 @@ static char *code_generate_fragment(ListBase *nodes, 
GPUOutput *output, bool use
BLI_dynstr_append(ds, "\tvec3 facingnormal = 
gl_FrontFacing? viewNormal: -viewNormal;\n");
if (builtins & GPU_VIEW_POSITION)
BLI_dynstr_append(ds, "\tvec3 viewposition = 
viewPosition;\n");
-
}
else {
+   if (builtins & GPU_CAMERA_TEXCO_FACTORS)
+   BLI_dynstr_append(ds, "\tvec4 camtexfac = 
unfcameratexfactors;\n");
if (builtins & GPU_INVERSE_OBJECT_MATRIX)
BLI_dynstr_append(ds, "\tmat4 objinv = unfinvobmat;\n");
if (builtins & GPU_INVERSE_VIEW_MATRIX)
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl 
b/source/blender/gpu/shaders/gpu_shader_material.glsl
index db137c78873..aadff69840a 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -10,6 +10,7 @@ uniform mat4 ModelViewMatrixInverse;
 uniform mat4 ViewMatrixInverse;
 uniform mat4 ProjectionMatrixInverse;
 uniform mat3 NormalMatrix;
+uniform vec4 CameraTexCoFactors;
 
 #if __VERSION__ == 120
   #define fragColor gl_FragColor
@@ -2837,20 +2838,18 @@ void background_transform_to_world(vec3 viewvec, out 
vec3 

[Bf-blender-cvs] [0aa2a662b91] blender2.8: Eevee: Add Bloom post process.

2017-05-07 Thread Clément Foucault
Commit: 0aa2a662b91a33c6457408a02f92cfdb82bcaaee
Author: Clément Foucault
Date:   Sun May 7 14:27:43 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB0aa2a662b91a33c6457408a02f92cfdb82bcaaee

Eevee: Add Bloom post process.

Based on Kino/Bloom v2 - Bloom filter for Unity
MIT license.

===

M   source/blender/draw/CMakeLists.txt
M   source/blender/draw/engines/eevee/eevee_effects.c
M   source/blender/draw/engines/eevee/eevee_private.h
A   source/blender/draw/engines/eevee/shaders/effect_bloom_frag.glsl
M   source/blender/draw/intern/draw_manager.c

===

diff --git a/source/blender/draw/CMakeLists.txt 
b/source/blender/draw/CMakeLists.txt
index 64371d74960..0b229ecee8d 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -114,6 +114,7 @@ 
data_to_c_simple(engines/eevee/shaders/default_world_frag.glsl SRC)
 data_to_c_simple(engines/eevee/shaders/background_vert.glsl SRC)
 data_to_c_simple(engines/eevee/shaders/lit_surface_frag.glsl SRC)
 data_to_c_simple(engines/eevee/shaders/lit_surface_vert.glsl SRC)
+data_to_c_simple(engines/eevee/shaders/effect_bloom_frag.glsl SRC)
 data_to_c_simple(engines/eevee/shaders/effect_motion_blur_frag.glsl SRC)
 data_to_c_simple(engines/eevee/shaders/probe_filter_frag.glsl SRC)
 data_to_c_simple(engines/eevee/shaders/probe_sh_frag.glsl SRC)
diff --git a/source/blender/draw/engines/eevee/eevee_effects.c 
b/source/blender/draw/engines/eevee/eevee_effects.c
index dfae27b9cec..2279f0a6b44 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -43,13 +43,22 @@ typedef struct EEVEE_ProbeData {
 
 /* TODO Option */
 #define ENABLE_EFFECT_MOTION_BLUR 1
+#define ENABLE_EFFECT_BLOOM 1
 
 static struct {
struct GPUShader *motion_blur_sh;
+
+   /* Bloom */
+   struct GPUShader *bloom_blit_sh[2];
+   struct GPUShader *bloom_downsample_sh[2];
+   struct GPUShader *bloom_upsample_sh[2];
+   struct GPUShader *bloom_resolve_sh[2];
+
struct GPUShader *tonemap_sh;
 } e_data = {NULL}; /* Engine data */
 
 extern char datatoc_effect_motion_blur_frag_glsl[];
+extern char datatoc_effect_bloom_frag_glsl[];
 extern char datatoc_tonemap_frag_glsl[];
 
 void EEVEE_effects_init(EEVEE_Data *vedata)
@@ -70,18 +79,37 @@ void EEVEE_effects_init(EEVEE_Data *vedata)
e_data.motion_blur_sh = 
DRW_shader_create_fullscreen(datatoc_effect_motion_blur_frag_glsl, NULL);
}
 
+   if (!e_data.bloom_blit_sh[0]) {
+   e_data.bloom_blit_sh[0] = 
DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define 
STEP_BLIT\n");
+   e_data.bloom_blit_sh[1] = 
DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define 
STEP_BLIT\n"
+   
   "#define HIGH_QUALITY\n");
+
+   e_data.bloom_downsample_sh[0] = 
DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define 
STEP_DOWNSAMPLE\n");
+   e_data.bloom_downsample_sh[1] = 
DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define 
STEP_DOWNSAMPLE\n"
+   
 "#define HIGH_QUALITY\n");
+
+   e_data.bloom_upsample_sh[0] = 
DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define 
STEP_UPSAMPLE\n");
+   e_data.bloom_upsample_sh[1] = 
DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define 
STEP_UPSAMPLE\n"
+   
   "#define HIGH_QUALITY\n");
+
+   e_data.bloom_resolve_sh[0] = 
DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define 
STEP_RESOLVE\n");
+   e_data.bloom_resolve_sh[1] = 
DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define 
STEP_RESOLVE\n"
+   
  "#define HIGH_QUALITY\n");
+   }
+
if (!e_data.tonemap_sh) {
e_data.tonemap_sh = 
DRW_shader_create_fullscreen(datatoc_tonemap_frag_glsl, NULL);
}
 
if (!stl->effects) {
stl->effects = MEM_callocN(sizeof(EEVEE_EffectsInfo), 
"EEVEE_EffectsInfo");
+   stl->effects->enabled_effects = 0;
}
 
+#if ENABLE_EFFECT_MOTION_BLUR
{
/* Update Motion Blur Matrices */
EEVEE_EffectsInfo *effects = stl->effects;
-#if ENABLE_EFFECT_MOTION_BLUR
const DRWContextState *draw_ctx = DRW_context_state_get();
Scene *scene = draw_ctx->scene;
View3D *v3d = draw_ctx->v3d;
@@ -124,18 

[Bf-blender-cvs] [2a0c91b70c4] blender2.8: GPUViewport: Make Depth texture not depth testable.

2017-05-07 Thread Clément Foucault
Commit: 2a0c91b70c40485c05151fba5e3313cf4800559b
Author: Clément Foucault
Date:   Sun May 7 14:29:51 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB2a0c91b70c40485c05151fba5e3313cf4800559b

GPUViewport: Make Depth texture not depth testable.

===

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

===

diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index 253b3e680c9..010684889bc 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1443,7 +1443,6 @@ static void draw_shgroup(DRWShadingGroup *shgroup, 
DRWState pass_state)
}
tex = *((GPUTexture **)uni->value);
GPU_texture_bind(tex, uni->bindloc);
-   GPU_texture_compare_mode(tex, false);
 
bound_tex = 
MEM_callocN(sizeof(DRWBoundTexture), "DRWBoundTexture");
bound_tex->tex = tex;
diff --git a/source/blender/gpu/intern/gpu_viewport.c 
b/source/blender/gpu/intern/gpu_viewport.c
index 98c3613e1e2..c116d035f60 100644
--- a/source/blender/gpu/intern/gpu_viewport.c
+++ b/source/blender/gpu/intern/gpu_viewport.c
@@ -267,11 +267,20 @@ void GPU_viewport_bind(GPUViewport *viewport, const rcti 
*rect)
 
/* Depth */
dtxl->depth = GPU_texture_create_depth(rect_w, rect_h, NULL);
-   if (!dtxl->depth) {
+
+   if (dtxl->depth) {
+   /* Define texture parameters */
+   GPU_texture_bind(dtxl->depth, 0);
+   GPU_texture_compare_mode(dtxl->depth, false);
+   GPU_texture_filter_mode(dtxl->depth, true);
+   GPU_texture_unbind(dtxl->depth);
+   }
+   else {
ok = false;
goto cleanup;
}
-   else if (!GPU_framebuffer_texture_attach(dfbl->default_fb, 
dtxl->depth, 0, 0)) {
+
+   if (!GPU_framebuffer_texture_attach(dfbl->default_fb, 
dtxl->depth, 0, 0)) {
ok = false;
goto cleanup;
}

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


[Bf-blender-cvs] [104e6a7b8a3] blender2.8: GPUMaterial: Make background not transparent

2017-05-07 Thread Clément Foucault
Commit: 104e6a7b8a3cf9fbd2cd6dc79e3dbc766a83419a
Author: Clément Foucault
Date:   Sun May 7 14:28:13 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB104e6a7b8a3cf9fbd2cd6dc79e3dbc766a83419a

GPUMaterial: Make background not transparent

===

M   source/blender/gpu/shaders/gpu_shader_material.glsl

===

diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl 
b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 99186064969..db137c78873 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -3880,7 +3880,7 @@ void node_output_material(vec4 surface, vec4 volume, 
float displacement, out vec
 
 void node_output_world(vec4 surface, vec4 volume, out vec4 result)
 {
-   result = surface;
+   result = vec4(surface.rgb, 1.0);
 }
 
 void convert_metallic_to_specular(vec4 basecol, float metallic, float 
specular_fac, out vec4 diffuse, out vec4 f0)

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


[Bf-blender-cvs] [43b374e8c54] master: Cycles: Implement denoising option for reducing noise in the rendered image

2017-05-07 Thread Lukas Stockner
Commit: 43b374e8c5430488a302298b1026faa1c3a231e9
Author: Lukas Stockner
Date:   Sun May 7 14:40:58 2017 +0200
Branches: master
https://developer.blender.org/rB43b374e8c5430488a302298b1026faa1c3a231e9

Cycles: Implement denoising option for reducing noise in the rendered image

This commit contains the first part of the new Cycles denoising option,
which filters the resulting image using information gathered during rendering
to get rid of noise while preserving visual features as well as possible.

To use the option, enable it in the render layer options. The default settings
fit a wide range of scenes, but the user can tweak individual settings to
control the tradeoff between a noise-free image, image details, and calculation
time.

Note that the denoiser may still change in the future and that some features
are not implemented yet. The most important missing feature is animation
denoising, which uses information from multiple frames at once to produce a
flicker-free and smoother result. These features will be added in the future.

Finally, thanks to all the people who supported this project:

- Google (through the GSoC) and Theory Studios for sponsoring the development
- The authors of the papers I used for implementing the denoiser (more details
  on them will be included in the technical docs)
- The other Cycles devs for feedback on the code, especially Sergey for
  mentoring the GSoC project and Brecht for the code review!
- And of course the users who helped with testing, reported bugs and things
  that could and/or should work better!

===

M   intern/cycles/blender/addon/engine.py
M   intern/cycles/blender/addon/properties.py
M   intern/cycles/blender/addon/ui.py
M   intern/cycles/blender/blender_session.cpp
M   intern/cycles/blender/blender_session.h
M   intern/cycles/blender/blender_sync.cpp
M   intern/cycles/blender/blender_sync.h
M   intern/cycles/device/CMakeLists.txt
M   intern/cycles/device/device.cpp
M   intern/cycles/device/device.h
M   intern/cycles/device/device_cpu.cpp
M   intern/cycles/device/device_cuda.cpp
A   intern/cycles/device/device_denoising.cpp
A   intern/cycles/device/device_denoising.h
M   intern/cycles/device/device_memory.h
M   intern/cycles/device/device_multi.cpp
M   intern/cycles/device/device_split_kernel.cpp
M   intern/cycles/device/device_split_kernel.h
M   intern/cycles/device/device_task.cpp
M   intern/cycles/device/device_task.h
M   intern/cycles/device/opencl/opencl.h
M   intern/cycles/device/opencl/opencl_base.cpp
M   intern/cycles/device/opencl/opencl_mega.cpp
M   intern/cycles/device/opencl/opencl_split.cpp
M   intern/cycles/device/opencl/opencl_util.cpp
M   intern/cycles/kernel/CMakeLists.txt
M   intern/cycles/kernel/closure/bsdf.h
M   intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
M   intern/cycles/kernel/closure/bsdf_diffuse.h
M   intern/cycles/kernel/closure/bsdf_diffuse_ramp.h
M   intern/cycles/kernel/closure/bsdf_microfacet.h
M   intern/cycles/kernel/closure/bsdf_microfacet_multi.h
M   intern/cycles/kernel/closure/bsdf_oren_nayar.h
M   intern/cycles/kernel/closure/bsdf_phong_ramp.h
M   intern/cycles/kernel/closure/bsdf_principled_diffuse.h
M   intern/cycles/kernel/closure/bsdf_principled_sheen.h
M   intern/cycles/kernel/closure/bsdf_toon.h
M   intern/cycles/kernel/closure/bssrdf.h
A   intern/cycles/kernel/filter/filter.h
A   intern/cycles/kernel/filter/filter_defines.h
A   intern/cycles/kernel/filter/filter_features.h
A   intern/cycles/kernel/filter/filter_features_sse.h
A   intern/cycles/kernel/filter/filter_kernel.h
A   intern/cycles/kernel/filter/filter_nlm_cpu.h
A   intern/cycles/kernel/filter/filter_nlm_gpu.h
A   intern/cycles/kernel/filter/filter_prefilter.h
A   intern/cycles/kernel/filter/filter_reconstruction.h
A   intern/cycles/kernel/filter/filter_transform.h
A   intern/cycles/kernel/filter/filter_transform_gpu.h
A   intern/cycles/kernel/filter/filter_transform_sse.h
M   intern/cycles/kernel/geom/geom_triangle.h
M   intern/cycles/kernel/kernel.h
M   intern/cycles/kernel/kernel_accumulate.h
M   intern/cycles/kernel/kernel_compat_cpu.h
M   intern/cycles/kernel/kernel_compat_cuda.h
M   intern/cycles/kernel/kernel_compat_opencl.h
M   intern/cycles/kernel/kernel_light.h
M   intern/cycles/kernel/kernel_passes.h
M   intern/cycles/kernel/kernel_path.h
M   intern/cycles/kernel/kernel_path_branched.h
M   intern/cycles/kernel/kernel_path_state.h
M   intern/cycles/kernel/kernel_path_surface.h
M   intern/cycles/kernel/kernel_path_volume.h
M   intern/cycles/kernel/kernel_projection.h
M   intern/cycles/kernel/kernel_shader.h
M   intern/cycles/kernel/kernel_types.h
A   intern/cycles/kernel/kernels/cpu/filter.cpp
A