[Bf-blender-cvs] [026cb6b] master: FileBrowser: Cleanup: rename some (really ugly) enum names.

2015-01-04 Thread Bastien Montagne
Commit: 026cb6bdebd7174fbb829c441c0423f6cf31324c
Author: Bastien Montagne
Date:   Sun Jan 4 12:03:47 2015 +0100
Branches: master
https://developer.blender.org/rB026cb6bdebd7174fbb829c441c0423f6cf31324c

FileBrowser: Cleanup: rename some (really ugly) enum names.

===

M   source/blender/editors/curve/editfont.c
M   source/blender/editors/io/io_collada.c
M   source/blender/editors/object/object_modifier.c
M   source/blender/editors/physics/rigidbody_world.c
M   source/blender/editors/render/render_shading.c
M   source/blender/editors/screen/screendump.c
M   source/blender/editors/sound/sound_ops.c
M   source/blender/editors/space_clip/clip_ops.c
M   source/blender/editors/space_file/file_draw.c
M   source/blender/editors/space_file/file_ops.c
M   source/blender/editors/space_file/filelist.c
M   source/blender/editors/space_file/filesel.c
M   source/blender/editors/space_file/space_file.c
M   source/blender/editors/space_graph/graph_edit.c
M   source/blender/editors/space_image/image_ops.c
M   source/blender/editors/space_node/node_add.c
M   source/blender/editors/space_sequencer/sequencer_add.c
M   source/blender/editors/space_sequencer/sequencer_edit.c
M   source/blender/editors/space_text/text_ops.c
M   source/blender/editors/space_view3d/view3d_edit.c
M   source/blender/makesdna/DNA_space_types.h
M   source/blender/makesrna/intern/rna_space.c
M   source/blender/windowmanager/intern/wm_operators.c

===

diff --git a/source/blender/editors/curve/editfont.c 
b/source/blender/editors/curve/editfont.c
index 1a4b0c0..8393acc 100644
--- a/source/blender/editors/curve/editfont.c
+++ b/source/blender/editors/curve/editfont.c
@@ -500,7 +500,7 @@ void FONT_OT_text_paste_from_file(wmOperatorType *ot)
ot-flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
/* properties */
-   WM_operator_properties_filesel(ot, FOLDERFILE | TEXTFILE, FILE_SPECIAL, 
FILE_OPENFILE,
+   WM_operator_properties_filesel(ot, FILE_TYPE_FOLDER | FILE_TYPE_TEXT, 
FILE_SPECIAL, FILE_OPENFILE,
   WM_FILESEL_FILEPATH, 
FILE_DEFAULTDISPLAY);
 }
 
@@ -558,7 +558,7 @@ void FONT_OT_text_paste_from_clipboard(wmOperatorType *ot)
ot-flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
/* properties */
-   WM_operator_properties_filesel(ot, FOLDERFILE | TEXTFILE, FILE_SPECIAL, 
FILE_OPENFILE,
+   WM_operator_properties_filesel(ot, FILE_TYPE_FOLDER | FILE_TYPE_TEXT, 
FILE_SPECIAL, FILE_OPENFILE,
   WM_FILESEL_FILEPATH, 
FILE_DEFAULTDISPLAY);
 }
 
@@ -1835,7 +1835,7 @@ void FONT_OT_open(wmOperatorType *ot)
ot-flag = OPTYPE_REGISTER | OPTYPE_UNDO;

