[Bf-blender-cvs] [f94a460] master: [msvc/make.bat] Detect spaces in the build path and error out.

2016-11-01 Thread lazydodo
Commit: f94a460397a86beb9f71e665e8f484fa4e10ebdc
Author: lazydodo
Date:   Tue Nov 1 15:30:12 2016 -0600
Branches: master
https://developer.blender.org/rBf94a460397a86beb9f71e665e8f484fa4e10ebdc

[msvc/make.bat] Detect spaces in the build path and error out.

===

M   make.bat

===

diff --git a/make.bat b/make.bat
index c7f2dbb..74148e5 100644
--- a/make.bat
+++ b/make.bat
@@ -4,6 +4,11 @@ REM This is for users who like to configure & build Blender 
with a single comman
 
 setlocal ENABLEEXTENSIONS
 set BLENDER_DIR=%~dp0
+set BLENDER_DIR_NOSPACES=%BLENDER_DIR: =%
+if not "%BLENDER_DIR%"=="%BLENDER_DIR_NOSPACES%" ( 
+   echo There are spaces detected in the build path "%BLENDER_DIR%", this 
is currently not supported, exiting 
+   goto EOF
+)
 set BUILD_DIR=%BLENDER_DIR%..\build_windows
 set BUILD_TYPE=Release
 rem reset all variables so they do not get accidentally get carried over from 
previous builds

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


[Bf-blender-cvs] [13ee9b8] master: Change frame for animations should not bein the UNDO stack

2016-11-01 Thread Dalai Felinto
Commit: 13ee9b8ebe08ee95478f51537f10e9a1b1e4d863
Author: Dalai Felinto
Date:   Tue Nov 1 22:09:42 2016 +0100
Branches: master
https://developer.blender.org/rB13ee9b8ebe08ee95478f51537f10e9a1b1e4d863

Change frame for animations should not bein the UNDO stack

Request from Hjalti Hjalmarsson for the animation work.

Basically a common part of the workflow of animation is to change the pose, 
scrub back and forth a few times and roll back the changes when unsatisfied.
However if you go back and forth too many times the UNDO stack would be full, 
and it would not be possible to bring back the previous pose.

I'm leaving clip_editor change frames as it is for now. But we can
probably change the behaviour there as well.

===

M   source/blender/editors/animation/anim_ops.c

===

diff --git a/source/blender/editors/animation/anim_ops.c 
b/source/blender/editors/animation/anim_ops.c
index 262ce0b..d789906 100644
--- a/source/blender/editors/animation/anim_ops.c
+++ b/source/blender/editors/animation/anim_ops.c
@@ -263,7 +263,7 @@ static void ANIM_OT_change_frame(wmOperatorType *ot)
ot->poll = change_frame_poll;

/* flags */
-   ot->flag = OPTYPE_BLOCKING | OPTYPE_UNDO | OPTYPE_GRAB_CURSOR;
+   ot->flag = OPTYPE_BLOCKING | OPTYPE_GRAB_CURSOR;
 
/* rna */
ot->prop = RNA_def_int(ot->srna, "frame", 0, MINAFRAME, MAXFRAME, 
"Frame", "", MINAFRAME, MAXFRAME);

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


[Bf-blender-cvs] [f8a1255] pbr-viewport: Fix left over from merge

2016-11-01 Thread Dalai Felinto
Commit: f8a1255464951af1c720d1d928314827b46e2c98
Author: Dalai Felinto
Date:   Tue Nov 1 22:00:47 2016 +0100
Branches: pbr-viewport
https://developer.blender.org/rBf8a1255464951af1c720d1d928314827b46e2c98

Fix left over from merge

Linux did not mind with them, but luckily Linux is more strict

===

M   source/blender/gpu/intern/gpu_framebuffer.c
M   source/blender/gpu/intern/gpu_pbr.c
M   source/blender/gpu/intern/gpu_probe.c

===