/* properties */
-   WM_operator_properties_filesel(ot, FOLDERFILE | FTFONTFILE, 
FILE_SPECIAL, FILE_OPENFILE,
+   WM_operator_properties_filesel(ot, FILE_TYPE_FOLDER | FILE_TYPE_FTFONT, 
FILE_SPECIAL, FILE_OPENFILE,
   WM_FILESEL_FILEPATH | 
WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
 }
 
diff --git a/source/blender/editors/io/io_collada.c 
b/source/blender/editors/io/io_collada.c
index 3ea2fba..491152b 100644
--- a/source/blender/editors/io/io_collada.c
+++ b/source/blender/editors/io/io_collada.c
@@ -298,7 +298,7 @@ void WM_OT_collada_export(wmOperatorType *ot)
 
ot-ui = wm_collada_export_draw;
 
-   WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, 
FILE_BLENDER, FILE_SAVE,
+   WM_operator_properties_filesel(ot, FILE_TYPE_FOLDER | 
FILE_TYPE_COLLADA, FILE_BLENDER, FILE_SAVE,
   WM_FILESEL_FILEPATH, 
FILE_DEFAULTDISPLAY);
 
RNA_def_boolean(ot-srna,
@@ -444,7 +444,7 @@ void WM_OT_collada_import(wmOperatorType *ot)
 
ot-ui = wm_collada_import_draw;
 
-   WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, 
FILE_BLENDER, FILE_OPENFILE,
+   WM_operator_properties_filesel(ot, FILE_TYPE_FOLDER | 
FILE_TYPE_COLLADA, FILE_BLENDER, FILE_OPENFILE,
   WM_FILESEL_FILEPATH, 
FILE_DEFAULTDISPLAY);
 
RNA_def_boolean(ot-srna,
diff --git a/source/blender/editors/object/object_modifier.c 
b/source/blender/editors/object/object_modifier.c
index 7ef8bb1..9755636 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -1354,7 +1354,7 @@ void OBJECT_OT_multires_external_save(wmOperatorType *ot)
/* flags */
ot-flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
 
-   WM_operator_properties_filesel(ot, FOLDERFILE | BTXFILE, FILE_SPECIAL, 
FILE_SAVE,
+   WM_operator_properties_filesel(ot, FILE_TYPE_FOLDER | FILE_TYPE_BTX, 
FILE_SPECIAL, FILE_SAVE,
   WM_FILESEL_FILEPATH | 
WM_FILESEL_RELPATH, 

[Bf-blender-cvs] [44e0265] master: Fix for crash for 'Edit Source'

2015-01-04 Thread Campbell Barton
Commit: 44e02651ab369772db492e1c58e7a8860d092df2
Author: Campbell Barton
Date:   Sun Jan 4 22:22:37 2015 +1100
Branches: master
https://developer.blender.org/rB44e02651ab369772db492e1c58e7a8860d092df2

Fix for crash for 'Edit Source'

was accessing freed menu region.

===

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 c7ceea0..33eee81 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -9217,6 +9217,7 @@ static int ui_popup_handler(bContext *C, const wmEvent 
*event, void *userdata)

ui_popup_block_free(C, menu);
UI_popup_handlers_remove(win-modalhandlers, menu);
+   CTX_wm_menu_set(C, NULL);
 
 #ifdef USE_DRAG_TOGGLE
{

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


[Bf-blender-cvs] [3447944] master: sequencer: don't return big values (fill pointer instead)

2015-01-04 Thread Campbell Barton
Commit: 3447944c3f6a9afdf608c10033f090b11c15753c
Author: Campbell Barton
Date:   Sun Jan 4 22:46:54 2015 +1100
Branches: master
https://developer.blender.org/rB3447944c3f6a9afdf608c10033f090b11c15753c

sequencer: don't return big values (fill pointer instead)

===

M   source/blender/blenkernel/BKE_sequencer.h
M   source/blender/blenkernel/intern/sequencer.c
M   source/blender/editors/render/render_opengl.c
M   source/blender/editors/space_sequencer/sequencer_draw.c
M   source/blender/render/intern/source/pipeline.c

===

diff --git a/source/blender/blenkernel/BKE_sequencer.h 
b/source/blender/blenkernel/BKE_sequencer.h
index 5a0c7ac..24e8d63 100644
--- a/source/blender/blenkernel/BKE_sequencer.h
+++ b/source/blender/blenkernel/BKE_sequencer.h
@@ -102,8 +102,10 @@ typedef struct SeqRenderData {
bool is_proxy_render;
 } SeqRenderData;
 
-SeqRenderData BKE_sequencer_new_render_data(struct EvaluationContext 
*eval_ctx, struct Main *bmain,
-struct Scene *scene, int rectx, 
int recty, int preview_render_size);
+void BKE_sequencer_new_render_data(
+struct EvaluationContext *eval_ctx, struct Main *bmain, struct Scene 
*scene,
+int rectx, int recty, int preview_render_size,
+SeqRenderData *r_context);
 
 /* Wipe effect */
 enum {
diff --git a/source/blender/blenkernel/intern/sequencer.c 
b/source/blender/blenkernel/intern/sequencer.c
index 1344062..b43e481 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -515,24 +515,22 @@ void BKE_sequencer_pixel_from_sequencer_space_v4(struct 
Scene *scene, float pixe
 
 /*** sequencer pipeline functions 
*/
 
-SeqRenderData BKE_sequencer_new_render_data(EvaluationContext *eval_ctx,
-Main *bmain, Scene *scene, int 
rectx, int recty,
-int preview_render_size)
-{
-   SeqRenderData rval;
-
-   rval.bmain = bmain;
-   rval.scene = scene;
-   rval.rectx = rectx;
-   rval.recty = recty;
-   rval.preview_render_size = preview_render_size;
-   rval.motion_blur_samples = 0;
-   rval.motion_blur_shutter = 0;
-   rval.eval_ctx = eval_ctx;
-   rval.skip_cache = false;
-   rval.is_proxy_render = false;
-
-   return rval;
+void BKE_sequencer_new_render_data(
+EvaluationContext *eval_ctx,
+Main *bmain, Scene *scene, int rectx, int recty,
+int preview_render_size,
+SeqRenderData *r_context)
+{
+   r_context-eval_ctx = eval_ctx;
+   r_context-bmain = bmain;
+   r_context-scene = scene;
+   r_context-rectx = rectx;
+   r_context-recty = recty;
+   r_context-preview_render_size = preview_render_size;
+   r_context-motion_blur_samples = 0;
+   r_context-motion_blur_shutter = 0;
+   r_context-skip_cache = false;
+   r_context-is_proxy_render = false;
 }
 
 /* * iterator ** */
@@ -1593,9 +1591,12 @@ void BKE_sequencer_proxy_rebuild(SeqIndexBuildContext 
*context, short *stop, sho
 
/* fail safe code */
 
-   render_context = BKE_sequencer_new_render_data(bmain-eval_ctx, bmain, 
context-scene,
-   (scene-r.size * (float) 
scene-r.xsch) / 100.0f + 0.5f,
-   (scene-r.size * (float) 
scene-r.ysch) / 100.0f + 0.5f, 100);
+   BKE_sequencer_new_render_data(
+   bmain-eval_ctx, bmain, context-scene,
+   (scene-r.size * (float) scene-r.xsch) / 100.0f + 0.5f,
+   (scene-r.size * (float) scene-r.ysch) / 100.0f + 0.5f, 100,
+   render_context);
+
render_context.skip_cache = true;
render_context.is_proxy_render = true;
 
diff --git a/source/blender/editors/render/render_opengl.c 
b/source/blender/editors/render/render_opengl.c
index cd56936..8024add 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -143,8 +143,10 @@ static void screen_opengl_render_apply(OGLRender 
*oglrender)
int chanshown = sseq ? sseq-chanshown : 0;
struct bGPdata *gpd = (sseq  (sseq-flag  SEQ_SHOW_GPENCIL)) 
? sseq-gpd : NULL;
 
-   context = 
BKE_sequencer_new_render_data(oglrender-bmain-eval_ctx, oglrender-bmain,
-   scene, 
oglrender-sizex, oglrender-sizey, 100.0f);
+   BKE_sequencer_new_render_data(
+   oglrender-bmain-eval_ctx, oglrender-bmain, scene,
+   oglrender-sizex, oglrender-sizey, 100.0f,
+   context);
 
ibuf = BKE_sequencer_give_ibuf(context, CFRA, 

[Bf-blender-cvs] [c7eb83b] master: Fix sequencer border-flickering

2015-01-04 Thread Campbell Barton
Commit: c7eb83bc17f3465aa8c9c9aeb3998cc5882ac4ec
Author: Campbell Barton
Date:   Sun Jan 4 23:20:56 2015 +1100
Branches: master
https://developer.blender.org/rBc7eb83bc17f3465aa8c9c9aeb3998cc5882ac4ec

Fix sequencer border-flickering

Offscreen viewport drawing wasn't properly restoring the theme.
Add API calls to store/restore the theme so it can be temporarily overridden.

===

M   source/blender/editors/include/UI_resources.h
M   source/blender/editors/interface/resources.c
M   source/blender/editors/space_sequencer/sequencer_draw.c
M   source/blender/editors/space_view3d/view3d_draw.c

===

diff --git a/source/blender/editors/include/UI_resources.h 
b/source/blender/editors/include/UI_resources.h
index e6db938..d289e90 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -301,6 +301,11 @@ enum {
 struct bTheme;
 struct PointerRNA;
 
+struct bThemeState {
+   struct bTheme *theme;
+   int spacetype, regionid;
+};
+
 // THE CODERS API FOR THEMES:
 
 // sets the color
@@ -360,6 +365,9 @@ voidUI_SetTheme(int spacetype, int regionid);
 // get current theme
 struct bTheme *UI_GetTheme(void);
 
+void UI_Theme_Store(struct bThemeState *theme_state);
+void UI_Theme_Restore(struct bThemeState *theme_state);
+
 // return shadow width outside menus and popups */
 int UI_ThemeMenuShadowWidth(void);
 
diff --git a/source/blender/editors/interface/resources.c 
b/source/blender/editors/interface/resources.c
index 941ef08..aa5b257 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -61,9 +61,16 @@
 /* global for themes */
 typedef void (*VectorDrawFunc)(int x, int y, int w, int h, float alpha);
 
-static bTheme *theme_active = NULL;
-static int theme_spacetype = SPACE_VIEW3D;
-static int theme_regionid = RGN_TYPE_WINDOW;
+/* be sure to keep 'bThemeState' in sync */
+static struct bThemeState g_theme_state = {
+NULL,
+SPACE_VIEW3D,
+RGN_TYPE_WINDOW,
+};
+
+#define theme_active g_theme_state.theme
+#define theme_spacetype g_theme_state.spacetype
+#define theme_regionid g_theme_state.regionid
 
 void ui_resources_init(void)
 {
@@ -1215,6 +1222,18 @@ bTheme *UI_GetTheme(void)
return U.themes.first;
 }
 
+/**
+ * for the rare case we need to temp swap in a different theme (offscreen 
render)
+ */
+void UI_Theme_Store(struct bThemeState *theme_state)
+{
+   *theme_state = g_theme_state;
+}
+void UI_Theme_Restore(struct bThemeState *theme_state)
+{
+   g_theme_state = *theme_state;
+}
+
 /* for space windows only */
 void UI_ThemeColor(int colorid)
 {
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c 
b/source/blender/editors/space_sequencer/sequencer_draw.c
index e4d9c98..293a68c 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -1529,7 +1529,6 @@ void draw_timeline_seq(const bContext *C, ARegion *ar)
 
if (sseq-draw_flag  SEQ_DRAW_BACKDROP) {
draw_image_seq(C, scene, ar, sseq, scene-r.cfra, 0, false, 
true);
-   UI_SetTheme(SPACE_SEQ, RGN_TYPE_WINDOW);
UI_view2d_view_ortho(v2d);
}

diff --git a/source/blender/editors/space_view3d/view3d_draw.c 
b/source/blender/editors/space_view3d/view3d_draw.c
index 44c0460..65721d5 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -3012,6 +3012,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, 
ARegion *ar, int winx,
   float viewmat[4][4], float winmat[4][4],
   bool do_bgpic, bool do_sky)
 {
+   struct bThemeState theme_state;
int bwinx, bwiny;
rcti brect;
 
@@ -3029,7 +3030,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, 
ARegion *ar, int winx,
ar-winrct.xmax = winx;
ar-winrct.ymax = winy;
 
-   /* set theme */
+   UI_Theme_Store(theme_state);
UI_SetTheme(SPACE_VIEW3D, RGN_TYPE_WINDOW);
 
/* set flags */
@@ -3076,8 +3077,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, 
ARegion *ar, int winx,
 
glPopMatrix();
 
-   /* XXX, without this the sequencer flickers with opengl draw enabled, 
need to find out why - campbell */
-   glColor4ub(255, 255, 255, 255);
+   UI_Theme_Restore(theme_state);
 
G.f = ~G_RENDER_OGL;
 }
@@ -3148,7 +3148,7 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, 
View3D *v3d, ARegion *ar, in

if (ibuf-rect_float  ibuf-rect)
IMB_rect_from_float(ibuf);
-   
+
return ibuf;
 }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org

[Bf-blender-cvs] [8abdc899] master: Sequencer: Preview dragging playhead over strips

2015-01-04 Thread Campbell Barton
Commit: 8abdc89912e4ae042eeeb5f0e33e833a89eefb8f
Author: Campbell Barton
Date:   Mon Jan 5 02:12:50 2015 +1100
Branches: master
https://developer.blender.org/rB8abdc89912e4ae042eeeb5f0e33e833a89eefb8f

Sequencer: Preview dragging playhead over strips

Bring back the 2.4x feature.

also show a highlight when a strip is being previewed.

===

M   source/blender/editors/animation/anim_ops.c
M   source/blender/editors/include/ED_sequencer.h
M   source/blender/editors/space_sequencer/sequencer_draw.c
M   source/blender/editors/space_sequencer/sequencer_edit.c
M   source/blender/editors/space_sequencer/sequencer_intern.h

===

diff --git a/source/blender/editors/animation/anim_ops.c 
b/source/blender/editors/animation/anim_ops.c
index 8a9e02a..1a043b4 100644
--- a/source/blender/editors/animation/anim_ops.c
+++ b/source/blender/editors/animation/anim_ops.c
@@ -56,6 +56,7 @@
 
 #include ED_anim_api.h
 #include ED_screen.h
+#include ED_sequencer.h
 
 #include anim_intern.h
 
@@ -143,6 +144,25 @@ static int frame_from_event(bContext *C, const wmEvent 
*event)
return frame;
 }
 
+static void change_frame_seq_preview_begin(bContext *C, const wmEvent *event)
+{
+   ScrArea *sa = CTX_wm_area(C);
+   if (sa  sa-spacetype == SPACE_SEQ) {
+   SpaceSeq *sseq = sa-spacedata.first;
+   if (ED_space_sequencer_check_show_strip(sseq)) {
+   ED_sequencer_special_preview_set(C, event-mval);
+   }
+   }
+}
+static void change_frame_seq_preview_end(bContext *C)
+{
+   if (ED_sequencer_special_preview_get() != NULL) {
+   Scene *scene = CTX_data_scene(C);
+   ED_sequencer_special_preview_clear();
+   WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
+   }
+}
+
 /* Modal Operator init */
 static int change_frame_invoke(bContext *C, wmOperator *op, const wmEvent 
*event)
 {
@@ -152,6 +172,8 @@ static int change_frame_invoke(bContext *C, wmOperator *op, 
const wmEvent *event
 */
RNA_int_set(op-ptr, frame, frame_from_event(C, event));
 
+   change_frame_seq_preview_begin(C, event);
+
change_frame_apply(C, op);

/* add temp handler */
@@ -160,14 +182,21 @@ static int change_frame_invoke(bContext *C, wmOperator 
*op, const wmEvent *event
return OPERATOR_RUNNING_MODAL;
 }
 
+static void change_frame_cancel(bContext *C, wmOperator *UNUSED(op))
+{
+   change_frame_seq_preview_end(C);
+}
+
 /* Modal event handling of frame changing */
 static int change_frame_modal(bContext *C, wmOperator *op, const wmEvent 
*event)
 {
+   int ret = OPERATOR_RUNNING_MODAL;
/* execute the events */
switch (event-type) {
case ESCKEY:
-   return OPERATOR_FINISHED;
-   
+   ret = OPERATOR_FINISHED;
+   break;
+
case MOUSEMOVE:
RNA_int_set(op-ptr, frame, frame_from_event(C, 
event));
change_frame_apply(C, op);
@@ -180,7 +209,7 @@ static int change_frame_modal(bContext *C, wmOperator *op, 
const wmEvent *event)
 * the modal op) doesn't work for some reason
 */
if (event-val == KM_RELEASE)
-   return OPERATOR_FINISHED;
+   ret = OPERATOR_FINISHED;
break;
 
case LEFTCTRLKEY:
@@ -194,7 +223,11 @@ static int change_frame_modal(bContext *C, wmOperator *op, 
const wmEvent *event)
break;
}
 
-   return OPERATOR_RUNNING_MODAL;
+   if (ret == OPERATOR_FINISHED) {
+   change_frame_seq_preview_end(C);
+   }
+
+   return ret;
 }
 
 static void ANIM_OT_change_frame(wmOperatorType *ot)
@@ -209,6 +242,7 @@ static void ANIM_OT_change_frame(wmOperatorType *ot)
/* api callbacks */
ot-exec = change_frame_exec;
ot-invoke = change_frame_invoke;
+   ot-cancel = change_frame_cancel;
ot-modal = change_frame_modal;
ot-poll = change_frame_poll;

diff --git a/source/blender/editors/include/ED_sequencer.h 
b/source/blender/editors/include/ED_sequencer.h
index 4e9d67d..94885c2 100644
--- a/source/blender/editors/include/ED_sequencer.h
+++ b/source/blender/editors/include/ED_sequencer.h
@@ -27,6 +27,7 @@
 #ifndef __ED_SEQUENCER_H__
 #define __ED_SEQUENCER_H__
 
+struct bContext;
 struct Scene;
 struct Sequence;
 struct SpaceSeq;
@@ -39,7 +40,12 @@ bool ED_space_sequencer_check_show_maskedit(struct SpaceSeq 
*sseq, struct Scene
 int  ED_space_sequencer_maskedit_poll(struct bContext *C);
 
 bool ED_space_sequencer_check_show_imbuf(struct SpaceSeq *sseq);
+bool ED_space_sequencer_check_show_strip(struct SpaceSeq *sseq);
 
 void 

[Bf-blender-cvs] [a08c5e1] master: Partial fix for T43113: Filebrowser: Empty folders do not contain go back arrow.

2015-01-04 Thread Bastien Montagne
Commit: a08c5e1183731cdafd85ecf51c587cabf39da19b
Author: Bastien Montagne
Date:   Sun Jan 4 17:54:12 2015 +0100
Branches: master
https://developer.blender.org/rBa08c5e1183731cdafd85ecf51c587cabf39da19b

Partial fix for T43113: Filebrowser: Empty folders do not contain go back arrow.

Do not allow going into un-readable directories at all.
Note we might want to reflect that 'state' in UI for users too, but that will be
for later.

Also, not quite sure this fix the windows case, will have to start my VM... :/

===

M   source/blender/blenlib/intern/path_util.c
M   source/blender/editors/space_file/filelist.c

===

diff --git a/source/blender/blenlib/intern/path_util.c 
b/source/blender/blenlib/intern/path_util.c
index 8b57018..3fff222 100644
--- a/source/blender/blenlib/intern/path_util.c
+++ b/source/blender/blenlib/intern/path_util.c
@@ -1087,18 +1087,22 @@ void BLI_char_switch(char *string, char from, char to)
 }
 
 /**
- * Strips off nonexistent subdirectories from the end of *dir, leaving the 
path of
- * the lowest-level directory that does exist.
+ * Strips off nonexistent (or non-accessible) subdirectories from the end of 
*dir, leaving the path of
+ * the lowest-level directory that does exist and we can read.
  */
 void BLI_make_exist(char *dir)
 {
int a;
+   char par_path[PATH_MAX + 3];
 
BLI_char_switch(dir, ALTSEP, SEP);
 
a = strlen(dir);
 
-   while (!BLI_is_dir(dir)) {
+   for (BLI_join_dirfile(par_path, sizeof(par_path), dir, ..);
+!(BLI_is_dir(dir)  BLI_exists(par_path));
+BLI_join_dirfile(par_path, sizeof(par_path), dir, ..))
+   {
a--;
while (dir[a] != SEP) {
a--;
diff --git a/source/blender/editors/space_file/filelist.c 
b/source/blender/editors/space_file/filelist.c
index 2e6dc7b..f35a207 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -973,9 +973,14 @@ static void filelist_read_dir(struct FileList *filelist)
filelist-fidx = NULL;
filelist-filelist = NULL;
 
+   BLI_make_exist(filelist-dir);
BLI_cleanup_dir(G.main-name, filelist-dir);
filelist-numfiles = BLI_filelist_dir_contents(filelist-dir, 
(filelist-filelist));
 
+   /* We shall *never* get an empty list here, since we now the dir exists 
and is readable
+* (ensured by BLI_make_exist()). So we expect at the very least the 
parent '..' entry. */
+   BLI_assert(filelist-numfiles != 0);
+
filelist_setfiletypes(filelist);
 }
 
@@ -994,7 +999,6 @@ static void filelist_read_library(struct FileList *filelist)
int num;
struct direntry *file;
 
-   BLI_make_exist(filelist-dir);
filelist_read_dir(filelist);
file = filelist-filelist;
for (num = 0; num  filelist-numfiles; num++, file++) {

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


[Bf-blender-cvs] [3993965] asset-experiments: Merge branch 'master' into asset-experiments

2015-01-04 Thread Bastien Montagne
Commit: 3993965bd7a7951e40135ba27c7da2ff80dfd50d
Author: Bastien Montagne
Date:   Sun Jan 4 18:31:23 2015 +0100
Branches: asset-experiments
https://developer.blender.org/rB3993965bd7a7951e40135ba27c7da2ff80dfd50d

Merge branch 'master' into asset-experiments

Conflicts:
source/blender/editors/space_file/file_draw.c
source/blender/editors/space_file/filelist.c
source/blender/editors/space_file/filesel.c
source/blender/makesdna/DNA_space_types.h
source/blender/windowmanager/intern/wm_operators.c

===



===

diff --cc source/blender/editors/space_file/file_draw.c
index 9ebf2d7,5d0734d..366dec6
--- a/source/blender/editors/space_file/file_draw.c
+++ b/source/blender/editors/space_file/file_draw.c
@@@ -509,11 -539,10 +509,11 @@@ void file_draw_list(const bContext *C, 
is_icon = 1;
}

-   file_draw_preview(block, files, i, sx, sy, imb, layout, 
!is_icon  (file-flags  IMAGEFILE), do_drag);
 -  file_draw_preview(block, file, sx, sy, imb, layout, 
!is_icon  (file-flags  FILE_TYPE_IMAGE), do_drag);
++  file_draw_preview(block, files, i, sx, sy, imb, layout, 
!is_icon  (file-flags  FILE_TYPE_IMAGE), do_drag);
}
else {
 -  file_draw_icon(block, file-path, sx, sy - (UI_UNIT_Y / 
6), get_file_icon(file), ICON_DEFAULT_WIDTH_SCALE, ICON_DEFAULT_HEIGHT_SCALE, 
do_drag);
 +  file_draw_icon(block, file-path, sx, sy - (UI_UNIT_Y / 
6), filelist_geticon(files, i),
 + ICON_DEFAULT_WIDTH_SCALE, 
ICON_DEFAULT_HEIGHT_SCALE, do_drag);
sx += ICON_DEFAULT_WIDTH_SCALE + 0.2f * UI_UNIT_X;
}
  
@@@ -546,9 -575,9 +546,9 @@@
}
}
  
-   if (!(file-selflag  EDITING_FILE)) {
+   if (!(file-selflag  FILE_SEL_EDITING)) {
int tpos = (FILE_IMGDISPLAY == params-display) ? sy - 
layout-tile_h + layout-textheight : sy;
 -  file_draw_string(sx + 1, tpos, file-relname, 
(float)textwidth, textheight, align);
 +  file_draw_string(sx + 1, tpos, name, (float)textwidth, 
textheight, align);
}
  
if (params-display == FILE_SHORTDISPLAY) {
diff --cc source/blender/editors/space_file/filelist.c
index 8478f00,f35a207..9490028
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@@ -259,10 -237,8 +259,10 @@@ typedef struct FileList 
bool (*filterf)(struct direntry *, const char *, FileListFilter *);
  } FileList;
  
 +#define FILELIST_MAX_RECURSION 3
 +
  #define FILENAME_IS_BREADCRUMBS(_n) \
-   (((_n)[0] == '.'  (_n)[1] == '\0') || ((_n)[0] == '.'  (_n)[1] == 
'.'  (_n)[2] == '\0'))
+   ((_n)[0] == '.'  ((_n)[1] == '\0' || ((_n)[1] == '.'  (_n)[2] == 
'\0')))
  
  #define SPECIAL_IMG_SIZE 48
  #define SPECIAL_IMG_ROWS 4
@@@ -454,35 -414,8 +456,35 @@@ static int compare_extension(const voi
if (strcmp(entry2-relname, .) == 0) return (1);
if (strcmp(entry1-relname, ..) == 0) return (-1);
if (strcmp(entry2-relname, ..) == 0) return (1);
 -  
 -  return (BLI_strcasecmp(sufix1, sufix2));
 +
-   if ((entry1-flags  BLENDERLIB)  !(entry2-flags  BLENDERLIB)) 
return -1;
-   if (!(entry1-flags  BLENDERLIB)  (entry2-flags  BLENDERLIB)) 
return 1;
-   if ((entry1-flags  BLENDERLIB)  (entry2-flags  BLENDERLIB)) {
++  if ((entry1-flags  FILE_TYPE_BLENDERLIB)  !(entry2-flags  
FILE_TYPE_BLENDERLIB)) return -1;
++  if (!(entry1-flags  FILE_TYPE_BLENDERLIB)  (entry2-flags  
FILE_TYPE_BLENDERLIB)) return 1;
++  if ((entry1-flags  FILE_TYPE_BLENDERLIB)  (entry2-flags  
FILE_TYPE_BLENDERLIB)) {
 +  char lib1[FILE_MAX_LIBEXTRA], lib2[FILE_MAX_LIBEXTRA];
 +  char *group1, *group2, *name1, *name2;
 +  int grp_comp;
 +
 +  BLO_library_path_explode(entry1-path, lib1, group1, name1);
 +  BLO_library_path_explode(entry2-path, lib2, group2, name2);
 +
 +  BLI_assert(group1);
 +  BLI_assert(group2);
 +
 +  grp_comp = strcmp(group1, group2);
 +  if (grp_comp != 0 || (!name1  !name2)) {
 +  return grp_comp;
 +  }
 +
 +  if (!name1) {
 +  return -1;
 +  }
 +  if (!name2) {
 +  return 1;
 +  }
 +  return BLI_strcasecmp(name1, name2);
 +  }
 +
 +  return BLI_strcasecmp(sufix1, sufix2);
  }
  
  bool filelist_need_sorting(struct FileList *filelist)
@@@ -594,17 -510,12 +596,17 @@@ static bool is_filtered_file(struct dir
  
  

[Bf-blender-cvs] [e0db0f8] master: Fix T43119: mathutils.intersect_point_line always returns a 2D vector as first value.

2015-01-04 Thread Bastien Montagne
Commit: e0db0f84ac28ce14ead649140023e46e65dfc2f7
Author: Bastien Montagne
Date:   Sun Jan 4 10:11:21 2015 +0100
Branches: master
https://developer.blender.org/rBe0db0f84ac28ce14ead649140023e46e65dfc2f7

Fix T43119: mathutils.intersect_point_line always returns a 2D vector as first 
value.

Trivial, safe for final 2.73.

===

M   source/blender/python/mathutils/mathutils_geometry.c

===

diff --git a/source/blender/python/mathutils/mathutils_geometry.c 
b/source/blender/python/mathutils/mathutils_geometry.c
index 2bf596b..c536838 100644
--- a/source/blender/python/mathutils/mathutils_geometry.c
+++ b/source/blender/python/mathutils/mathutils_geometry.c
@@ -745,7 +745,7 @@ static PyObject *M_Geometry_intersect_point_line(PyObject 
*UNUSED(self), PyObjec
}
 
/* accept 2d verts */
-   if (((mathutils_array_parse(pt, 2, 3 | MU_ARRAY_SPILL | MU_ARRAY_ZERO, 
py_pt, error_prefix) != -1) 
+   if size = mathutils_array_parse(pt, 2, 3 | MU_ARRAY_SPILL | 
MU_ARRAY_ZERO, py_pt, error_prefix)) != -1) 
 (mathutils_array_parse(line_a, 2, 3 | MU_ARRAY_SPILL | 
MU_ARRAY_ZERO, py_line_a, error_prefix) != -1) 
 (mathutils_array_parse(line_b, 3, 3 | MU_ARRAY_SPILL | 
MU_ARRAY_ZERO, py_line_b, error_prefix) != -1)) == 0)
{

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


[Bf-blender-cvs] [de6b546] master: Fix 8 memory leaks from bad PyList_Append use

2015-01-04 Thread Campbell Barton
Commit: de6b546e15523a0a4ab6da7e5beebaeb15cfa617
Author: Campbell Barton
Date:   Sun Jan 4 20:33:29 2015 +1100
Branches: master
https://developer.blender.org/rBde6b546e15523a0a4ab6da7e5beebaeb15cfa617

Fix 8 memory leaks from bad PyList_Append use

===

M   source/blender/freestyle/intern/python/BPy_SShape.cpp
M   source/blender/freestyle/intern/python/BPy_ViewShape.cpp
M   source/blender/freestyle/intern/python/Interface0D/BPy_SVertex.cpp
M   
source/blender/freestyle/intern/python/UnaryFunction0D/BPy_UnaryFunction0DVectorViewShape.cpp
M   
source/blender/freestyle/intern/python/UnaryFunction1D/BPy_UnaryFunction1DVectorViewShape.cpp
M   source/gameengine/GameLogic/SCA_KeyboardSensor.cpp

===

diff --git a/source/blender/freestyle/intern/python/BPy_SShape.cpp 
b/source/blender/freestyle/intern/python/BPy_SShape.cpp
index e5a3817..11ed07d 100644
--- a/source/blender/freestyle/intern/python/BPy_SShape.cpp
+++ b/source/blender/freestyle/intern/python/BPy_SShape.cpp
@@ -227,13 +227,14 @@ PyDoc_STRVAR(SShape_vertices_doc,
 
 static PyObject *SShape_vertices_get(BPy_SShape *self, void *UNUSED(closure))
 {
-   PyObject *py_vertices = PyList_New(0);
 
vector SVertex *  vertices = self-ss-getVertexList();
vector SVertex * ::iterator it;
+   PyObject *py_vertices = PyList_New(vertices.size());
+   unsigned int i = 0;

for (it = vertices.begin(); it != vertices.end(); it++) {
-   PyList_Append(py_vertices, BPy_SVertex_from_SVertex(*(*it)));
+   PyList_SET_ITEM(py_vertices, i++, 
BPy_SVertex_from_SVertex(*(*it)));
}

return py_vertices;
@@ -246,13 +247,14 @@ PyDoc_STRVAR(SShape_edges_doc,
 
 static PyObject *SShape_edges_get(BPy_SShape *self, void *UNUSED(closure))
 {
-   PyObject *py_edges = PyList_New(0);
 
vector FEdge *  edges = self-ss-getEdgeList();
vector FEdge * ::iterator it;
+   PyObject *py_edges = PyList_New(edges.size());
+   unsigned int i = 0;

for (it = edges.begin(); it != edges.end(); it++) {
-   PyList_Append(py_edges, Any_BPy_FEdge_from_FEdge(*(*it)));
+   PyList_SET_ITEM(py_edges, i++, 
Any_BPy_FEdge_from_FEdge(*(*it)));
}

return py_edges;
diff --git a/source/blender/freestyle/intern/python/BPy_ViewShape.cpp 
b/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
index 2c767ea..1007320 100644
--- a/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
+++ b/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
@@ -207,12 +207,13 @@ PyDoc_STRVAR(ViewShape_vertices_doc,
 
 static PyObject *ViewShape_vertices_get(BPy_ViewShape *self, void 
*UNUSED(closure))
 {
-   PyObject *py_vertices = PyList_New(0);
-
vectorViewVertex * vertices = self-vs-vertices();
vectorViewVertex *::iterator it;
+   PyObject *py_vertices = PyList_New(vertices.size());
+   unsigned int i = 0;
+
for (it = vertices.begin(); it != vertices.end(); it++) {
-   PyList_Append( py_vertices, 
Any_BPy_ViewVertex_from_ViewVertex(*(*it)));
+   PyList_SET_ITEM(py_vertices, i++, 
Any_BPy_ViewVertex_from_ViewVertex(*(*it)));
}
return py_vertices;
 }
@@ -248,13 +249,13 @@ PyDoc_STRVAR(ViewShape_edges_doc,
 
 static PyObject *ViewShape_edges_get(BPy_ViewShape *self, void 
*UNUSED(closure))
 {
-   PyObject *py_edges = PyList_New(0);
-
vectorViewEdge * edges = self-vs-edges();
vectorViewEdge *::iterator it;
+   PyObject *py_edges = PyList_New(edges.size());
+   unsigned int i = 0;
 
for (it = edges.begin(); it != edges.end(); it++) {
-   PyList_Append(py_edges, BPy_ViewEdge_from_ViewEdge(*(*it)));
+   PyList_SET_ITEM(py_edges, i++, 
BPy_ViewEdge_from_ViewEdge(*(*it)));
}
return py_edges;
 }
diff --git a/source/blender/freestyle/intern/python/Interface0D/BPy_SVertex.cpp 
b/source/blender/freestyle/intern/python/Interface0D/BPy_SVertex.cpp
index 6f47ce9..6845bc3 100644
--- a/source/blender/freestyle/intern/python/Interface0D/BPy_SVertex.cpp
+++ b/source/blender/freestyle/intern/python/Interface0D/BPy_SVertex.cpp
@@ -342,13 +342,14 @@ PyDoc_STRVAR(SVertex_normals_doc,
 static PyObject *SVertex_normals_get(BPy_SVertex *self, void *UNUSED(closure))
 {
PyObject *py_normals; 
-   set Vec3r  normals;
-   
-   py_normals = PyList_New(0);
-   normals = self-sv-normals();
-   for (set Vec3r ::iterator set_iterator = normals.begin(); 
set_iterator != normals.end(); set_iterator++) {
-   Vec3r v(*set_iterator);
-   PyList_Append(py_normals, Vector_from_Vec3r(v));
+   set Vec3r  normals = self-sv-normals();
+   set Vec3r ::iterator it;
+   py_normals = PyList_New(normals.size());
+   unsigned int i = 0;

[Bf-blender-cvs] [b240b8e] master: Freestyle: reserve array sizes before filling

2015-01-04 Thread Campbell Barton
Commit: b240b8e23115fe99f47ee5b3fd66fd3796ff8a1b
Author: Campbell Barton
Date:   Sun Jan 4 21:20:45 2015 +1100
Branches: master
https://developer.blender.org/rBb240b8e23115fe99f47ee5b3fd66fd3796ff8a1b

Freestyle: reserve array sizes before filling

also use PyList_GET_ITEM when list size is known.

===

M   source/blender/freestyle/intern/python/BPy_Operators.cpp
M   source/blender/freestyle/intern/python/BPy_ViewShape.cpp
M   source/blender/freestyle/intern/python/Director.cpp
M   source/gameengine/Expressions/ListValue.cpp
M   source/gameengine/Expressions/Value.cpp
M   source/gameengine/Ketsji/KX_MouseActuator.cpp

===

diff --git a/source/blender/freestyle/intern/python/BPy_Operators.cpp 
b/source/blender/freestyle/intern/python/BPy_Operators.cpp
index d3cb44f..57ec15f 100644
--- a/source/blender/freestyle/intern/python/BPy_Operators.cpp
+++ b/source/blender/freestyle/intern/python/BPy_Operators.cpp
@@ -532,8 +532,9 @@ static PyObject *Operators_create(BPy_Operators *self, 
PyObject *args, PyObject
return NULL;
}
vectorStrokeShader * shaders;
+   shaders.reserve(PyList_Size(obj2));
for (int i = 0; i  PyList_Size(obj2); i++) {
-   PyObject *py_ss = PyList_GetItem(obj2, i);
+   PyObject *py_ss = PyList_GET_ITEM(obj2, i);
if (!BPy_StrokeShader_Check(py_ss)) {
PyErr_SetString(PyExc_TypeError, Operators.create(): 
2nd argument must be a list of StrokeShader objects);
return NULL;
diff --git a/source/blender/freestyle/intern/python/BPy_ViewShape.cpp 
b/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
index 1007320..6c6e821 100644
--- a/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
+++ b/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
@@ -228,8 +228,10 @@ static int ViewShape_vertices_set(BPy_ViewShape *self, 
PyObject *value, void *UN
PyErr_SetString(PyExc_TypeError, value must be a list of 
ViewVertex objects);
return -1;
}
-   for (int i = 0; i  PyList_Size(list); i++) {
-   item = PyList_GetItem(list, i);
+
+   v.reserve(PyList_Size(list));
+   for (unsigned int i = 0; i  PyList_Size(list); i++) {
+   item = PyList_GET_ITEM(list, i);
if (BPy_ViewVertex_Check(item)) {
v.push_back(((BPy_ViewVertex *)item)-vv);
}
@@ -270,8 +272,10 @@ static int ViewShape_edges_set(BPy_ViewShape *self, 
PyObject *value, void *UNUSE
PyErr_SetString(PyExc_TypeError, value must be a list of 
ViewEdge objects);
return -1;
}
+
+   v.reserve(PyList_Size(list));
for (int i = 0; i  PyList_Size(list); i++) {
-   item = PyList_GetItem(list, i);
+   item = PyList_GET_ITEM(list, i);
if (BPy_ViewEdge_Check(item)) {
v.push_back(((BPy_ViewEdge *)item)-ve);
}
diff --git a/source/blender/freestyle/intern/python/Director.cpp 
b/source/blender/freestyle/intern/python/Director.cpp
index 653fd0b..9f85e84 100644
--- a/source/blender/freestyle/intern/python/Director.cpp
+++ b/source/blender/freestyle/intern/python/Director.cpp
@@ -265,8 +265,9 @@ int Director_BPy_UnaryFunction0D___call__(void *uf0D, void 
*py_uf0D, Interface0D
}
else if (BPy_UnaryFunction0DVectorViewShape_Check(obj)) {
vectorViewShape* vec;
+   vec.reserve(PyList_Size(result));
for (int i = 0; i  PyList_Size(result); i++) {
-   ViewShape *b = ((BPy_ViewShape *)PyList_GetItem(result, 
i))-vs;
+   ViewShape *b = ((BPy_ViewShape 
*)PyList_GET_ITEM(result, i))-vs;
vec.push_back(b);
}
((UnaryFunction0D vectorViewShape*  *)uf0D)-result = vec;
@@ -318,8 +319,9 @@ int Director_BPy_UnaryFunction1D___call__(void *uf1D, void 
*py_uf1D, Interface1D
}
else if (BPy_UnaryFunction1DVectorViewShape_Check(obj)) {
vectorViewShape* vec;
+   vec.reserve(PyList_Size(result));
for (int i = 1; i  PyList_Size(result); i++) {
-   ViewShape *b = ((BPy_ViewShape *)PyList_GetItem(result, 
i))-vs;
+   ViewShape *b = ((BPy_ViewShape 
*)PyList_GET_ITEM(result, i))-vs;
vec.push_back(b);
}
((UnaryFunction1D vectorViewShape*  *)uf1D)-result = vec;
diff --git a/source/gameengine/Expressions/ListValue.cpp 
b/source/gameengine/Expressions/ListValue.cpp
index 75e3b49..5e0eb92 100644
--- a/source/gameengine/Expressions/ListValue.cpp
+++ b/source/gameengine/Expressions/ListValue.cpp
@@ -432,7 +432,7 @@ static PyObject 

[Bf-blender-cvs] [e5063b0] master: Cleanup: OSX: remove obsolete ppc/ppc64 sw-renderer kCGL attributes

2015-01-04 Thread Jens Verwiebe
Commit: e5063b0bd3e499698a4016a7ff063bea4b667c34
Author: Jens Verwiebe
Date:   Sun Jan 4 20:42:16 2015 +0100
Branches: master
https://developer.blender.org/rBe5063b0bd3e499698a4016a7ff063bea4b667c34

Cleanup: OSX: remove obsolete ppc/ppc64 sw-renderer kCGL attributes

===

M   intern/ghost/intern/GHOST_ContextCGL.mm

===

diff --git a/intern/ghost/intern/GHOST_ContextCGL.mm 
b/intern/ghost/intern/GHOST_ContextCGL.mm
index b96a1dc..37fd4a3 100644
--- a/intern/ghost/intern/GHOST_ContextCGL.mm
+++ b/intern/ghost/intern/GHOST_ContextCGL.mm
@@ -192,11 +192,7 @@ static void makeAttribList(
 * Maybe a command line flag is better... */
if (getenv(BLENDER_SOFTWAREGL)) {
attribs.push_back(NSOpenGLPFARendererID);
-#if defined(__ppc__) || defined(__ppc64__)
-   attribs.push_back(kCGLRendererAppleSWID);
-#else
attribs.push_back(kCGLRendererGenericFloatID);
-#endif
}
else {
attribs.push_back(NSOpenGLPFAAccelerated);

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