diff --git a/source/blender/gpu/intern/gpu_framebuffer.c 
b/source/blender/gpu/intern/gpu_framebuffer.c
index 5aa7641..5201e9b 100644
--- a/source/blender/gpu/intern/gpu_framebuffer.c
+++ b/source/blender/gpu/intern/gpu_framebuffer.c
@@ -442,7 +442,7 @@ void GPU_framebuffer_hiz_construction(GPUFrameBuffer* fb, 
GPUTexture *tex, const
lowermip_uniform = GPU_shader_get_uniform(shader, "lowermip");
lowermipsize_uniform = GPU_shader_get_uniform(shader, "lowermipsize");
 
-   GPU_framebuffer_texture_attach(fb, tex, 0, NULL);
+   GPU_framebuffer_texture_attach(fb, tex, 0);
GPU_texture_bind_as_framebuffer(tex);
 
bindcode = GPU_texture_opengl_bindcode(tex);
diff --git a/source/blender/gpu/intern/gpu_pbr.c 
b/source/blender/gpu/intern/gpu_pbr.c
index de22739..c0330ad 100644
--- a/source/blender/gpu/intern/gpu_pbr.c
+++ b/source/blender/gpu/intern/gpu_pbr.c
@@ -103,7 +103,7 @@ static GPUScreenBuffer *gpu_scenebuf_create(int width, int 
height, bool depth_on
return NULL;
}
 
-   if (!GPU_framebuffer_texture_attach(buf->fb, buf->tex, 0, 
NULL)) {
+   if (!GPU_framebuffer_texture_attach(buf->fb, buf->tex, 0)) {
GPU_scenebuf_free(buf);
return NULL;
}
@@ -121,7 +121,7 @@ static GPUScreenBuffer *gpu_scenebuf_create(int width, int 
height, bool depth_on
return NULL;
}
 
-   if (!GPU_framebuffer_texture_attach(buf->fb, buf->depth, 0, 
NULL)) {
+   if (!GPU_framebuffer_texture_attach(buf->fb, buf->depth, 0)) {
GPU_scenebuf_free(buf);
return NULL;
}
@@ -132,7 +132,7 @@ static GPUScreenBuffer *gpu_scenebuf_create(int width, int 
height, bool depth_on
return NULL;
}
 
-   if (!GPU_framebuffer_texture_attach(buf->fb, buf->tex, 0, 
NULL)) {
+   if (!GPU_framebuffer_texture_attach(buf->fb, buf->tex, 0)) {
GPU_scenebuf_free(buf);
return NULL;
}
@@ -222,14 +222,14 @@ void GPU_scenebuf_filter_texture(GPUScreenBuffer* buf)
GPU_generate_mipmap(GL_TEXTURE_2D);
GPU_texture_unbind(buf->depth);
GPU_framebuffer_hiz_construction(buf->downsamplingfb, 
buf->depth, false);
-   GPU_framebuffer_texture_attach(buf->fb, buf->depth, 0, NULL);
+   GPU_framebuffer_texture_attach(buf->fb, buf->depth, 0);
}
else {
GPU_texture_bind(buf->tex, 0);
GPU_generate_mipmap(GL_TEXTURE_2D);
GPU_texture_unbind(buf->tex);
GPU_framebuffer_hiz_construction(buf->downsamplingfb, buf->tex, 
true);
-   GPU_framebuffer_texture_attach(buf->fb, buf->tex, 0, NULL);
+   GPU_framebuffer_texture_attach(buf->fb, buf->tex, 0);
}
 
GPU_framebuffer_restore();
diff --git a/source/blender/gpu/intern/gpu_probe.c 
b/source/blender/gpu/intern/gpu_probe.c
index e1f5583..23e2ecd 100644
--- a/source/blender/gpu/intern/gpu_probe.c
+++ b/source/blender/gpu/intern/gpu_probe.c
@@ -152,7 +152,7 @@ static void gpu_probe_from_blender(Scene *scene, World *wo, 
Object *ob, GPUProbe
return;
}
 
-   if (!GPU_framebuffer_cubeface_attach(probe->fb, probe->tex, 0, 
0, NULL)) {
+   if (!GPU_framebuffer_cubeface_attach(probe->fb, probe->tex, 0, 
0)) {
gpu_probe_buffers_free(probe);
return;
}
@@ -164,7 +164,7 @@ static void gpu_probe_from_blender(Scene *scene, World *wo, 
Object *ob, GPUProbe
return;
}
 
-   if (!GPU_framebuffer_texture_attach(probe->fb, probe->depthtex, 
0, NULL)) {
+   if (!GPU_framebuffer_texture_attach(probe->fb, probe->depthtex, 
0)) {
gpu_probe_buffers_free(probe);
return;
}
@@ -188,7 +188,7 @@ static void gpu_probe_from_blender(Scene *scene, World *wo, 
Object *ob, GPUProbe
return;
}
 
-   if (!GPU_framebuffer_texture_attach(probe->fbsh, probe->shtex, 
0, NULL)) {
+   if 

[Bf-blender-cvs] [a34cad2] temp-sybren-poselib: "Fix" desapearing previews issue.

2016-11-01 Thread Bastien Montagne
Commit: a34cad20061bd05ca39de428cf00c5a06a5be3f5
Author: Bastien Montagne
Date:   Tue Nov 1 18:28:15 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rBa34cad20061bd05ca39de428cf00c5a06a5be3f5

"Fix" desapearing previews issue.

More like a hack than anything else, need to figure out the correct way
to do that yet (in an efficient way), have the feeling a function would
work better somehow...

===

M   release/scripts/startup/bl_operators/poselib.py
M   release/scripts/startup/bl_ui/properties_data_armature.py

===

diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
index c7c1184..19ab616 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -116,10 +116,12 @@ class POSELIB_OT_render_previews(Operator):
 fname = os.path.join(plib.pose_previews_dir, '%s.png' % marker.name)
 bpy.data.images['Render Result'].save_render(bpy.path.abspath(fname))
 im = bpy.data.images.load(fname)
-im.scale(128, 128)
+im.scale(16, 16)
 marker.preview_frame_index = plib_index
-plib.preview.image_frames_float[plib_index][:] = im.pixels
-plib.preview.icon_frames_float[plib_index][:] = im.pixels
+pix = [list(f) for f in plib.preview.image_frames_float]
+pix[plib_index][:] = im.pixels
+plib.preview.image_frames_float[:] = pix
+plib.preview.icon_frames_float[:] = pix
 
 def invoke(self, context, event):
 wm = context.window_manager
@@ -130,7 +132,7 @@ class POSELIB_OT_render_previews(Operator):
 self.plib_index = 0
 
 plib = context.object.pose_library
-plib.preview.icon_size = plib.preview.image_size = (128, 128)
+plib.preview.icon_size = plib.preview.image_size = (16, 16)
 plib.preview.frames_number = len(plib.pose_markers)
 for pmrk in plib.pose_markers:
 pmrk.preview_frame_index = 0
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py 
b/release/scripts/startup/bl_ui/properties_data_armature.py
index e8ca99d..0921fec 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -269,7 +269,7 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, Panel):
 for marker in poselib.pose_markers:
 col.label(marker.name, icon_value=poselib.preview.icon_id, 
icon_frame=marker.preview_frame_index)
 
-layout.template_icon_view(poselib, 'pose_previews', show_labels=True)
+#~ layout.template_icon_view(poselib, 'pose_previews', 
show_labels=True)
 layout.prop(poselib, "pose_previews_dir")
 col.operator_context = 'INVOKE_DEFAULT'

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


[Bf-blender-cvs] [d0a3ceb] temp-sybren-poselib: Add first version of poselib previews using new multi-preview ID stuff.

2016-11-01 Thread Bastien Montagne
Commit: d0a3ceb170a9eed74bc6116272b4aa69788320e5
Author: Bastien Montagne
Date:   Tue Nov 1 18:08:34 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rBd0a3ceb170a9eed74bc6116272b4aa69788320e5

Add first version of poselib previews using new multi-preview ID stuff.

*Neraly* working, for some reason setting floats values for one frame
erase all other frames... Will check that tomorrow.

===

M   release/scripts/startup/bl_operators/poselib.py
M   release/scripts/startup/bl_ui/properties_data_armature.py

===

diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
index c0b7cb8..c7c1184 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -115,6 +115,11 @@ class POSELIB_OT_render_previews(Operator):
 bpy.ops.render.render()
 fname = os.path.join(plib.pose_previews_dir, '%s.png' % marker.name)
 bpy.data.images['Render Result'].save_render(bpy.path.abspath(fname))
+im = bpy.data.images.load(fname)
+im.scale(128, 128)
+marker.preview_frame_index = plib_index
+plib.preview.image_frames_float[plib_index][:] = im.pixels
+plib.preview.icon_frames_float[plib_index][:] = im.pixels
 
 def invoke(self, context, event):
 wm = context.window_manager
@@ -124,6 +129,12 @@ class POSELIB_OT_render_previews(Operator):
 self.timer = self.wm.event_timer_add(0.01, context.window)
 self.plib_index = 0
 
+plib = context.object.pose_library
+plib.preview.icon_size = plib.preview.image_size = (128, 128)
+plib.preview.frames_number = len(plib.pose_markers)
+for pmrk in plib.pose_markers:
+pmrk.preview_frame_index = 0
+
 return {'RUNNING_MODAL'}
 
 def _finish(self, context):
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py 
b/release/scripts/startup/bl_ui/properties_data_armature.py
index 00c688c..e8ca99d 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -266,6 +266,9 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, Panel):
 layout.prop(pose_marker_active, "camera",
 text='Camera for %s' % pose_marker_active.name)
 
+for marker in poselib.pose_markers:
+col.label(marker.name, icon_value=poselib.preview.icon_id, 
icon_frame=marker.preview_frame_index)
+
 layout.template_icon_view(poselib, 'pose_previews', show_labels=True)
 layout.prop(poselib, "pose_previews_dir")
 col.operator_context = 'INVOKE_DEFAULT'

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


[Bf-blender-cvs] [0eb37ab] temp-sybren-poselib: Merge branch 'multi_previews_id' into temp-sybren-poselib

2016-11-01 Thread Bastien Montagne
Commit: 0eb37ab49e43861b31af676341407a7be30a5785
Author: Bastien Montagne
Date:   Tue Nov 1 17:23:45 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rB0eb37ab49e43861b31af676341407a7be30a5785

Merge branch 'multi_previews_id' into temp-sybren-poselib

===



===



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


[Bf-blender-cvs] [8a6c575] temp-sybren-poselib: PoseLIb preview: add a 'preview frame index' member to markers.

2016-11-01 Thread Bastien Montagne
Commit: 8a6c575c8be79b9c2fc918c764a40ac90b66917c
Author: Bastien Montagne
Date:   Tue Nov 1 16:16:44 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rB8a6c575c8be79b9c2fc918c764a40ac90b66917c

PoseLIb preview: add a 'preview frame index' member to markers.

That way we don't have to move preview images around when reordering
markers (aka poses)!

===

M   source/blender/makesdna/DNA_scene_types.h
M   source/blender/makesrna/intern/rna_timeline.c

===

diff --git a/source/blender/makesdna/DNA_scene_types.h 
b/source/blender/makesdna/DNA_scene_types.h
index 9b0781e..94e38ab 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -985,11 +985,12 @@ typedef enum StereoViews {
 /* *** */
 /* Markers */
 
-typedef struct TimeMarker {
+typedef struct TimeMarker {
struct TimeMarker *next, *prev;
int frame;
char name[64];
-   unsigned int flag;
+   unsigned short flag;
+   unsigned short preview_frame_index;
struct Object *camera;
 } TimeMarker;
 
diff --git a/source/blender/makesrna/intern/rna_timeline.c 
b/source/blender/makesrna/intern/rna_timeline.c
index 2c51e41..c1c39cf 100644
--- a/source/blender/makesrna/intern/rna_timeline.c
+++ b/source/blender/makesrna/intern/rna_timeline.c
@@ -70,6 +70,12 @@ static void rna_def_timeline_marker(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Select", "Marker selection state");
RNA_def_property_update(prop, 0, "rna_TimelineMarker_update");
 
+   prop = RNA_def_property(srna, "preview_frame_index", PROP_INT, 
PROP_UNSIGNED);
+   RNA_def_property_range(prop, 0, USHRT_MAX);
+   RNA_def_property_ui_text(prop, "Preview Frame",
+"The frame index in the Action/Scene 
data-block previews matching that marker");
+   RNA_def_property_update(prop, 0, "rna_TimelineMarker_update");
+
 #ifdef DURIAN_CAMERA_SWITCH
prop = RNA_def_property(srna, "camera", PROP_POINTER, PROP_NONE);
RNA_def_property_struct_type(prop, "Object");

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


[Bf-blender-cvs] [d12bd5f] multi_previews_id: Merge branch 'master' into multi_previews_id

2016-11-01 Thread Bastien Montagne
Commit: d12bd5f7a4dcc7868c390bb61cfbf0f9a84cf710
Author: Bastien Montagne
Date:   Tue Nov 1 16:47:29 2016 +0100
Branches: multi_previews_id
https://developer.blender.org/rBd12bd5f7a4dcc7868c390bb61cfbf0f9a84cf710

Merge branch 'master' into multi_previews_id

===



===



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


[Bf-blender-cvs] [9c96cfd] multi_previews_id: Add multi-frame float access in RNA.

2016-11-01 Thread Bastien Montagne
Commit: 9c96cfd8797994dea11616f9a08db913f8b2214c
Author: Bastien Montagne
Date:   Tue Nov 1 17:23:04 2016 +0100
Branches: multi_previews_id
https://developer.blender.org/rB9c96cfd8797994dea11616f9a08db913f8b2214c

Add multi-frame float access in RNA.

===

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

===

diff --git a/source/blender/makesrna/intern/rna_ID.c 
b/source/blender/makesrna/intern/rna_ID.c
index 31c62af..b2a5489 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -681,6 +681,84 @@ static void rna_ImagePreview_pixels_float_set(PointerRNA 
*ptr, const float *valu
prv_img->flag[size] |= PRV_USER_EDITED;
 }
 
+static int rna_ImagePreview_frames_float_get_length(PointerRNA *ptr, int 
length[RNA_MAX_ARRAY_DIMENSION], enum eIconSizes size)
+{
+   ID *id = ptr->id.data;
+   PreviewImage *prv_img = (PreviewImage *)ptr->data;
+
+   BLI_assert(sizeof(unsigned int) == 4);
+
+   if (id != NULL) {
+   BLI_assert(prv_img == BKE_previewimg_id_ensure(id));
+   }
+
+   BKE_previewimg_ensure(prv_img, size);
+
+   length[0] = prv_img->num_frames ? prv_img->num_frames : 1;
+   length[1] = prv_img->w[size] * prv_img->h[size] * 4;
+
+   return length[0] * length[1];
+}
+
+static void rna_ImagePreview_frames_float_get(PointerRNA *ptr, float *values, 
enum eIconSizes size)
+{
+   ID *id = ptr->id.data;
+   PreviewImage *prv_img = (PreviewImage *)ptr->data;
+
+   BLI_assert(sizeof(unsigned int) == 4);
+
+   if (prv_img->num_frames == 0) {
+   rna_ImagePreview_pixels_float_get(ptr, values, size);
+   return;
+   }
+
+   if (id != NULL) {
+   BLI_assert(prv_img == BKE_previewimg_id_ensure(id));
+   }
+
+   BKE_previewimg_ensure(prv_img, size);
+
+   int i;
+   unsigned char *data = (unsigned char *)prv_img->rect[size];
+   ptrdiff_t copy_stride = prv_img->w[size] * prv_img->h[size] * 4;
+   ptrdiff_t stride = copy_stride + 4;
+   for (i = 0; i < prv_img->num_frames; i++, data += stride, values += 
copy_stride) {
+   size_t j;
+   for (j = 0; j < copy_stride; j++) {
+   values[j] = data[j] * (1.0f / 255.0f);
+   }
+   }
+}
+
+static void rna_ImagePreview_frames_float_set(PointerRNA *ptr, const float 
*values, enum eIconSizes size)
+{
+   ID *id = ptr->id.data;
+   PreviewImage *prv_img = (PreviewImage *)ptr->data;
+
+   BLI_assert(sizeof(unsigned int) == 4);
+
+   if (prv_img->num_frames == 0) {
+   rna_ImagePreview_pixels_float_set(ptr, values, size);
+   return;
+   }
+
+   if (id != NULL) {
+   BLI_assert(prv_img == BKE_previewimg_id_ensure(id));
+   }
+
+   int i;
+   unsigned char *data = (unsigned char *)prv_img->rect[size];
+   ptrdiff_t copy_stride = prv_img->w[size] * prv_img->h[size] * 4;
+   ptrdiff_t stride = copy_stride + 4;
+   for (i = 0; i < prv_img->num_frames; i++, data += stride, values += 
copy_stride) {
+   size_t j;
+   for (j = 0; j < copy_stride; j++) {
+   data[j] = FTOCHAR(values[j]);
+   }
+   }
+   prv_img->flag[size] |= PRV_USER_EDITED;
+}
+
 
 static void rna_ImagePreview_is_image_custom_set(PointerRNA *ptr, int value)
 {
@@ -742,6 +820,21 @@ static void 
rna_ImagePreview_image_pixels_float_set(PointerRNA *ptr, const float
rna_ImagePreview_pixels_float_set(ptr, values, ICON_SIZE_PREVIEW);
 }
 
+static int rna_ImagePreview_image_frames_float_get_length(PointerRNA *ptr, int 
length[RNA_MAX_ARRAY_DIMENSION])
+{
+   return rna_ImagePreview_frames_float_get_length(ptr, length, 
ICON_SIZE_PREVIEW);
+}
+
+static void rna_ImagePreview_image_frames_float_get(PointerRNA *ptr, float 
*values)
+{
+   rna_ImagePreview_frames_float_get(ptr, values, ICON_SIZE_PREVIEW);
+}
+
+static void rna_ImagePreview_image_frames_float_set(PointerRNA *ptr, const 
float *values)
+{
+   rna_ImagePreview_frames_float_set(ptr, values, ICON_SIZE_PREVIEW);
+}
+
 
 static void rna_ImagePreview_is_icon_custom_set(PointerRNA *ptr, int value)
 {
@@ -803,6 +896,21 @@ static void 
rna_ImagePreview_icon_pixels_float_set(PointerRNA *ptr, const float
rna_ImagePreview_pixels_float_set(ptr, values, ICON_SIZE_ICON);
 }
 
+static int rna_ImagePreview_icon_frames_float_get_length(PointerRNA *ptr, int 
length[RNA_MAX_ARRAY_DIMENSION])
+{
+   return rna_ImagePreview_frames_float_get_length(ptr, length, 
ICON_SIZE_ICON);
+}
+
+static void rna_ImagePreview_icon_frames_float_get(PointerRNA *ptr, float 
*values)
+{
+   rna_ImagePreview_frames_float_get(ptr, values, ICON_SIZE_ICON);
+}
+
+static void rna_ImagePreview_icon_frames_float_set(PointerRNA *ptr, const 
float *values)
+{
+   

[Bf-blender-cvs] [14094a1] cycles_split_kernel: Cycles: Fix crash caused by freeing unallocated kernel globals

2016-11-01 Thread Mai Lavelle
Commit: 14094a110b28f22b5bc09f347c0fc18d53096add
Author: Mai Lavelle
Date:   Tue Nov 1 16:23:36 2016 +0100
Branches: cycles_split_kernel
https://developer.blender.org/rB14094a110b28f22b5bc09f347c0fc18d53096add

Cycles: Fix crash caused by freeing unallocated kernel globals

===

M   intern/cycles/device/device_cpu.cpp

===

diff --git a/intern/cycles/device/device_cpu.cpp 
b/intern/cycles/device/device_cpu.cpp
index be52fae..ee14f78 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -664,6 +664,10 @@ protected:
 
inline void thread_kernel_globals_free(KernelGlobals *kg)
{
+   if(!kg) {
+   return;
+   }
+
if(kg->transparent_shadow_intersections != NULL) {
free(kg->transparent_shadow_intersections);
}

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


[Bf-blender-cvs] [467d52e] temp-sybren-poselib: Added full rendering for preview images.

2016-11-01 Thread Sybren A. Stüvel
Commit: 467d52e0fcb8991365f89573b13eb7f0972f0f93
Author: Sybren A. Stüvel
Date:   Tue Nov 1 16:18:41 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rB467d52e0fcb8991365f89573b13eb7f0972f0f93

Added full rendering for preview images.

This really requires subprocessing to another Blender for faster rendering;
will come later after other improvements.

===

M   release/scripts/startup/bl_operators/poselib.py
M   release/scripts/startup/bl_ui/properties_data_armature.py

===

diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
index 87d7293..c0b7cb8 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -109,7 +109,10 @@ class POSELIB_OT_render_previews(Operator):
 
 bpy.ops.poselib.apply_pose(pose_index=plib_index)
 
-bpy.ops.render.opengl(view_context=False)
+if self.render_method == 'OPENGL':
+bpy.ops.render.opengl(view_context=False)
+else:
+bpy.ops.render.render()
 fname = os.path.join(plib.pose_previews_dir, '%s.png' % marker.name)
 bpy.data.images['Render Result'].save_render(bpy.path.abspath(fname))
 
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py 
b/release/scripts/startup/bl_ui/properties_data_armature.py
index b98eaf8..00c688c 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -268,9 +268,11 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, Panel):
 
 layout.template_icon_view(poselib, 'pose_previews', show_labels=True)
 layout.prop(poselib, "pose_previews_dir")
-
 col.operator_context = 'INVOKE_DEFAULT'
-layout.operator("poselib.render_previews")
+
+row = layout.row(align=True)
+row.operator("poselib.render_previews", text='Render 
OGL').render_method='OPENGL'
+row.operator("poselib.render_previews", text='Render 
Full').render_method='FULL'
 
 
 # TODO: this panel will soon be deprecated too

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


[Bf-blender-cvs] [21b73c4] temp-sybren-poselib: Use view_context=False to use active camera instead of viewport.

2016-11-01 Thread Sybren A. Stüvel
Commit: 21b73c42176ea1f0af49ee6424ff083e9837ea3b
Author: Sybren A. Stüvel
Date:   Tue Nov 1 15:57:07 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rB21b73c42176ea1f0af49ee6424ff083e9837ea3b

Use view_context=False to use active camera instead of viewport.

===

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

===

diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
index 0579470..87d7293 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -109,9 +109,9 @@ class POSELIB_OT_render_previews(Operator):
 
 bpy.ops.poselib.apply_pose(pose_index=plib_index)
 
-fname = '%s.png' % marker.name
-context.scene.render.filepath = os.path.join(plib.pose_previews_dir, 
fname)
-bpy.ops.render.opengl(write_still=True)
+bpy.ops.render.opengl(view_context=False)
+fname = os.path.join(plib.pose_previews_dir, '%s.png' % marker.name)
+bpy.data.images['Render Result'].save_render(bpy.path.abspath(fname))
 
 def invoke(self, context, event):
 wm = context.window_manager
@@ -120,10 +120,8 @@ class POSELIB_OT_render_previews(Operator):
 self.wm = context.window_manager
 self.timer = self.wm.event_timer_add(0.01, context.window)
 self.plib_index = 0
-self.orig_filepath = context.scene.render.filepath
 
 return {'RUNNING_MODAL'}
 
 def _finish(self, context):
 self.wm.event_timer_remove(self.timer)
-context.scene.render.filepath = self.orig_filepath

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


[Bf-blender-cvs] [038370a] temp-sybren-poselib: Removed pep8 compliance note.

2016-11-01 Thread Sybren A. Stüvel
Commit: 038370a811061a8385c231bd0dc38bedd5f73928
Author: Sybren A. Stüvel
Date:   Tue Nov 1 15:12:19 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rB038370a811061a8385c231bd0dc38bedd5f73928

Removed pep8 compliance note.

===

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

===

diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
index 3d3e4f4..0579470 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -16,8 +16,6 @@
 #
 # # END GPL LICENSE BLOCK #
 
-# 
-
 if "bpy" in locals():
 from importlib import reload
 if "anim_utils" in locals():

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


[Bf-blender-cvs] [dbfc1e5] temp-sybren-poselib: Merge branch 'multi_previews_id' into temp-sybren-poselib

2016-11-01 Thread Sybren A. Stüvel
Commit: dbfc1e5b0e072785af146b14b82f3f44722853e6
Author: Sybren A. Stüvel
Date:   Tue Nov 1 15:19:57 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rBdbfc1e5b0e072785af146b14b82f3f44722853e6

Merge branch 'multi_previews_id' into temp-sybren-poselib

===



===



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


[Bf-blender-cvs] [16b2602] multi_previews_id: Revert "Applied my work from temp-sybren-poselib branch."

2016-11-01 Thread Sybren A. Stüvel
Commit: 16b2602791114d6d55e6d2c7098e23403518bbe5
Author: Sybren A. Stüvel
Date:   Tue Nov 1 15:19:15 2016 +0100
Branches: multi_previews_id
https://developer.blender.org/rB16b2602791114d6d55e6d2c7098e23403518bbe5

Revert "Applied my work from temp-sybren-poselib branch."

This reverts commit ffb0ed305d87d236787163abbe33a921d3eaecf6.

===

M   release/scripts/startup/bl_operators/__init__.py
D   release/scripts/startup/bl_operators/poselib.py
M   release/scripts/startup/bl_ui/__init__.py
M   release/scripts/startup/bl_ui/properties_data_armature.py
M   source/blender/blenkernel/intern/anim_sys.c
M   source/blender/editors/armature/pose_lib.c
M   source/blender/editors/armature/pose_transform.c
M   source/blender/makesrna/intern/rna_timeline.c

===

diff --git a/release/scripts/startup/bl_operators/__init__.py 
b/release/scripts/startup/bl_operators/__init__.py
index 01c954d..a696410 100644
--- a/release/scripts/startup/bl_operators/__init__.py
+++ b/release/scripts/startup/bl_operators/__init__.py
@@ -39,7 +39,6 @@ _modules = [
 "object",
 "object_randomize_transform",
 "object_quick_effects",
-"poselib",
 "presets",
 "rigidbody",
 "screen_play_rendered_anim",
diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
deleted file mode 100644
index 0579470..000
--- a/release/scripts/startup/bl_operators/poselib.py
+++ /dev/null
@@ -1,129 +0,0 @@
-# # BEGIN GPL LICENSE BLOCK #
-#
-#  This program is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU General Public License
-#  as published by the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# # END GPL LICENSE BLOCK #
-
-if "bpy" in locals():
-from importlib import reload
-if "anim_utils" in locals():
-reload(anim_utils)
-del reload
-
-
-import bpy
-from bpy.types import Operator
-from bpy.props import (
-IntProperty,
-BoolProperty,
-EnumProperty,
-StringProperty,
-)
-
-
-class POSELIB_OT_render_previews(Operator):
-"""Renders a preview image for each pose in the pose library.
-
-TODO: the viewport used for OpenGL rendering is more or less random.
-"""
-
-import logging as __logging
-
-bl_idname = "poselib.render_previews"
-bl_label = "Render pose previews"
-bl_description = "Renders a preview image for each pose in the pose 
library"
-
-log = __logging.getLogger('bpy.ops.%s' % bl_idname)
-
-render_method = EnumProperty(
-items=[
-('OPENGL', 'OpenGL render', 'Use the OpenGL viewport render'),
-('FULL', 'Full render', 'Use the same render engine as the scene'),
-],
-default='OPENGL'
-)
-
-plib_index = 0
-
-@classmethod
-def poll(cls, context):
-"""Running only makes sense if there are any poses in the library."""
-plib = context.object and context.object.pose_library
-return bool(plib and plib.pose_markers)
-
-def execute(self, context):
-return {'PASS_THROUGH'}
-
-def modal(self, context, event):
-if event.type == 'ESC':
-self._finish(context)
-self.report({'INFO'}, 'Canceled rendering pose library previews')
-return {'CANCELLED'}
-
-if event.type != 'TIMER':
-return {'PASS_THROUGH'}
-
-plib = context.object.pose_library
-
-pose_count = len(plib.pose_markers)
-if self.plib_index >= pose_count:
-self._finish(context)
-self.report({'INFO'}, 'Done rendering pose library previews')
-return {'FINISHED'}
-
-self.render_pose(context, plib, self.plib_index)
-self.plib_index += 1
-
-return {'RUNNING_MODAL'}
-
-def render_pose(self, context, plib, plib_index):
-import os.path
-
-marker = plib.pose_markers[plib_index]
-self.log.info('Rendering pose %s at frame %i', marker.name, 
marker.frame)
-
-context.scene.frame_set(marker.frame)
-switch_to = None
-if marker.camera:
-switch_to = marker.camera
-else:
-cams = [m.camera for m in context.scene.timeline_markers
-if m.frame == marker.frame and m.camera]
-  

[Bf-blender-cvs] [ffb0ed3] multi_previews_id: Applied my work from temp-sybren-poselib branch.

2016-11-01 Thread Sybren A. Stüvel
Commit: ffb0ed305d87d236787163abbe33a921d3eaecf6
Author: Sybren A. Stüvel
Date:   Tue Nov 1 15:14:15 2016 +0100
Branches: multi_previews_id
https://developer.blender.org/rBffb0ed305d87d236787163abbe33a921d3eaecf6

Applied my work from temp-sybren-poselib branch.

Still a bit rough. For example, the viewport used for OpenGL rendering is
more or less randomly chosen from the current screen.

===

M   release/scripts/startup/bl_operators/__init__.py
A   release/scripts/startup/bl_operators/poselib.py
M   release/scripts/startup/bl_ui/__init__.py
M   release/scripts/startup/bl_ui/properties_data_armature.py
M   source/blender/blenkernel/intern/anim_sys.c
M   source/blender/editors/armature/pose_lib.c
M   source/blender/editors/armature/pose_transform.c
M   source/blender/makesrna/intern/rna_timeline.c

===

diff --git a/release/scripts/startup/bl_operators/__init__.py 
b/release/scripts/startup/bl_operators/__init__.py
index a696410..01c954d 100644
--- a/release/scripts/startup/bl_operators/__init__.py
+++ b/release/scripts/startup/bl_operators/__init__.py
@@ -39,6 +39,7 @@ _modules = [
 "object",
 "object_randomize_transform",
 "object_quick_effects",
+"poselib",
 "presets",
 "rigidbody",
 "screen_play_rendered_anim",
diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
new file mode 100644
index 000..0579470
--- /dev/null
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -0,0 +1,129 @@
+# # BEGIN GPL LICENSE BLOCK #
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# # END GPL LICENSE BLOCK #
+
+if "bpy" in locals():
+from importlib import reload
+if "anim_utils" in locals():
+reload(anim_utils)
+del reload
+
+
+import bpy
+from bpy.types import Operator
+from bpy.props import (
+IntProperty,
+BoolProperty,
+EnumProperty,
+StringProperty,
+)
+
+
+class POSELIB_OT_render_previews(Operator):
+"""Renders a preview image for each pose in the pose library.
+
+TODO: the viewport used for OpenGL rendering is more or less random.
+"""
+
+import logging as __logging
+
+bl_idname = "poselib.render_previews"
+bl_label = "Render pose previews"
+bl_description = "Renders a preview image for each pose in the pose 
library"
+
+log = __logging.getLogger('bpy.ops.%s' % bl_idname)
+
+render_method = EnumProperty(
+items=[
+('OPENGL', 'OpenGL render', 'Use the OpenGL viewport render'),
+('FULL', 'Full render', 'Use the same render engine as the scene'),
+],
+default='OPENGL'
+)
+
+plib_index = 0
+
+@classmethod
+def poll(cls, context):
+"""Running only makes sense if there are any poses in the library."""
+plib = context.object and context.object.pose_library
+return bool(plib and plib.pose_markers)
+
+def execute(self, context):
+return {'PASS_THROUGH'}
+
+def modal(self, context, event):
+if event.type == 'ESC':
+self._finish(context)
+self.report({'INFO'}, 'Canceled rendering pose library previews')
+return {'CANCELLED'}
+
+if event.type != 'TIMER':
+return {'PASS_THROUGH'}
+
+plib = context.object.pose_library
+
+pose_count = len(plib.pose_markers)
+if self.plib_index >= pose_count:
+self._finish(context)
+self.report({'INFO'}, 'Done rendering pose library previews')
+return {'FINISHED'}
+
+self.render_pose(context, plib, self.plib_index)
+self.plib_index += 1
+
+return {'RUNNING_MODAL'}
+
+def render_pose(self, context, plib, plib_index):
+import os.path
+
+marker = plib.pose_markers[plib_index]
+self.log.info('Rendering pose %s at frame %i', marker.name, 
marker.frame)
+
+context.scene.frame_set(marker.frame)
+switch_to = None
+if marker.camera:
+switch_to = marker.camera
+else:
+cams = [m.camera for m in context.scene.timeline_markers
+   

[Bf-blender-cvs] [8d50467] temp-sybren-poselib: Added a little note about some hackyness.

2016-11-01 Thread Sybren A. Stüvel
Commit: 8d5046760a6992bbfc9ed1e89b64ffdc006ff80b
Author: Sybren A. Stüvel
Date:   Tue Nov 1 15:11:44 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rB8d5046760a6992bbfc9ed1e89b64ffdc006ff80b

Added a little note about some hackyness.

===

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

===

diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
index 4a75f5f..3d3e4f4 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -36,12 +36,17 @@ from bpy.props import (
 
 
 class POSELIB_OT_render_previews(Operator):
-"Renders a preview image for each pose in the pose library"
+"""Renders a preview image for each pose in the pose library.
+
+TODO: the viewport used for OpenGL rendering is more or less random.
+"""
 
 import logging as __logging
 
 bl_idname = "poselib.render_previews"
 bl_label = "Render pose previews"
+bl_description = "Renders a preview image for each pose in the pose 
library"
+
 log = __logging.getLogger('bpy.ops.%s' % bl_idname)
 
 render_method = EnumProperty(
@@ -54,7 +59,6 @@ class POSELIB_OT_render_previews(Operator):
 
 plib_index = 0
 
-
 @classmethod
 def poll(cls, context):
 """Running only makes sense if there are any poses in the library."""

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


[Bf-blender-cvs] [0648fb6] temp-sybren-poselib: Merge branch 'master' into temp-sybren-poselib

2016-11-01 Thread Sybren A. Stüvel
Commit: 0648fb6ee521bc93e8eed1ccfe207d435970f170
Author: Sybren A. Stüvel
Date:   Tue Nov 1 14:57:12 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rB0648fb6ee521bc93e8eed1ccfe207d435970f170

Merge branch 'master' into temp-sybren-poselib

===



===



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


[Bf-blender-cvs] [4e95a90] master: Add 'copy array' for rna buttons

2016-11-01 Thread Bastien Montagne
Commit: 4e95a9069e6fcbbdac10898e83dce8f993eb6518
Author: Bastien Montagne
Date:   Tue Nov 1 14:59:12 2016 +0100
Branches: master
https://developer.blender.org/rB4e95a9069e6fcbbdac10898e83dce8f993eb6518

Add 'copy array' for rna buttons

ctrl-alt-c/v allows to copy/paste whole RNA array, e.g. location, rotation, 
etc., from UI buttons.

Request from Andy at the studio.

===

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

===

diff --git a/source/blender/editors/interface/interface_handlers.c 
b/source/blender/editors/interface/interface_handlers.c
index 029..f3eeadb 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -2219,7 +2219,7 @@ static void ui_but_drop(bContext *C, const wmEvent 
*event, uiBut *but, uiHandleB
 /* *** copy and paste   */
 
 /* c = copy, v = paste */
-static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData 
*data, char mode)
+static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData 
*data, const char mode, const bool copy_array)
 {
int buf_paste_len = 0;
const char *buf_paste = "";
@@ -2255,6 +2255,46 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, 
uiHandleButtonData *data,
if (but->poin == NULL && but->rnapoin.data == NULL) {
/* pass */
}
+   else if (copy_array && but->rnapoin.data && but->rnaprop &&
+ELEM(RNA_property_subtype(but->rnaprop), PROP_COLOR, 
PROP_TRANSLATION, PROP_DIRECTION,
+ PROP_VELOCITY, PROP_ACCELERATION, PROP_MATRIX, 
PROP_EULER, PROP_QUATERNION, PROP_AXISANGLE,
+ PROP_XYZ, PROP_XYZ_LENGTH, PROP_COLOR_GAMMA, 
PROP_COORDS))
+   {
+   float values[4];
+   int array_length = 
RNA_property_array_length(>rnapoin, but->rnaprop);
+
+   if (mode == 'c') {
+   char buf_copy[UI_MAX_DRAW_STR];
+
+   if (array_length == 4) {
+values[3] = 
RNA_property_float_get_index(>rnapoin, but->rnaprop, 3);
+   }
+   else {
+   values[3] = 0.0f;
+   }
+   ui_but_v3_get(but, values);
+
+   BLI_snprintf(buf_copy, sizeof(buf_copy), "[%f, 
%f, %f, %f]", values[0], values[1], values[2], values[3]);
+   WM_clipboard_text_set(buf_copy, 0);
+   }
+   else {
+   if (sscanf(buf_paste, "[%f, %f, %f, %f]", 
[0], [1], [2], [3]) >= array_length) {
+   button_activate_state(C, but, 
BUTTON_STATE_NUM_EDITING);
+
+   ui_but_v3_set(but, values);
+   if (but->rnaprop && array_length == 4) {
+   
RNA_property_float_set_index(>rnapoin, but->rnaprop, 3, values[3]);
+   }
+   data->value = values[but->rnaindex];
+
+   button_activate_state(C, but, 
BUTTON_STATE_EXIT);
+   }
+   else {
+   WM_report(RPT_ERROR, "Paste expected 4 
numbers, formatted: '[n, n, n, n]'");
+   show_report = true;
+   }
+   }
+   }
else if (mode == 'c') {
/* Get many decimal places, then strip trailing zeros.
 * note: too high values start to give strange results 
*/
@@ -6965,7 +7005,7 @@ static int ui_do_button(bContext *C, uiBlock *block, 
uiBut *but, const wmEvent *
if ((data->state == BUTTON_STATE_HIGHLIGHT) || (event->type == 
EVT_DROP)) {
/* handle copy-paste */
if (ELEM(event->type, CKEY, VKEY) && event->val == KM_PRESS &&
-   IS_EVENT_MOD(event, ctrl, oskey) && !event->shift && 
!event->alt)
+   IS_EVENT_MOD(event, ctrl, oskey) && !event->shift)
{
/* Specific handling for listrows, we try to find their 
overlapping tex button. */
if (but->type == UI_BTYPE_LISTROW) {
@@ -6975,7 +7015,7 @@ static int ui_do_button(bContext *C, uiBlock *block, 
uiBut *but, const wmEvent *
data = but->active;
}
}
- 

[Bf-blender-cvs] [7c9bb24] temp-sybren-poselib: Explicitly switch to camera from either pose or scene marker.

2016-11-01 Thread Sybren A. Stüvel
Commit: 7c9bb240f9752abcaab7aa3fe26cb808b844b085
Author: Sybren A. Stüvel
Date:   Fri Oct 14 11:13:35 2016 +0200
Branches: temp-sybren-poselib
https://developer.blender.org/rB7c9bb240f9752abcaab7aa3fe26cb808b844b085

Explicitly switch to camera from either pose or scene marker.

===

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

===

diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
index 44c77ed..4a75f5f 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -93,6 +93,18 @@ class POSELIB_OT_render_previews(Operator):
 self.log.info('Rendering pose %s at frame %i', marker.name, 
marker.frame)
 
 context.scene.frame_set(marker.frame)
+switch_to = None
+if marker.camera:
+switch_to = marker.camera
+else:
+cams = [m.camera for m in context.scene.timeline_markers
+if m.frame == marker.frame and m.camera]
+if cams:
+switch_to = cams[0]
+if switch_to is not None:
+self.log.info('Switching camera to %s', switch_to)
+context.scene.camera = switch_to
+
 bpy.ops.poselib.apply_pose(pose_index=plib_index)
 
 fname = '%s.png' % marker.name

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


[Bf-blender-cvs] [0621b2a] temp-sybren-poselib: Merge branch 'master' into temp-sybren-poselib

2016-11-01 Thread Sybren A. Stüvel
Commit: 0621b2ab45da19c15615674d8a9913879773bad9
Author: Sybren A. Stüvel
Date:   Fri Oct 7 15:35:19 2016 +0200
Branches: temp-sybren-poselib
https://developer.blender.org/rB0621b2ab45da19c15615674d8a9913879773bad9

Merge branch 'master' into temp-sybren-poselib

===



===



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


[Bf-blender-cvs] [10c91c2] temp-sybren-poselib: More poselib stuff

2016-11-01 Thread Sybren A. Stüvel
Commit: 10c91c29c52b10b194e6123aeccb9f5173d6f0fd
Author: Sybren A. Stüvel
Date:   Tue Oct 11 10:24:25 2016 +0200
Branches: temp-sybren-poselib
https://developer.blender.org/rB10c91c29c52b10b194e6123aeccb9f5173d6f0fd

More poselib stuff

===

M   release/scripts/startup/bl_operators/poselib.py
M   release/scripts/startup/bl_ui/__init__.py
M   release/scripts/startup/bl_ui/properties_data_armature.py

===

diff --git a/release/scripts/startup/bl_operators/poselib.py 
b/release/scripts/startup/bl_operators/poselib.py
index d74b2c0..44c77ed 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -89,13 +89,13 @@ class POSELIB_OT_render_previews(Operator):
 def render_pose(self, context, plib, plib_index):
 import os.path
 
-frame = plib.pose_markers[plib_index].frame
-self.log.info('Rendering pose %i at frame %i', plib_index, frame)
+marker = plib.pose_markers[plib_index]
+self.log.info('Rendering pose %s at frame %i', marker.name, 
marker.frame)
 
-context.scene.frame_set(frame)
+context.scene.frame_set(marker.frame)
 bpy.ops.poselib.apply_pose(pose_index=plib_index)
 
-fname = '%03d.png' % (plib_index+1)
+fname = '%s.png' % marker.name
 context.scene.render.filepath = os.path.join(plib.pose_previews_dir, 
fname)
 bpy.ops.render.opengl(write_still=True)
 
diff --git a/release/scripts/startup/bl_ui/__init__.py 
b/release/scripts/startup/bl_ui/__init__.py
index 1dfca22..4d5c4aa 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -139,6 +139,20 @@ def register():
 default={'OFFICIAL', 'COMMUNITY'},
 options={'ENUM_FLAG'},
 )
+
+# properties_data_armature.py
+from . import properties_data_armature
+bpy.types.Action.pose_previews = EnumProperty(
+items=properties_data_armature.pose_preview_items,
+update=properties_data_armature.update_pose)
+bpy.types.Action.pose_previews_dir = StringProperty(
+name='Thumbnail Path',
+subtype='DIR_PATH',
+default='',
+# update=filepath_update
+)
+
+
 # done...
 
 
@@ -148,6 +162,10 @@ def unregister():
 from . import properties_data_armature
 properties_data_armature.unload_custom_icons()
 
+del bpy.types.Object.pose_previews
+if properties_data_armature.previews:
+bpy.utils.previews.remove(properties_data_armature.previews)
+
 
 # Define a default UIList, when a list does not need any custom drawing...
 # Keep in sync with its #defined name in UI_interface.h
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py 
b/release/scripts/startup/bl_ui/properties_data_armature.py
index aaa80fb..b98eaf8 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -161,59 +161,54 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
 sub.operator("pose.group_deselect", text="Deselect")
 
 
-class POSELIB_UL_poses(bpy.types.UIList):
-# The draw_item function is called for each item of the collection that is 
visible in the list.
-#   data is the RNA object containing the collection,
-#   item is the currently drawn item of the collection,
-#   icon is the "computed" icon for the item (as an integer, because some 
objects like materials or textures
-#   have custom icons ID, which are not available as enum items).
-#   active_data is the RNA object containing the active property for the 
collection (i.e. integer pointing to the
-#   active item of the collection).
-#   active_propname is the name of the active property (use 
'getattr(active_data, active_propname)').
-#   index is index of the current item in the collection.
-#   flt_flag is the result of the filtering process for this item.
-#   Note: as index and flt_flag are optional arguments, you do not have to 
use/declare them here if you don't
-# need them.
-def draw_item(self, context, layout, data, item, icon, active_data, 
active_propname):
-if self.layout_type != 'GRID':
-super().draw_item(context, layout, data, item, icon, active_data, 
active_propname)
-
-if icon == 17:
-if icons is None: load_custom_icons()
-icon = icons['POSE_NOT_HERE'].icon_id
-
-col = layout.column(align=True)
-col.alignment = 'CENTER'
-col.label(text='', icon_value=icon)
-col.label(text=item.name)
-
-
-icons = None
-
-def load_custom_icons():
-global icons
-
-if icons is not None:
-# Already loaded
-return
-
-import bpy.utils.previews
-import blender_cloud
+previews = None
+
+
+def 

[Bf-blender-cvs] [6b531ea] temp-sybren-poselib: Merge branch 'master' into temp-sybren-poselib

2016-11-01 Thread Sybren A. Stüvel
Commit: 6b531ea5db1b5d18aaf9b1812da93c566e936061
Author: Sybren A. Stüvel
Date:   Thu Oct 13 17:30:38 2016 +0200
Branches: temp-sybren-poselib
https://developer.blender.org/rB6b531ea5db1b5d18aaf9b1812da93c566e936061

Merge branch 'master' into temp-sybren-poselib

===



===



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


[Bf-blender-cvs] [98a5aa9] temp-sybren-poselib: Merge branch 'master' into temp-sybren-poselib

2016-11-01 Thread Sybren A. Stüvel
Commit: 98a5aa96cd3a0c38ecba5dbea8e7135f14ef945c
Author: Sybren A. Stüvel
Date:   Fri Oct 14 13:01:36 2016 +0200
Branches: temp-sybren-poselib
https://developer.blender.org/rB98a5aa96cd3a0c38ecba5dbea8e7135f14ef945c

Merge branch 'master' into temp-sybren-poselib

===



===



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


[Bf-blender-cvs] [91b7900] temp-sybren-poselib: Fix

2016-11-01 Thread Sybren A. Stüvel
Commit: 91b79007d0cf1cee9720a34fc28800f3a4e2b37a
Author: Sybren A. Stüvel
Date:   Fri Oct 14 11:13:22 2016 +0200
Branches: temp-sybren-poselib
https://developer.blender.org/rB91b79007d0cf1cee9720a34fc28800f3a4e2b37a

Fix

===

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

===

diff --git a/release/scripts/startup/bl_ui/__init__.py 
b/release/scripts/startup/bl_ui/__init__.py
index 4d5c4aa..56d3ece 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -160,7 +160,6 @@ def unregister():
 bpy.utils.unregister_module(__name__)
 
 from . import properties_data_armature
-properties_data_armature.unload_custom_icons()
 
 del bpy.types.Object.pose_previews
 if properties_data_armature.previews:

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


[Bf-blender-cvs] [b65d0a7] temp-sybren-poselib: Merge branch 'master' into temp-sybren-poselib

2016-11-01 Thread Sybren A. Stüvel
Commit: b65d0a7702a8710e4759541f04eb674e6742a7c7
Author: Sybren A. Stüvel
Date:   Thu Oct 20 11:30:10 2016 +0200
Branches: temp-sybren-poselib
https://developer.blender.org/rBb65d0a7702a8710e4759541f04eb674e6742a7c7

Merge branch 'master' into temp-sybren-poselib

===



===



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


[Bf-blender-cvs] [607b8ae] multi_previews_id: Merge branch 'master' into multi_previews_id

2016-11-01 Thread Bastien Montagne
Commit: 607b8aee086625f8f45ca4f47939c27f8b81000e
Author: Bastien Montagne
Date:   Tue Nov 1 14:50:41 2016 +0100
Branches: multi_previews_id
https://developer.blender.org/rB607b8aee086625f8f45ca4f47939c27f8b81000e

Merge branch 'master' into multi_previews_id

===



===

diff --cc source/blender/editors/interface/interface_templates.c
index 3077464,bdad667..e7ec323
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@@ -3908,9 -3910,10 +3910,10 @@@ void uiTemplateCacheFile(uiLayout *layo
uiItemR(row, , "frame", 0, "Frame", ICON_NONE);
  
row = uiLayoutRow(layout, false);
 -  uiItemL(row, IFACE_("Manual Transform:"), ICON_NONE);
 +  uiItemL(row, IFACE_("Manual Transform:"), ICON_NONE, 0);
  
row = uiLayoutRow(layout, false);
+   uiLayoutSetEnabled(row, (sbuts->mainb == BCONTEXT_CONSTRAINT));
uiItemR(row, , "scale", 0, "Scale", ICON_NONE);
  
/* TODO: unused for now, so no need to expose. */
diff --cc source/blender/makesdna/DNA_ID.h
index 9f7b420,feeb2d5..944fa2e
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@@ -189,11 -191,8 +196,10 @@@ typedef struct PreviewImage 
struct GPUTexture *gputexture[2];
int icon_id;  /* Used by previews outside of ID context. */
  
 +  /* Number of frames stored in each rect (0 means 'old format', rect is 
only w * h integers). */
 +  unsigned short num_frames;
 +
-   char pad;
-   char use_deferred;  /* for now a mere bool, if we add more deferred 
loading methods we can switch to bitflag. */
+   short tag;  /* Runtime data. */
 -  char pad[2];
  } PreviewImage;
  
  #define PRV_DEFERRED_DATA(prv) \

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


[Bf-blender-cvs] [1ee43c5] master: Fix T49856: Blender 2.78 crashes after loading data from a blendfile

2016-11-01 Thread Bastien Montagne
Commit: 1ee43c5aef03c1a3218163d9450545fdb9ad4482
Author: Bastien Montagne
Date:   Tue Nov 1 13:39:31 2016 +0100
Branches: master
https://developer.blender.org/rB1ee43c5aef03c1a3218163d9450545fdb9ad4482

Fix T49856: Blender 2.78 crashes after loading data from a blendfile

Issue here was that py API code was keeping references (pointers) to the
liniked data-blocks, which can actually be duplicated and then deleted
during the 'make local' process...

Would have like to find a better way than passing optional GHash to get
the oldid->newid mapping, but could not think of a better idea.

===

M   source/blender/blenkernel/BKE_library.h
M   source/blender/blenkernel/intern/blender_copybuffer.c
M   source/blender/blenkernel/intern/library.c
M   source/blender/editors/object/object_relations.c
M   source/blender/python/intern/bpy_library_load.c
M   source/blender/windowmanager/intern/wm_files_link.c

===

diff --git a/source/blender/blenkernel/BKE_library.h 
b/source/blender/blenkernel/BKE_library.h
index 0d82de0..79373e3 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -39,6 +39,7 @@ extern "C" {
 #include "BLI_compiler_attrs.h"
 
 struct BlendThumbnail;
+struct GHash;
 struct ListBase;
 struct ID;
 struct ImBuf;
@@ -125,7 +126,8 @@ void BKE_id_ui_prefix(char name[66 + 1], const struct ID 
*id);
 void BKE_library_free(struct Library *lib);
 
 void BKE_library_make_local(
-struct Main *bmain, const struct Library *lib, const bool 
untagged_only, const bool set_fake);
+struct Main *bmain, const struct Library *lib, struct GHash 
*old_to_new_ids,
+const bool untagged_only, const bool set_fake);
 
 
 /* use when "" is given to new_id() */
diff --git a/source/blender/blenkernel/intern/blender_copybuffer.c 
b/source/blender/blenkernel/intern/blender_copybuffer.c
index a4c2812..e57524a 100644
--- a/source/blender/blenkernel/intern/blender_copybuffer.c
+++ b/source/blender/blenkernel/intern/blender_copybuffer.c
@@ -101,7 +101,7 @@ bool BKE_copybuffer_read(Main *bmain_dst, const char 
*libname, ReportList *repor
IMB_colormanagement_check_file_config(bmain_dst);
/* Append, rather than linking. */
Library *lib = BLI_findstring(_dst->library, libname, 
offsetof(Library, filepath));
-   BKE_library_make_local(bmain_dst, lib, true, false);
+   BKE_library_make_local(bmain_dst, lib, NULL, true, false);
/* Important we unset, otherwise these object wont
 * link into other scenes from this blend file.
 */
@@ -150,7 +150,7 @@ bool BKE_copybuffer_paste(bContext *C, const char *libname, 
const short flag, Re
 
/* append, rather than linking */
lib = BLI_findstring(>library, libname, offsetof(Library, 
filepath));
-   BKE_library_make_local(bmain, lib, true, false);
+   BKE_library_make_local(bmain, lib, NULL, true, false);
 
/* important we unset, otherwise these object wont
 * link into other scenes from this blend file */
diff --git a/source/blender/blenkernel/intern/library.c 
b/source/blender/blenkernel/intern/library.c
index 1461215..622f79d 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -73,6 +73,7 @@
 
 #include "BLI_blenlib.h"
 #include "BLI_utildefines.h"
+#include "BLI_ghash.h"
 #include "BLI_linklist.h"
 #include "BLI_memarena.h"
 
@@ -1640,7 +1641,8 @@ void BKE_main_id_clear_newpoins(Main *bmain)
  * We'll probably need at some point a true dependency graph between 
datablocks, but for now this should work
  * good enough (performances is not a critical point here anyway).
  */
-void BKE_library_make_local(Main *bmain, const Library *lib, const bool 
untagged_only, const bool set_fake)
+void BKE_library_make_local(
+Main *bmain, const Library *lib, GHash *old_to_new_ids, const bool 
untagged_only, const bool set_fake)
 {
ListBase *lbarray[MAX_LIBARRAY];
ID *id, *id_next;
@@ -1712,6 +1714,9 @@ void BKE_library_make_local(Main *bmain, const Library 
*lib, const bool untagged
BLI_assert(id->lib != NULL);
 
BKE_libblock_remap(bmain, id, id->newid, 
ID_REMAP_SKIP_INDIRECT_USAGE);
+   if (old_to_new_ids) {
+   BLI_ghash_insert(old_to_new_ids, id, id->newid);
+   }
}
 
/* Third step: remove datablocks that have been copied to be localized 
and are no more used in the end...
diff --git a/source/blender/editors/object/object_relations.c 
b/source/blender/editors/object/object_relations.c
index d1232fd..16ee6f4 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -2235,7 +2235,7 @@ static int make_local_exec(bContext *C, wmOperator *op)
   

[Bf-blender-cvs] [bf1e9bc] master: Ceres: Update to the latest actual version

2016-11-01 Thread Sergey Sharybin
Commit: bf1e9bc613377a4a4d5dcf9f50e757a4feb0928f
Author: Sergey Sharybin
Date:   Tue Nov 1 11:29:33 2016 +0100
Branches: master
https://developer.blender.org/rBbf1e9bc613377a4a4d5dcf9f50e757a4feb0928f

Ceres: Update to the latest actual version

Brings all the fixes and improvements done in upstream within the last 13 
months.

===

M   extern/ceres/CMakeLists.txt
M   extern/ceres/ChangeLog
M   extern/ceres/bundle.sh
M   extern/ceres/files.txt
M   extern/ceres/include/ceres/cost_function_to_functor.h
M   extern/ceres/include/ceres/covariance.h
M   extern/ceres/include/ceres/dynamic_numeric_diff_cost_function.h
M   extern/ceres/include/ceres/gradient_checker.h
M   extern/ceres/include/ceres/internal/port.h
M   extern/ceres/include/ceres/iteration_callback.h
M   extern/ceres/include/ceres/jet.h
M   extern/ceres/include/ceres/local_parameterization.h
M   extern/ceres/include/ceres/numeric_diff_cost_function.h
M   extern/ceres/include/ceres/problem.h
M   extern/ceres/include/ceres/rotation.h
M   extern/ceres/include/ceres/solver.h
M   extern/ceres/include/ceres/version.h
M   extern/ceres/internal/ceres/compressed_row_jacobian_writer.cc
M   extern/ceres/internal/ceres/covariance.cc
M   extern/ceres/internal/ceres/covariance_impl.cc
M   extern/ceres/internal/ceres/covariance_impl.h
A   extern/ceres/internal/ceres/gradient_checker.cc
M   extern/ceres/internal/ceres/gradient_checking_cost_function.cc
M   extern/ceres/internal/ceres/gradient_checking_cost_function.h
M   extern/ceres/internal/ceres/gradient_problem_solver.cc
A   extern/ceres/internal/ceres/is_close.cc
A   extern/ceres/internal/ceres/is_close.h
M   extern/ceres/internal/ceres/line_search_minimizer.cc
M   extern/ceres/internal/ceres/local_parameterization.cc
M   extern/ceres/internal/ceres/map_util.h
M   extern/ceres/internal/ceres/parameter_block.h
M   extern/ceres/internal/ceres/problem.cc
M   extern/ceres/internal/ceres/problem_impl.cc
M   extern/ceres/internal/ceres/problem_impl.h
M   extern/ceres/internal/ceres/reorder_program.cc
M   extern/ceres/internal/ceres/residual_block.h
M   extern/ceres/internal/ceres/schur_complement_solver.cc
M   extern/ceres/internal/ceres/solver.cc
M   extern/ceres/internal/ceres/sparse_normal_cholesky_solver.cc
M   extern/ceres/internal/ceres/stringprintf.cc
M   extern/ceres/internal/ceres/trust_region_minimizer.cc
M   extern/ceres/internal/ceres/trust_region_minimizer.h
A   extern/ceres/internal/ceres/trust_region_step_evaluator.cc
A   extern/ceres/internal/ceres/trust_region_step_evaluator.h
M   extern/ceres/internal/ceres/trust_region_strategy.h

===

diff --git a/extern/ceres/CMakeLists.txt b/extern/ceres/CMakeLists.txt
index 2ad8c54..a6e9cd9 100644
--- a/extern/ceres/CMakeLists.txt
+++ b/extern/ceres/CMakeLists.txt
@@ -73,10 +73,12 @@ set(SRC
internal/ceres/file.cc
internal/ceres/generated/partitioned_matrix_view_d_d_d.cc
internal/ceres/generated/schur_eliminator_d_d_d.cc
+   internal/ceres/gradient_checker.cc
internal/ceres/gradient_checking_cost_function.cc
internal/ceres/gradient_problem.cc
internal/ceres/gradient_problem_solver.cc
internal/ceres/implicit_schur_complement.cc
+   internal/ceres/is_close.cc
internal/ceres/iterative_schur_complement_solver.cc
internal/ceres/lapack.cc
internal/ceres/levenberg_marquardt_strategy.cc
@@ -116,6 +118,7 @@ set(SRC
internal/ceres/triplet_sparse_matrix.cc
internal/ceres/trust_region_minimizer.cc
internal/ceres/trust_region_preprocessor.cc
+   internal/ceres/trust_region_step_evaluator.cc
internal/ceres/trust_region_strategy.cc
internal/ceres/types.cc
internal/ceres/wall_time.cc
@@ -204,6 +207,7 @@ set(SRC
internal/ceres/householder_vector.h
internal/ceres/implicit_schur_complement.h
internal/ceres/integral_types.h
+   internal/ceres/is_close.h
internal/ceres/iterative_schur_complement_solver.h
internal/ceres/lapack.h
internal/ceres/levenberg_marquardt_strategy.h
@@ -248,6 +252,7 @@ set(SRC
internal/ceres/triplet_sparse_matrix.h
internal/ceres/trust_region_minimizer.h
internal/ceres/trust_region_preprocessor.h
+   internal/ceres/trust_region_step_evaluator.h
internal/ceres/trust_region_strategy.h
internal/ceres/visibility_based_preconditioner.h
internal/ceres/wall_time.h
diff --git a/extern/ceres/ChangeLog b/extern/ceres/ChangeLog
index 0e6c195..ae8d42a 100644
--- a/extern/ceres/ChangeLog
+++ b/extern/ceres/ChangeLog
@@ -1,659 +1,588 @@
-commit aef9c9563b08d5f39eee1576af133a84749d1b48
-Author: Alessandro Gentilini