From 1a0de15cb59359001195eaa8dbefb5574666fda0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 15 Jan 2012 11:53:14 +0000 Subject: remove some unused DNA members --- source/blender/blenloader/intern/readfile.c | 1 - source/blender/editors/space_buttons/space_buttons.c | 6 ------ source/blender/makesdna/DNA_meta_types.h | 1 - source/blender/makesdna/DNA_space_types.h | 2 -- 4 files changed, 10 deletions(-) (limited to 'source') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1c9cbc6b1ee..6a54817e861 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5160,7 +5160,6 @@ static void lib_link_screen(FileData *fd, Main *main) } else if(sl->spacetype==SPACE_BUTS) { SpaceButs *sbuts= (SpaceButs *)sl; - sbuts->ri= NULL; sbuts->pinid= newlibadr(fd, sc->id.lib, sbuts->pinid); sbuts->mainbo= sbuts->mainb; sbuts->mainbuser= sbuts->mainb; diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 0c326af406f..e6928e31dc7 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -96,11 +96,6 @@ static SpaceLink *buttons_new(const bContext *UNUSED(C)) static void buttons_free(SpaceLink *sl) { SpaceButs *sbuts= (SpaceButs*) sl; - - if(sbuts->ri) { - if (sbuts->ri->rect) MEM_freeN(sbuts->ri->rect); - MEM_freeN(sbuts->ri); - } if(sbuts->path) MEM_freeN(sbuts->path); @@ -131,7 +126,6 @@ static SpaceLink *buttons_duplicate(SpaceLink *sl) SpaceButs *sbutsn= MEM_dupallocN(sl); /* clear or remove stuff from old */ - sbutsn->ri= NULL; sbutsn->path= NULL; sbutsn->texuser= NULL; diff --git a/source/blender/makesdna/DNA_meta_types.h b/source/blender/makesdna/DNA_meta_types.h index ae658cee8f5..863e2b2e6ed 100644 --- a/source/blender/makesdna/DNA_meta_types.h +++ b/source/blender/makesdna/DNA_meta_types.h @@ -45,7 +45,6 @@ typedef struct MetaElem { struct MetaElem *next, *prev; struct BoundBox *bb; /* Bound Box of MetaElem */ - int i1,j1,k1, i2,j2,k2; /* corners of Bounding Box in lattice */ short type, flag, selcol1, selcol2; float x, y, z; /* Position of center of MetaElem */ diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index d502e56bf10..16df71e0f54 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -133,8 +133,6 @@ typedef struct SpaceButs { float blockscale DNA_DEPRECATED; short blockhandler[8] DNA_DEPRECATED; - - struct RenderInfo *ri; View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */ -- cgit v1.2.3 From 8c9c018c90e8ca9db119e61ca990e0ae6e57b85d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 15 Jan 2012 12:35:40 +0000 Subject: note on compating RNA pointers and compare RNA types for RNA-Properties too. --- source/blender/python/intern/bpy_rna.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index eaa8b82e4d7..4940c53551e 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -743,14 +743,28 @@ int pyrna_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int return 0; } +/* note on __cmp__: + * checking the 'ptr->data' matches works in almost all cases, + * however there are a few RNA properties that are fake sub-structs and + * share the pointer with the parent, in those cases this happens 'a.b == a' + * see: r43352 for example. + * + * So compare the 'ptr->type' as well to avoid this problem. + * It's highly unlikely this would happen that 'ptr->data' and 'ptr->prop' would match, + * but _not_ 'ptr->type' but include this check for completeness. + * - campbell */ + static int pyrna_struct_compare(BPy_StructRNA *a, BPy_StructRNA *b) { - return (a->ptr.data == b->ptr.data && a->ptr.type == b->ptr.type) ? 0 : -1; + return ( (a->ptr.data == b->ptr.data) && + (a->ptr.type == b->ptr.type)) ? 0 : -1; } static int pyrna_prop_compare(BPy_PropertyRNA *a, BPy_PropertyRNA *b) { - return (a->prop == b->prop && a->ptr.data == b->ptr.data) ? 0 : -1; + return ( (a->prop == b->prop) && + (a->ptr.data == b->ptr.data) && + (a->ptr.type == b->ptr.type) ) ? 0 : -1; } static PyObject *pyrna_struct_richcmp(PyObject *a, PyObject *b, int op) -- cgit v1.2.3 From 174e58f6f25d9fb890ef7eefc9feebd108d67d1f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 15 Jan 2012 13:23:57 +0000 Subject: weight paint UI - added back 2.4x 'Vgroup' option to the UI, restricts painting to verts already in the group. - remove 'All Faces' button in weight paint mode. it doesn't do anything. --- source/blender/makesdna/DNA_scene_types.h | 4 ++-- source/blender/makesrna/intern/rna_sculpt_paint.c | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index a2dfea11cdb..684f2a54b81 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -797,12 +797,12 @@ typedef struct VPaint { /* VPaint flag */ #define VP_COLINDEX 1 -#define VP_AREA 2 +#define VP_AREA 2 /* vertex paint only */ #define VP_NORMALS 8 #define VP_SPRAY 16 // #define VP_MIRROR_X 32 // deprecated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X) -#define VP_ONLYVGROUP 128 +#define VP_ONLYVGROUP 128 /* weight paint only */ /* *************************************************************** */ /* Transform Orientations */ diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index a15ca5de5c1..cd929d3aeda 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -289,6 +289,7 @@ static void rna_def_sculpt(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Sculpt_update"); } +/* use for weight paint too */ static void rna_def_vertex_paint(BlenderRNA *brna) { StructRNA *srna; @@ -297,7 +298,8 @@ static void rna_def_vertex_paint(BlenderRNA *brna) srna= RNA_def_struct(brna, "VertexPaint", "Paint"); RNA_def_struct_sdna(srna, "VPaint"); RNA_def_struct_ui_text(srna, "Vertex Paint", "Properties of vertex and weight paint mode"); - + + /* vertex paint only */ prop= RNA_def_property(srna, "use_all_faces", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", VP_AREA); RNA_def_property_ui_text(prop, "All Faces", "Paint on all faces inside brush"); @@ -309,6 +311,11 @@ static void rna_def_vertex_paint(BlenderRNA *brna) prop= RNA_def_property(srna, "use_spray", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", VP_SPRAY); RNA_def_property_ui_text(prop, "Spray", "Keep applying paint effect while holding mouse"); + + /* weight paint only */ + prop= RNA_def_property(srna, "use_group_restrict", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", VP_ONLYVGROUP); + RNA_def_property_ui_text(prop, "Restrict", "Restrict painting to verts already apart of the vertex group"); } static void rna_def_image_paint(BlenderRNA *brna) -- cgit v1.2.3 From 5e8940bcf1dbfec7a3052e5a75731fe987628fd6 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 15 Jan 2012 13:31:25 +0000 Subject: Refactoring and code deduplicate in movie cache --- source/blender/blenkernel/intern/movieclip.c | 351 ++++++++++++++++----------- 1 file changed, 203 insertions(+), 148 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 33a6782244b..1b6c6ba518b 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -257,18 +257,28 @@ typedef struct MovieClipCache { /* regular movie cache */ struct MovieCache *moviecache; - /* cache for stable shot */ - int stable_framenr; - float stable_loc[2], stable_scale, stable_angle; - ImBuf *stableibuf; - int proxy; - short render_flag; + /* cached postprocessed shot */ + struct { + ImBuf *ibuf; + int framenr; - /* cache for undistorted shot */ - int undist_framenr; - float principal[2]; - float k1, k2, k3; - ImBuf *undistibuf; + /* cache for undistorted shot */ + float principal[2]; + float k1, k2, k3; + + int proxy; + short render_flag; + } postprocessed; + + /* cache for stable shot */ + struct { + ImBuf *ibuf; + int framenr; + + float loc[2], scale, angle; + int proxy; + short render_flag; + } stabilized; } MovieClipCache; typedef struct MovieClipImBufCacheKey { @@ -465,111 +475,153 @@ static void real_ibuf_size(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, in } } -static int need_undistorted_cache(MovieClipUser *user, int flag) +static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *distortion, ImBuf *ibuf) +{ + ImBuf *undistibuf; + + /* XXX: because of #27997 do not use float buffers to undistort, + otherwise, undistorted proxy can be darker than it should */ + imb_freerectfloatImBuf(ibuf); + + if(distortion) + undistibuf= BKE_tracking_distortion_exec(distortion, &clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f, 1); + else + undistibuf= BKE_tracking_undistort(&clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f); + + if(undistibuf->userflags&IB_RECT_INVALID) { + ibuf->userflags&= ~IB_RECT_INVALID; + IMB_rect_from_float(undistibuf); + } + + IMB_scaleImBuf(undistibuf, ibuf->x, ibuf->y); + + return undistibuf; +} + +static int need_undistortion_postprocess(MovieClipUser *user, int flag) { + int result = 0; + /* only full undistorted render can be used as on-fly undistorting image */ - if(flag&MCLIP_USE_PROXY) { - if(user->render_size != MCLIP_PROXY_RENDER_SIZE_FULL || (user->render_flag&MCLIP_PROXY_RENDER_UNDISTORT)==0) - return 0; + if(flag & MCLIP_USE_PROXY) { + result |= (user->render_size == MCLIP_PROXY_RENDER_SIZE_FULL) && + (user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT) != 0; } - else return 0; - return 1; + return result; } -static ImBuf *get_undistorted_cache(MovieClip *clip, MovieClipUser *user) +static int need_postprocessed_frame(MovieClipUser *user, int flag) { - MovieClipCache *cache= clip->cache; - MovieTrackingCamera *camera= &clip->tracking.camera; - int framenr= user->framenr; + int result = 0; - /* no cache or no cached undistorted image */ - if(!clip->cache || !clip->cache->undistibuf) - return NULL; + result |= need_undistortion_postprocess(user, flag); - /* undistortion happened for other frame */ - if(cache->undist_framenr!=framenr) - return NULL; + return result; +} - /* check for distortion model changes */ - if(!equals_v2v2(camera->principal, cache->principal)) - return NULL; +static int check_undistortion_cache_flags(MovieClip *clip) +{ + MovieClipCache *cache= clip->cache; + MovieTrackingCamera *camera= &clip->tracking.camera; - if(!equals_v3v3(&camera->k1, &cache->k1)) - return NULL; + /* check for distortion model changes */ + if(!equals_v2v2(camera->principal, cache->postprocessed.principal)) + return 0; - IMB_refImBuf(cache->undistibuf); + if(!equals_v3v3(&camera->k1, &cache->postprocessed.k1)) + return 0; - return cache->undistibuf; + return 1; } -static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *distortion, ImBuf *ibuf) +static ImBuf *get_postprocessed_cached_frame(MovieClip *clip, MovieClipUser *user, int flag) { - ImBuf *undistibuf; + MovieClipCache *cache= clip->cache; + int framenr= user->framenr; + short proxy= IMB_PROXY_NONE; + int render_flag= 0; - /* XXX: because of #27997 do not use float buffers to undistort, - otherwise, undistorted proxy can be darker than it should */ - imb_freerectfloatImBuf(ibuf); + if(flag&MCLIP_USE_PROXY) { + proxy= rendersize_to_proxy(user, flag); + render_flag= user->render_flag; + } - if(distortion) - undistibuf= BKE_tracking_distortion_exec(distortion, &clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f, 1); - else - undistibuf= BKE_tracking_undistort(&clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f); + /* no cache or no cached postprocessed image */ + if(!clip->cache || !clip->cache->postprocessed.ibuf) + return NULL; - if(undistibuf->userflags&IB_RECT_INVALID) { - ibuf->userflags&= ~IB_RECT_INVALID; - IMB_rect_from_float(undistibuf); + /* postprocessing happened for other frame */ + if(cache->postprocessed.framenr != framenr) + return NULL; + + /* cached ibuf used different proxy settings */ + if(cache->postprocessed.render_flag!=render_flag || cache->postprocessed.proxy!=proxy) + return NULL; + + if(need_undistortion_postprocess(user, flag)) { + if(!check_undistortion_cache_flags(clip)) + return NULL; } - IMB_scaleImBuf(undistibuf, ibuf->x, ibuf->y); + IMB_refImBuf(cache->postprocessed.ibuf); - return undistibuf; + return cache->postprocessed.ibuf; } -static ImBuf *put_undistorted_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf) +static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int flag) { MovieClipCache *cache= clip->cache; MovieTrackingCamera *camera= &clip->tracking.camera; + ImBuf *postproc_ibuf; - copy_v2_v2(cache->principal, camera->principal); - copy_v3_v3(&cache->k1, &camera->k1); - cache->undist_framenr= user->framenr; + if(cache->postprocessed.ibuf) + IMB_freeImBuf(cache->postprocessed.ibuf); - if(cache->undistibuf) - IMB_freeImBuf(cache->undistibuf); + cache->postprocessed.framenr= user->framenr; - cache->undistibuf= get_undistorted_ibuf(clip, NULL, ibuf); + if(flag&MCLIP_USE_PROXY) { + cache->postprocessed.proxy= rendersize_to_proxy(user, flag); + cache->postprocessed.render_flag= user->render_flag; + } + else { + cache->postprocessed.proxy = IMB_PROXY_NONE; + cache->postprocessed.render_flag = 0; + } - if(cache->stableibuf) { - /* force stable buffer be re-calculated */ - IMB_freeImBuf(cache->stableibuf); - cache->stableibuf= NULL; + if(need_undistortion_postprocess(user, flag)) { + copy_v2_v2(cache->postprocessed.principal, camera->principal); + copy_v3_v3(&cache->postprocessed.k1, &camera->k1); } - IMB_refImBuf(cache->undistibuf); + postproc_ibuf= get_undistorted_ibuf(clip, NULL, ibuf); + + IMB_refImBuf(postproc_ibuf); - return cache->undistibuf; + cache->postprocessed.ibuf= postproc_ibuf; + + return postproc_ibuf; } -ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user) +static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *user, int flag) { ImBuf *ibuf= NULL; - int framenr= user->framenr; - int cache_undistorted= 0; + int framenr= user->framenr, need_postprocess= 0; /* cache isn't threadsafe itself and also loading of movies can't happen from concurent threads that's why we use lock here */ BLI_lock_thread(LOCK_MOVIECLIP); - /* try to obtain cached undistorted image first */ - if(need_undistorted_cache(user, clip->flag)) { - ibuf= get_undistorted_cache(clip, user); + /* try to obtain cached postprocessed frame first */ + if(need_postprocessed_frame(user, flag)) { + ibuf= get_postprocessed_cached_frame(clip, user, flag); + if(!ibuf) - cache_undistorted= 1; + need_postprocess= 1; } if(!ibuf) - ibuf= get_imbuf_cache(clip, user, clip->flag); + ibuf= get_imbuf_cache(clip, user, flag); if(!ibuf) { int use_sequence= 0; @@ -579,23 +631,23 @@ ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user) (user->render_size!=MCLIP_PROXY_RENDER_SIZE_FULL); if(clip->source==MCLIP_SRC_SEQUENCE || use_sequence) - ibuf= movieclip_load_sequence_file(clip, user, framenr, clip->flag); + ibuf= movieclip_load_sequence_file(clip, user, framenr, flag); else { - ibuf= movieclip_load_movie_file(clip, user, framenr, clip->flag); + ibuf= movieclip_load_movie_file(clip, user, framenr, flag); } if(ibuf) - put_imbuf_cache(clip, user, ibuf, clip->flag); + put_imbuf_cache(clip, user, ibuf, flag); } if(ibuf) { clip->lastframe= framenr; real_ibuf_size(clip, user, ibuf, &clip->lastsize[0], &clip->lastsize[1]); - /* put undistorted frame to cache */ - if(cache_undistorted) { + /* postprocess frame and put to cache */ + if(need_postprocess) { ImBuf *tmpibuf= ibuf; - ibuf= put_undistorted_cache(clip, user, tmpibuf); + ibuf= put_postprocessed_frame_to_cache(clip, user, tmpibuf, flag); IMB_freeImBuf(tmpibuf); } } @@ -605,50 +657,85 @@ ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user) return ibuf; } +ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user) +{ + return BKE_movieclip_get_ibuf_flag(clip, user, clip->flag); +} + ImBuf *BKE_movieclip_get_ibuf_flag(MovieClip *clip, MovieClipUser *user, int flag) { - ImBuf *ibuf= NULL; - int framenr= user->framenr; - int cache_undistorted= 0; + return movieclip_get_postprocessed_ibuf(clip, user, flag); +} - /* cache isn't threadsafe itself and also loading of movies - can't happen from concurent threads that's why we use lock here */ - BLI_lock_thread(LOCK_MOVIECLIP); +static ImBuf *get_stable_cached_frame(MovieClip *clip, MovieClipUser *user, int framenr) +{ + MovieClipCache *cache = clip->cache; + ImBuf *stableibuf; + float tloc[2], tscale, tangle; + short proxy = IMB_PROXY_NONE; + int render_flag = 0; - /* try to obtain cached undistorted image first */ - if(need_undistorted_cache(user, flag)) { - ibuf= get_undistorted_cache(clip, user); - if(!ibuf) - cache_undistorted= 1; + if(clip->flag&MCLIP_USE_PROXY) { + proxy = rendersize_to_proxy(user, clip->flag); + render_flag = user->render_flag; } - ibuf= get_imbuf_cache(clip, user, flag); + /* there's no cached frame or it was calculated for another frame */ + if(!cache->stabilized.ibuf || cache->stabilized.framenr != framenr) + return NULL; - if(!ibuf) { - if(clip->source==MCLIP_SRC_SEQUENCE) { - ibuf= movieclip_load_sequence_file(clip, user, framenr, flag); - } else { - ibuf= movieclip_load_movie_file(clip, user, framenr, flag); - } + /* cached ibuf used different proxy settings */ + if(cache->stabilized.render_flag!=render_flag || cache->stabilized.proxy!=proxy) + return NULL; - if(ibuf) { - int bits= MCLIP_USE_PROXY|MCLIP_USE_PROXY_CUSTOM_DIR; + stableibuf = cache->stabilized.ibuf; - if((flag&bits)==(clip->flag&bits)) - put_imbuf_cache(clip, user, ibuf, clip->flag); - } + BKE_tracking_stabilization_data(&clip->tracking, framenr, stableibuf->x, stableibuf->y, tloc, &tscale, &tangle); + + /* check for stabilization parameters */ + if(tscale != cache->stabilized.scale || + tangle != cache->stabilized.angle || + !equals_v2v2(tloc, cache->stabilized.loc)) + { + return NULL; } - /* put undistorted frame to cache */ - if(ibuf && cache_undistorted) { - ImBuf *tmpibuf= ibuf; - ibuf= put_undistorted_cache(clip, user, tmpibuf); - IMB_freeImBuf(tmpibuf); + IMB_refImBuf(stableibuf); + + return stableibuf; +} + +static ImBuf *put_stabilized_frame_to_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int framenr) +{ + MovieClipCache *cache = clip->cache; + ImBuf *stableibuf; + float tloc[2], tscale, tangle; + + if(cache->stabilized.ibuf) + IMB_freeImBuf(cache->stabilized.ibuf); + + stableibuf = BKE_tracking_stabilize(&clip->tracking, framenr, ibuf, tloc, &tscale, &tangle); + + cache->stabilized.ibuf= stableibuf; + + copy_v2_v2(cache->stabilized.loc, tloc); + + cache->stabilized.scale = tscale; + cache->stabilized.angle = tangle; + cache->stabilized.framenr = framenr; + + if(clip->flag&MCLIP_USE_PROXY) { + cache->stabilized.proxy= rendersize_to_proxy(user, clip->flag); + cache->stabilized.render_flag= user->render_flag; + } + else { + cache->stabilized.proxy = IMB_PROXY_NONE; + cache->stabilized.render_flag = 0; } - BLI_unlock_thread(LOCK_MOVIECLIP); + IMB_refImBuf(stableibuf); - return ibuf; + return stableibuf; } ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float loc[2], float *scale, float *angle) @@ -662,48 +749,16 @@ ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float return NULL; if(clip->tracking.stabilization.flag&TRACKING_2D_STABILIZATION) { - float tloc[2], tscale, tangle; - short proxy= IMB_PROXY_NONE; - int render_flag= 0; - - if(clip->flag&MCLIP_USE_PROXY) { - proxy= rendersize_to_proxy(user, clip->flag); - render_flag= user->render_flag; - } - - if(clip->cache->stableibuf && clip->cache->stable_framenr==framenr) { /* there's cached ibuf */ - if(clip->cache->render_flag==render_flag && clip->cache->proxy==proxy) { /* cached ibuf used the same proxy settings */ - stableibuf= clip->cache->stableibuf; + MovieClipCache *cache= clip->cache; - BKE_tracking_stabilization_data(&clip->tracking, framenr, stableibuf->x, stableibuf->y, tloc, &tscale, &tangle); - - /* check for stabilization parameters */ - if(!equals_v2v2(tloc, clip->cache->stable_loc) || tscale!=clip->cache->stable_scale || tangle!=clip->cache->stable_angle) { - stableibuf= NULL; - } - } - } - - if(!stableibuf) { - if(clip->cache->stableibuf) - IMB_freeImBuf(clip->cache->stableibuf); - - stableibuf= BKE_tracking_stabilize(&clip->tracking, framenr, ibuf, tloc, &tscale, &tangle); - - copy_v2_v2(clip->cache->stable_loc, tloc); - clip->cache->stable_scale= tscale; - clip->cache->stable_angle= tangle; - clip->cache->stable_framenr= framenr; - clip->cache->stableibuf= stableibuf; - clip->cache->proxy= proxy; - clip->cache->render_flag= render_flag; - } + stableibuf= get_stable_cached_frame(clip, user, framenr); - IMB_refImBuf(stableibuf); + if(!stableibuf) + stableibuf= put_stabilized_frame_to_cache(clip, user, ibuf, framenr); - if(loc) copy_v2_v2(loc, tloc); - if(scale) *scale= tscale; - if(angle) *angle= tangle; + if(loc) copy_v2_v2(loc, cache->stabilized.loc); + if(scale) *scale= cache->stabilized.scale; + if(angle) *angle= cache->stabilized.angle; } else { if(loc) zero_v2(loc); if(scale) *scale= 1.0f; @@ -786,11 +841,11 @@ static void free_buffers(MovieClip *clip) if(clip->cache) { IMB_moviecache_free(clip->cache->moviecache); - if(clip->cache->stableibuf) - IMB_freeImBuf(clip->cache->stableibuf); + if(clip->cache->postprocessed.ibuf) + IMB_freeImBuf(clip->cache->postprocessed.ibuf); - if(clip->cache->undistibuf) - IMB_freeImBuf(clip->cache->undistibuf); + if(clip->cache->stabilized.ibuf) + IMB_freeImBuf(clip->cache->stabilized.ibuf); MEM_freeN(clip->cache); clip->cache= NULL; -- cgit v1.2.3 From 58601362b7f80bfdd19d3a429a9f3bc83aaf8135 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 15 Jan 2012 13:31:40 +0000 Subject: Fixed incorrect behavior of 2d stabilization preview in clip editor when proxied resolution is used --- source/blender/editors/space_clip/clip_draw.c | 28 ++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'source') diff --git a/source/blender/editors/space_clip/clip_draw.c b/source/blender/editors/space_clip/clip_draw.c index 0d1c312792a..eb8f30b6739 100644 --- a/source/blender/editors/space_clip/clip_draw.c +++ b/source/blender/editors/space_clip/clip_draw.c @@ -250,9 +250,9 @@ static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf, glBegin(GL_LINE_LOOP); glVertex2f(0.0f, 0.0f); - glVertex2f(ibuf->x, 0.0f); - glVertex2f(ibuf->x, ibuf->y); - glVertex2f(0.0f, ibuf->y); + glVertex2f(width, 0.0f); + glVertex2f(width, height); + glVertex2f(0.0f, height); glEnd(); glPopMatrix(); @@ -1259,14 +1259,24 @@ void clip_draw_main(SpaceClip *sc, ARegion *ar, Scene *scene) float smat[4][4], ismat[4][4]; ibuf= ED_space_clip_get_stable_buffer(sc, sc->loc, &sc->scale, &sc->angle); - BKE_tracking_stabdata_to_mat4(width, height, sc->loc, sc->scale, sc->angle, sc->stabmat); - unit_m4(smat); - smat[0][0]= 1.0f/width; - smat[1][1]= 1.0f/height; - invert_m4_m4(ismat, smat); + if(ibuf) { + float loc[2]; - mul_serie_m4(sc->unistabmat, smat, sc->stabmat, ismat, NULL, NULL, NULL, NULL, NULL); + if(width != ibuf->x) + mul_v2_v2fl(loc, sc->loc, (float)width / ibuf->x); + else + copy_v2_v2(loc, sc->loc); + + BKE_tracking_stabdata_to_mat4(width, height, loc, sc->scale, sc->angle, sc->stabmat); + + unit_m4(smat); + smat[0][0]= 1.0f/width; + smat[1][1]= 1.0f/height; + invert_m4_m4(ismat, smat); + + mul_serie_m4(sc->unistabmat, smat, sc->stabmat, ismat, NULL, NULL, NULL, NULL, NULL); + } } else { ibuf= ED_space_clip_get_buffer(sc); -- cgit v1.2.3 From f37d1b7b4e90c280a345b9cc7d1ab1fc02c2780e Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 15 Jan 2012 13:31:58 +0000 Subject: Color channels now can be disabled for the whole frame in clip editor --- source/blender/blenkernel/BKE_movieclip.h | 11 +++-- source/blender/blenkernel/BKE_tracking.h | 6 +++ source/blender/blenkernel/intern/movieclip.c | 61 +++++++++++++++++++------ source/blender/blenkernel/intern/tracking.c | 28 +++++++----- source/blender/editors/space_clip/clip_editor.c | 4 +- source/blender/makesdna/DNA_space_types.h | 3 ++ source/blender/makesrna/intern/rna_space.c | 27 +++++++++++ 7 files changed, 109 insertions(+), 31 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/BKE_movieclip.h b/source/blender/blenkernel/BKE_movieclip.h index b41f038941d..6f404bf5fee 100644 --- a/source/blender/blenkernel/BKE_movieclip.h +++ b/source/blender/blenkernel/BKE_movieclip.h @@ -47,7 +47,8 @@ struct MovieClip *BKE_add_movieclip_file(const char *name); void BKE_movieclip_reload(struct MovieClip *clip); struct ImBuf *BKE_movieclip_get_ibuf(struct MovieClip *clip, struct MovieClipUser *user); -struct ImBuf *BKE_movieclip_get_stable_ibuf(struct MovieClip *clip, struct MovieClipUser *user, float loc[2], float *scale, float *angle); +struct ImBuf *BKE_movieclip_get_postprocessed_ibuf(struct MovieClip *clip, struct MovieClipUser *user, int postprocess_flag); +struct ImBuf *BKE_movieclip_get_stable_ibuf(struct MovieClip *clip, struct MovieClipUser *user, float loc[2], float *scale, float *angle, int postprocess_flag); struct ImBuf *BKE_movieclip_get_ibuf_flag(struct MovieClip *clip, struct MovieClipUser *user, int flag); void BKE_movieclip_get_size(struct MovieClip *clip, struct MovieClipUser *user, int *width, int *height); void BKE_movieclip_aspect(struct MovieClip *clip, float *aspx, float *aspy); @@ -63,8 +64,10 @@ void BKE_movieclip_get_cache_segments(struct MovieClip *clip, struct MovieClipUs void BKE_movieclip_build_proxy_frame(struct MovieClip *clip, int clip_flag, struct MovieDistortion *distortion, int cfra, int *build_sizes, int build_count, int undistorted); -#define TRACK_CLEAR_UPTO 0 -#define TRACK_CLEAR_REMAINED 1 -#define TRACK_CLEAR_ALL 2 +/* postprocessing flags */ +#define MOVIECLIP_DISABLE_RED (1<<0) +#define MOVIECLIP_DISABLE_GREEN (1<<1) +#define MOVIECLIP_DISABLE_BLUE (1<<2) +#define MOVIECLIP_PREVIEW_GRAYSCALE (1<<3) #endif diff --git a/source/blender/blenkernel/BKE_tracking.h b/source/blender/blenkernel/BKE_tracking.h index bd5790e1319..d3f297ece86 100644 --- a/source/blender/blenkernel/BKE_tracking.h +++ b/source/blender/blenkernel/BKE_tracking.h @@ -97,6 +97,8 @@ struct ListBase *BKE_tracking_object_tracks(struct MovieTracking *tracking, stru struct MovieTrackingReconstruction *BKE_tracking_object_reconstruction(struct MovieTracking *tracking, struct MovieTrackingObject *object); +void BKE_tracking_disable_imbuf_channels(struct ImBuf *ibuf, int disable_red, int disable_green, int disable_blue, int grayscale); + /* clipboard */ void BKE_tracking_free_clipboard(void); void BKE_tracking_clipboard_copy_tracks(struct MovieTracking *tracking, struct MovieTrackingObject *object); @@ -166,6 +168,10 @@ void BKE_tracking_deselect_track(struct MovieTrackingTrack *track, int area); #define MARKER_VISIBLE(sc, marker) (((marker)->flag&MARKER_DISABLED)==0 || ((sc)->flag&SC_HIDE_DISABLED)==0) +#define TRACK_CLEAR_UPTO 0 +#define TRACK_CLEAR_REMAINED 1 +#define TRACK_CLEAR_ALL 2 + #define CLAMP_PAT_DIM 1 #define CLAMP_PAT_POS 2 #define CLAMP_SEARCH_DIM 3 diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 1b6c6ba518b..3b1dc2973ad 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -261,10 +261,12 @@ typedef struct MovieClipCache { struct { ImBuf *ibuf; int framenr; + int flag; /* cache for undistorted shot */ float principal[2]; float k1, k2, k3; + short undistoriton_used; int proxy; short render_flag; @@ -511,9 +513,9 @@ static int need_undistortion_postprocess(MovieClipUser *user, int flag) return result; } -static int need_postprocessed_frame(MovieClipUser *user, int flag) +static int need_postprocessed_frame(MovieClipUser *user, int flag, int postprocess_flag) { - int result = 0; + int result = postprocess_flag; result |= need_undistortion_postprocess(user, flag); @@ -535,7 +537,7 @@ static int check_undistortion_cache_flags(MovieClip *clip) return 1; } -static ImBuf *get_postprocessed_cached_frame(MovieClip *clip, MovieClipUser *user, int flag) +static ImBuf *get_postprocessed_cached_frame(MovieClip *clip, MovieClipUser *user, int flag, int postprocess_flag) { MovieClipCache *cache= clip->cache; int framenr= user->framenr; @@ -556,29 +558,35 @@ static ImBuf *get_postprocessed_cached_frame(MovieClip *clip, MovieClipUser *use return NULL; /* cached ibuf used different proxy settings */ - if(cache->postprocessed.render_flag!=render_flag || cache->postprocessed.proxy!=proxy) + if(cache->postprocessed.render_flag != render_flag || cache->postprocessed.proxy != proxy) + return NULL; + + if(cache->postprocessed.flag != postprocess_flag) return NULL; if(need_undistortion_postprocess(user, flag)) { if(!check_undistortion_cache_flags(clip)) return NULL; } + else if(cache->postprocessed.undistoriton_used) + return NULL; IMB_refImBuf(cache->postprocessed.ibuf); return cache->postprocessed.ibuf; } -static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int flag) +static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int flag, int postprocess_flag) { MovieClipCache *cache= clip->cache; MovieTrackingCamera *camera= &clip->tracking.camera; - ImBuf *postproc_ibuf; + ImBuf *postproc_ibuf = NULL; if(cache->postprocessed.ibuf) IMB_freeImBuf(cache->postprocessed.ibuf); cache->postprocessed.framenr= user->framenr; + cache->postprocessed.flag = postprocess_flag; if(flag&MCLIP_USE_PROXY) { cache->postprocessed.proxy= rendersize_to_proxy(user, flag); @@ -592,18 +600,38 @@ static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *u if(need_undistortion_postprocess(user, flag)) { copy_v2_v2(cache->postprocessed.principal, camera->principal); copy_v3_v3(&cache->postprocessed.k1, &camera->k1); + cache->postprocessed.undistoriton_used = 1; + postproc_ibuf= get_undistorted_ibuf(clip, NULL, ibuf); } + else cache->postprocessed.undistoriton_used = 0; - postproc_ibuf= get_undistorted_ibuf(clip, NULL, ibuf); + if(postprocess_flag) { + int disable_red = postprocess_flag & MOVIECLIP_DISABLE_RED, + disable_green = postprocess_flag & MOVIECLIP_DISABLE_GREEN, + disable_blue = postprocess_flag & MOVIECLIP_DISABLE_BLUE, + grayscale = postprocess_flag & MOVIECLIP_PREVIEW_GRAYSCALE; + + if(!postproc_ibuf) + postproc_ibuf = IMB_dupImBuf(ibuf); + + if(disable_red || disable_green || disable_blue || grayscale) + BKE_tracking_disable_imbuf_channels(postproc_ibuf, disable_red, disable_green, disable_blue, 1); + } IMB_refImBuf(postproc_ibuf); cache->postprocessed.ibuf= postproc_ibuf; + if(cache->stabilized.ibuf) { + /* force stable buffer be re-calculated */ + IMB_freeImBuf(cache->stabilized.ibuf); + cache->stabilized.ibuf= NULL; + } + return postproc_ibuf; } -static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *user, int flag) +static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *user, int flag, int postprocess_flag) { ImBuf *ibuf= NULL; int framenr= user->framenr, need_postprocess= 0; @@ -613,8 +641,8 @@ static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *u BLI_lock_thread(LOCK_MOVIECLIP); /* try to obtain cached postprocessed frame first */ - if(need_postprocessed_frame(user, flag)) { - ibuf= get_postprocessed_cached_frame(clip, user, flag); + if(need_postprocessed_frame(user, flag, postprocess_flag)) { + ibuf= get_postprocessed_cached_frame(clip, user, flag, postprocess_flag); if(!ibuf) need_postprocess= 1; @@ -647,7 +675,7 @@ static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *u /* postprocess frame and put to cache */ if(need_postprocess) { ImBuf *tmpibuf= ibuf; - ibuf= put_postprocessed_frame_to_cache(clip, user, tmpibuf, flag); + ibuf= put_postprocessed_frame_to_cache(clip, user, tmpibuf, flag, postprocess_flag); IMB_freeImBuf(tmpibuf); } } @@ -664,7 +692,12 @@ ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user) ImBuf *BKE_movieclip_get_ibuf_flag(MovieClip *clip, MovieClipUser *user, int flag) { - return movieclip_get_postprocessed_ibuf(clip, user, flag); + return movieclip_get_postprocessed_ibuf(clip, user, flag, 0); +} + +ImBuf *BKE_movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *user, int postprocess_flag) +{ + return movieclip_get_postprocessed_ibuf(clip, user, clip->flag, postprocess_flag); } static ImBuf *get_stable_cached_frame(MovieClip *clip, MovieClipUser *user, int framenr) @@ -738,12 +771,12 @@ static ImBuf *put_stabilized_frame_to_cache(MovieClip *clip, MovieClipUser *user return stableibuf; } -ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float loc[2], float *scale, float *angle) +ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float loc[2], float *scale, float *angle, int postprocess_flag) { ImBuf *ibuf, *stableibuf= NULL; int framenr= user->framenr; - ibuf= BKE_movieclip_get_ibuf(clip, user); + ibuf= BKE_movieclip_get_postprocessed_ibuf(clip, user, postprocess_flag); if(!ibuf) return NULL; diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index 8831d7e73b2..428e6ebf6ca 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -1010,19 +1010,19 @@ void BKE_tracking_context_free(MovieTrackingContext *context) /* zap channels from the imbuf that are disabled by the user. this can lead to * better tracks sometimes. however, instead of simply zeroing the channels * out, do a partial grayscale conversion so the display is better. */ -static void disable_imbuf_channels(ImBuf *ibuf, MovieTrackingTrack *track, int grayscale) +void BKE_tracking_disable_imbuf_channels(ImBuf *ibuf, int disable_red, int disable_green, int disable_blue, int grayscale) { int x, y; float scale; - if((track->flag&(TRACK_DISABLE_RED|TRACK_DISABLE_GREEN|TRACK_DISABLE_BLUE))==0 && !grayscale) + if(!disable_red && !disable_green && !disable_blue && !grayscale) return; /* If only some components are selected, it's important to rescale the result * appropriately so that e.g. if only blue is selected, it's not zeroed out. */ - scale = ((track->flag&TRACK_DISABLE_RED ) ? 0.0f : 0.2126f) + - ((track->flag&TRACK_DISABLE_GREEN) ? 0.0f : 0.7152f) + - ((track->flag&TRACK_DISABLE_BLUE) ? 0.0f : 0.0722f); + scale = (disable_red ? 0.0f : 0.2126f) + + (disable_green ? 0.0f : 0.7152f) + + (disable_blue ? 0.0f : 0.0722f); for(y= 0; yy; y++) { for (x= 0; xx; x++) { @@ -1030,9 +1030,9 @@ static void disable_imbuf_channels(ImBuf *ibuf, MovieTrackingTrack *track, int g if(ibuf->rect_float) { float *rrgbf= ibuf->rect_float + pixel*4; - float r = (track->flag&TRACK_DISABLE_RED) ? 0.0f : rrgbf[0]; - float g = (track->flag&TRACK_DISABLE_GREEN) ? 0.0f : rrgbf[1]; - float b = (track->flag&TRACK_DISABLE_BLUE) ? 0.0f : rrgbf[2]; + float r = disable_red ? 0.0f : rrgbf[0]; + float g = disable_green ? 0.0f : rrgbf[1]; + float b = disable_blue ? 0.0f : rrgbf[2]; if (grayscale) { float gray = (0.2126f*r + 0.7152f*g + 0.0722f*b) / scale; rrgbf[0] = rrgbf[1] = rrgbf[2] = gray; @@ -1043,9 +1043,9 @@ static void disable_imbuf_channels(ImBuf *ibuf, MovieTrackingTrack *track, int g } } else { char *rrgb= (char*)ibuf->rect + pixel*4; - char r = (track->flag&TRACK_DISABLE_RED) ? 0 : rrgb[0]; - char g = (track->flag&TRACK_DISABLE_GREEN) ? 0 : rrgb[1]; - char b = (track->flag&TRACK_DISABLE_BLUE) ? 0 : rrgb[2]; + char r = disable_red ? 0 : rrgb[0]; + char g = disable_green ? 0 : rrgb[1]; + char b = disable_blue ? 0 : rrgb[2]; if (grayscale) { float gray = (0.2126f*r + 0.7152f*g + 0.0722f*b) / scale; rrgb[0] = rrgb[1] = rrgb[2] = gray; @@ -1059,6 +1059,12 @@ static void disable_imbuf_channels(ImBuf *ibuf, MovieTrackingTrack *track, int g } } +static void disable_imbuf_channels(ImBuf *ibuf, MovieTrackingTrack *track, int grayscale) +{ + BKE_tracking_disable_imbuf_channels(ibuf, track->flag&TRACK_DISABLE_RED, + track->flag&TRACK_DISABLE_GREEN, track->flag&TRACK_DISABLE_RED, grayscale); +} + static ImBuf *get_area_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, float min[2], float max[2], int margin, int anchored, float pos[2], int origin[2]) { diff --git a/source/blender/editors/space_clip/clip_editor.c b/source/blender/editors/space_clip/clip_editor.c index d75df0ab51e..35d870022a4 100644 --- a/source/blender/editors/space_clip/clip_editor.c +++ b/source/blender/editors/space_clip/clip_editor.c @@ -86,7 +86,7 @@ ImBuf *ED_space_clip_get_buffer(SpaceClip *sc) if(sc->clip) { ImBuf *ibuf; - ibuf= BKE_movieclip_get_ibuf(sc->clip, &sc->user); + ibuf= BKE_movieclip_get_postprocessed_ibuf(sc->clip, &sc->user, sc->postproc_flag); if(ibuf && (ibuf->rect || ibuf->rect_float)) return ibuf; @@ -103,7 +103,7 @@ ImBuf *ED_space_clip_get_stable_buffer(SpaceClip *sc, float loc[2], float *scale if(sc->clip) { ImBuf *ibuf; - ibuf= BKE_movieclip_get_stable_ibuf(sc->clip, &sc->user, loc, scale, angle); + ibuf= BKE_movieclip_get_stable_ibuf(sc->clip, &sc->user, loc, scale, angle, sc->postproc_flag); if(ibuf && (ibuf->rect || ibuf->rect_float)) return ibuf; diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 16df71e0f54..aa7a84c577b 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -516,6 +516,9 @@ typedef struct SpaceClip { int pad; float stabmat[4][4], unistabmat[4][4]; /* current stabilization matrix and the same matrix in unified space, defined when drawing and used for mouse position calculation */ + + /* movie postprocessing */ + int postproc_flag, pad2; } SpaceClip; /* view3d Now in DNA_view3d_types.h */ diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 5b0b97d19be..d7f1c375a21 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -35,6 +35,7 @@ #include "rna_internal.h" #include "BKE_key.h" +#include "BKE_movieclip.h" #include "DNA_action_types.h" #include "DNA_key_types.h" @@ -2984,6 +2985,32 @@ static void rna_def_space_clip(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_GRAPH_TRACKS); RNA_def_property_ui_text(prop, "Show Tracks", "Display the speed curves (in \"x\" direction red, in \"y\" direction green) for the selected tracks"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL); + + /* ** channels ** */ + + /* show_red_channel */ + prop= RNA_def_property(srna, "show_red_channel", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "postproc_flag", MOVIECLIP_DISABLE_RED); + RNA_def_property_ui_text(prop, "Show Red Channel", "Show red channel in the frame"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL); + + /* show_green_channel */ + prop= RNA_def_property(srna, "show_green_channel", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "postproc_flag", MOVIECLIP_DISABLE_GREEN); + RNA_def_property_ui_text(prop, "Show Green Channel", "Show green channel in the frame"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL); + + /* show_blue_channel */ + prop= RNA_def_property(srna, "show_blue_channel", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "postproc_flag", MOVIECLIP_DISABLE_BLUE); + RNA_def_property_ui_text(prop, "Show Blue Channel", "Show blue channel in the frame"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL); + + /* preview_grayscale */ + prop= RNA_def_property(srna, "use_grayscale_preview", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "postproc_flag", MOVIECLIP_PREVIEW_GRAYSCALE); + RNA_def_property_ui_text(prop, "Grayscale", "Display frame in grayscale mode"); + RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL); } -- cgit v1.2.3 From 91835abde457a20731dd59334c0397bdb82259ef Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 15 Jan 2012 13:32:07 +0000 Subject: Remove unused code and code sued for debug --- source/blender/blenkernel/intern/tracking.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index 428e6ebf6ca..73170612ff7 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -1070,7 +1070,7 @@ static ImBuf *get_area_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTracki { ImBuf *tmpibuf; int x, y; - int x1, y1 /*, x2, y2 */ /* UNUSED */, w, h; + int x1, y1, w, h; float mpos[2]; copy_v2_v2(mpos, marker->pos); @@ -1092,11 +1092,6 @@ static ImBuf *get_area_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTracki x1= x-(int)(w/2.0f); y1= y-(int)(h/2.0f); -#if 0 /* UNUSED */ - x2= x+(int)(w/2.0f); - y2= y+(int)(h/2.0f); -#endif - /* dimensions should be odd */ tmpibuf= IMB_allocImBuf(w+margin*2, h+margin*2, 32, IB_rect); IMB_rectcpy(tmpibuf, ibuf, 0, 0, x1-margin, y1-margin, w+margin*2, h+margin*2); @@ -1119,9 +1114,6 @@ static ImBuf *get_area_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTracki disable_imbuf_channels(tmpibuf, track, 1 /* grayscale */); } - tmpibuf->ftype= PNG; - IMB_saveiff(tmpibuf, "/tmp/1.png", IB_rect); - return tmpibuf; } -- cgit v1.2.3 From 73b04af45dad5704683fe2aaa821b5723921b43c Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Sun, 15 Jan 2012 13:51:32 +0000 Subject: Another fix for previous own fix... --- source/blender/editors/space_graph/graph_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index 5c39da94ecd..aa245585d11 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -295,7 +295,7 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap) RNA_boolean_set(kmi->ptr, "column", FALSE); /* select left/right */ - WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0); + kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0); RNA_boolean_set(kmi->ptr, "extend", FALSE); RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_TEST); kmi= WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL|KM_SHIFT, 0); -- cgit v1.2.3 From 0c2f08d35a483dd2a26bf3ba7360230fbada36a6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 15 Jan 2012 14:19:32 +0000 Subject: fix crash when calling bpy.ops.render.render('INVOKE_DEFAULT') from the python console. --- source/blender/editors/space_console/console_ops.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index c91c8e1bd14..9640701965c 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -655,7 +655,11 @@ static int console_history_append_exec(bContext *C, wmOperator *op) ED_area_tag_redraw(sa); - console_scroll_bottom(ar); + /* when calling render modally this can be NULL when calling: + * bpy.ops.render.render('INVOKE_DEFAULT') */ + if (ar) { + console_scroll_bottom(ar); + } return OPERATOR_FINISHED; } -- cgit v1.2.3 From 23806a2b7d50082d70a0e4ecab22aafb8433708a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 15 Jan 2012 17:26:30 +0000 Subject: support for quick jump to scroll area with middle mouse clicking on scroll area (become used to this for qt and gtk apps) --- source/blender/editors/interface/view2d_ops.c | 37 ++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 6 deletions(-) (limited to 'source') diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c index a993e651b5f..2959d525cfb 100644 --- a/source/blender/editors/interface/view2d_ops.c +++ b/source/blender/editors/interface/view2d_ops.c @@ -1207,6 +1207,7 @@ typedef struct v2dScrollerMove { float delta; /* amount moved by mouse on axis of interest */ float scrollbarwidth; /* width of the scrollbar itself, used for page up/down clicks */ + int scrollbar_orig; /* initial location of scrollbar x/y, mouse relative */ int lastx, lasty; /* previous mouse coordinates (in screen coordinates) for determining movement */ } v2dScrollerMove; @@ -1302,15 +1303,16 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event, vsm->v2d= v2d; vsm->ar= ar; vsm->scroller= in_scroller; - + /* store mouse-coordinates, and convert mouse/screen coordinates to region coordinates */ vsm->lastx = event->x; vsm->lasty = event->y; - /* 'zone' depends on where mouse is relative to bubble * - zooming must be allowed on this axis, otherwise, default to pan */ scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY); + + if (in_scroller == 'h') { /* horizontal scroller - calculate adjustment factor first */ mask_size= (float)(v2d->hor.xmax - v2d->hor.xmin); @@ -1325,6 +1327,7 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event, } vsm->scrollbarwidth = scrollers->hor_max - scrollers->hor_min; + vsm->scrollbar_orig = ((scrollers->hor_max + scrollers->hor_min) / 2) + ar->winrct.xmin; } else { /* vertical scroller - calculate adjustment factor first */ @@ -1340,6 +1343,7 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event, } vsm->scrollbarwidth = scrollers->vert_max - scrollers->vert_min; + vsm->scrollbar_orig = ((scrollers->vert_max + scrollers->vert_min) / 2) + + ar->winrct.ymin; } UI_view2d_scrollers_free(scrollers); @@ -1464,6 +1468,7 @@ static int scroller_activate_modal(bContext *C, wmOperator *op, wmEvent *event) break; case LEFTMOUSE: + case MIDDLEMOUSE: if (event->val==KM_RELEASE) { /* single-click was in empty space outside bubble, so scroll by 1 'page' */ if (ELEM(vsm->zone, SCROLLHANDLE_MIN_OUTSIDE, SCROLLHANDLE_MAX_OUTSIDE)) { @@ -1484,6 +1489,7 @@ static int scroller_activate_modal(bContext *C, wmOperator *op, wmEvent *event) } } break; + } return OPERATOR_RUNNING_MODAL; @@ -1508,6 +1514,21 @@ static int scroller_activate_invoke(bContext *C, wmOperator *op, wmEvent *event) scroller_activate_init(C, op, event, in_scroller); vsm= (v2dScrollerMove *)op->customdata; + /* support for quick jump to location - gtk and qt do this on linux */ + if (event->type == MIDDLEMOUSE) { + switch (vsm->scroller) { + case 'h': /* horizontal scroller - so only horizontal movement ('cur' moves opposite to mouse) */ + vsm->delta= (float)(event->x - vsm->scrollbar_orig); + break; + case 'v': /* vertical scroller - so only vertical movement ('cur' moves opposite to mouse) */ + vsm->delta= (float)(event->y - vsm->scrollbar_orig); + break; + } + scroller_activate_apply(C, op); + + vsm->zone= SCROLLHANDLE_BAR; + } + /* check if zoom zones are inappropriate (i.e. zoom widgets not shown), so cannot continue * NOTE: see view2d.c for latest conditions, and keep this in sync with that */ @@ -1669,6 +1690,10 @@ void UI_view2d_keymap(wmKeyConfig *keyconf) { wmKeyMap *keymap= WM_keymap_find(keyconf, "View2D", 0, 0); + /* scrollers */ + WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", MIDDLEMOUSE, KM_PRESS, 0, 0); + /* pan/scroll */ WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0); @@ -1713,12 +1738,13 @@ void UI_view2d_keymap(wmKeyConfig *keyconf) /* borderzoom - drag */ WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0); - - /* scrollers */ - WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0); /* Alternative keymap for buttons listview */ keymap= WM_keymap_find(keyconf, "View2D Buttons List", 0, 0); + + WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", MIDDLEMOUSE, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MOUSEPAN, 0, 0, 0); WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, 0, 0); @@ -1732,6 +1758,5 @@ void UI_view2d_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", PADMINUS, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "VIEW2D_OT_reset", HOMEKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0); } -- cgit v1.2.3 From dc8b2197266899bd82bc0b625fd7aba0d8efe252 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sun, 15 Jan 2012 23:43:54 +0000 Subject: Minor sculpt/paint cleanups. Added some comments, constified a param, and moved a couple things around. --- source/blender/editors/sculpt_paint/paint_intern.h | 2 +- source/blender/editors/sculpt_paint/paint_stroke.c | 49 ++++++++++++---------- source/blender/editors/sculpt_paint/paint_utils.c | 2 +- 3 files changed, 30 insertions(+), 23 deletions(-) (limited to 'source') diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h index a5e68f9a244..2fc7d569d63 100644 --- a/source/blender/editors/sculpt_paint/paint_intern.h +++ b/source/blender/editors/sculpt_paint/paint_intern.h @@ -126,7 +126,7 @@ void paint_calc_redraw_planes(float planes[4][4], const struct rcti *screen_rect); void projectf(struct bglMats *mats, const float v[3], float p[2]); -float paint_calc_object_space_radius(struct ViewContext *vc, float center[3], float pixel_radius); +float paint_calc_object_space_radius(struct ViewContext *vc, const float center[3], float pixel_radius); float paint_get_tex_pixel(struct Brush* br, float u, float v); int imapaint_pick_face(struct ViewContext *vc, struct Mesh *me, const int mval[2], unsigned int *index); void imapaint_pick_uv(struct Scene *scene, struct Object *ob, unsigned int faceindex, const int xy[2], float uv[2]); diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index c3e0c35f524..67bd6ca9255 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -510,31 +510,33 @@ static void paint_draw_alpha_overlay(Sculpt *sd, Brush *brush, /* Special actions taken when paint cursor goes over mesh */ /* TODO: sculpt only for now */ static void paint_cursor_on_hit(Sculpt *sd, Brush *brush, ViewContext *vc, - float location[3], float *visual_strength) + const float location[3]) { float unprojected_radius, projected_radius; - /* TODO: check whether this should really only be done when - brush is over mesh? */ - if(sd->draw_pressure && brush_use_alpha_pressure(vc->scene, brush)) - (*visual_strength) *= sd->pressure_value; - - if(sd->draw_anchored) - projected_radius = sd->anchored_size; - else { - if(brush->flag & BRUSH_ANCHORED) - projected_radius = 8; - else - projected_radius = brush_size(vc->scene, brush); - } - unprojected_radius = paint_calc_object_space_radius(vc, location, - projected_radius); + /* update the brush's cached 3D radius */ + if(!brush_use_locked_size(vc->scene, brush)) { + /* get 2D brush radius */ + if(sd->draw_anchored) + projected_radius = sd->anchored_size; + else { + if(brush->flag & BRUSH_ANCHORED) + projected_radius = 8; + else + projected_radius = brush_size(vc->scene, brush); + } + + /* convert brush radius from 2D to 3D */ + unprojected_radius = paint_calc_object_space_radius(vc, location, + projected_radius); - if(sd->draw_pressure && brush_use_size_pressure(vc->scene, brush)) - unprojected_radius *= sd->pressure_value; + /* scale 3D brush radius by pressure */ + if(sd->draw_pressure && brush_use_size_pressure(vc->scene, brush)) + unprojected_radius *= sd->pressure_value; - if(!brush_use_locked_size(vc->scene, brush)) + /* set cached value in either Brush or UnifiedPaintSettings */ brush_set_unprojected_radius(vc->scene, brush, unprojected_radius); + } } static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused)) @@ -613,8 +615,13 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused)) outline_col = brush->sub_col; /* only do if brush is over the mesh */ - if(hit) - paint_cursor_on_hit(sd, brush, &vc, location, &visual_strength); + if(hit) { + /* scale the alpha by pen pressure */ + if(sd->draw_pressure && brush_use_alpha_pressure(vc.scene, brush)) + visual_strength *= sd->pressure_value; + + paint_cursor_on_hit(sd, brush, &vc, location); + } /* don't show effect of strength past the soft limit */ if(visual_strength > 1) diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c index fdacc2d15f5..0705ea29985 100644 --- a/source/blender/editors/sculpt_paint/paint_utils.c +++ b/source/blender/editors/sculpt_paint/paint_utils.c @@ -152,7 +152,7 @@ void projectf(bglMats *mats, const float v[3], float p[2]) p[1]= uy; } -float paint_calc_object_space_radius(ViewContext *vc, float center[3], +float paint_calc_object_space_radius(ViewContext *vc, const float center[3], float pixel_radius) { Object *ob = vc->obact; -- cgit v1.2.3 From fb4ad50cee70931ca390bb82a63c394ffef4d624 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 05:27:11 +0000 Subject: use defines for property name lenghths in the BGE, were using 31,32,64,100. --- source/gameengine/Converter/BL_ActionActuator.cpp | 4 ++-- source/gameengine/Converter/BL_ShapeActionActuator.cpp | 4 ++-- source/gameengine/Converter/KX_BlenderSceneConverter.cpp | 10 ++-------- source/gameengine/Expressions/PyObjectPlus.h | 2 ++ source/gameengine/GameLogic/SCA_ActuatorSensor.cpp | 2 +- source/gameengine/GameLogic/SCA_ILogicBrick.h | 4 ++-- source/gameengine/GameLogic/SCA_KeyboardSensor.cpp | 4 ++-- source/gameengine/GameLogic/SCA_KeyboardSensor.h | 2 +- source/gameengine/GameLogic/SCA_PropertyActuator.cpp | 2 +- source/gameengine/GameLogic/SCA_PropertySensor.cpp | 2 +- source/gameengine/GameLogic/SCA_RandomActuator.cpp | 2 +- .../gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp | 2 +- source/gameengine/Ketsji/KX_ConstraintActuator.cpp | 2 +- source/gameengine/Ketsji/KX_IpoActuator.cpp | 4 ++-- source/gameengine/Ketsji/KX_RaySensor.cpp | 2 +- source/gameengine/Ketsji/KX_SceneActuator.cpp | 2 +- source/gameengine/Ketsji/KX_TouchSensor.cpp | 2 +- source/gameengine/Rasterizer/RAS_TexVert.cpp | 2 +- 18 files changed, 25 insertions(+), 29 deletions(-) (limited to 'source') diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 2aab0498765..c63b32830b0 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -526,8 +526,8 @@ PyAttributeDef BL_ActionActuator::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("channelNames", BL_ActionActuator, pyattr_get_channel_names), KX_PYATTRIBUTE_SHORT_RW("priority", 0, 100, false, BL_ActionActuator, m_priority), KX_PYATTRIBUTE_RW_FUNCTION("frame", BL_ActionActuator, pyattr_get_frame, pyattr_set_frame), - KX_PYATTRIBUTE_STRING_RW("propName", 0, 31, false, BL_ActionActuator, m_propname), - KX_PYATTRIBUTE_STRING_RW("framePropName", 0, 31, false, BL_ActionActuator, m_framepropname), + KX_PYATTRIBUTE_STRING_RW("propName", 0, MAX_PROP_NAME, false, BL_ActionActuator, m_propname), + KX_PYATTRIBUTE_STRING_RW("framePropName", 0, MAX_PROP_NAME, false, BL_ActionActuator, m_framepropname), KX_PYATTRIBUTE_RW_FUNCTION("useContinue", BL_ActionActuator, pyattr_get_use_continue, pyattr_set_use_continue), KX_PYATTRIBUTE_FLOAT_RW_CHECK("blendTime", 0, MAXFRAMEF, BL_ActionActuator, m_blendframe, CheckBlendTime), KX_PYATTRIBUTE_SHORT_RW_CHECK("mode",0,100,false,BL_ActionActuator,m_playtype,CheckType), diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index aa62479d420..d679d1a5792 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -519,8 +519,8 @@ PyAttributeDef BL_ShapeActionActuator::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("action", BL_ShapeActionActuator, pyattr_get_action, pyattr_set_action), KX_PYATTRIBUTE_SHORT_RW("priority", 0, 100, false, BL_ShapeActionActuator, m_priority), KX_PYATTRIBUTE_FLOAT_RW_CHECK("frame", 0, MAXFRAMEF, BL_ShapeActionActuator, m_localtime, CheckFrame), - KX_PYATTRIBUTE_STRING_RW("propName", 0, 31, false, BL_ShapeActionActuator, m_propname), - KX_PYATTRIBUTE_STRING_RW("framePropName", 0, 31, false, BL_ShapeActionActuator, m_framepropname), + KX_PYATTRIBUTE_STRING_RW("propName", 0, MAX_PROP_NAME, false, BL_ShapeActionActuator, m_propname), + KX_PYATTRIBUTE_STRING_RW("framePropName", 0, MAX_PROP_NAME, false, BL_ShapeActionActuator, m_framepropname), KX_PYATTRIBUTE_FLOAT_RW_CHECK("blendTime", 0, MAXFRAMEF, BL_ShapeActionActuator, m_blendframe, CheckBlendTime), KX_PYATTRIBUTE_SHORT_RW_CHECK("mode",0,100,false,BL_ShapeActionActuator,m_playtype,CheckType), { NULL } //Sentinel diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index 4fe436d634c..bed9e538090 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -888,11 +888,11 @@ void KX_BlenderSceneConverter::TestHandlesPhysicsObjectToAnimationIpo() { //KX_IPhysicsController* physCtrl = gameObj->GetPhysicsController(); +#if 0 Object* blenderObject = gameObj->GetBlenderObject(); if (blenderObject && blenderObject->ipo) { // XXX animato -#if 0 Ipo* ipo = blenderObject->ipo; //create the curves, if not existing @@ -903,17 +903,11 @@ void KX_BlenderSceneConverter::TestHandlesPhysicsObjectToAnimationIpo() testhandles_ipocurve(findIpoCurve((IpoCurve *)ipo->curve.first,"RotX")); testhandles_ipocurve(findIpoCurve((IpoCurve *)ipo->curve.first,"RotY")); testhandles_ipocurve(findIpoCurve((IpoCurve *)ipo->curve.first,"RotZ")); -#endif } +#endif } - } - - } - - - } #ifdef WITH_PYTHON diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index b1072dd8336..107ae453c8e 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -54,6 +54,8 @@ extern "C" { } #endif +#define MAX_PROP_NAME 64 + static inline void Py_Fatal(const char *M) { fprintf(stderr, "%s\n", M); diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp index 8b0ea2394c8..8b7702228ce 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp @@ -150,7 +150,7 @@ PyMethodDef SCA_ActuatorSensor::Methods[] = { }; PyAttributeDef SCA_ActuatorSensor::Attributes[] = { - KX_PYATTRIBUTE_STRING_RW_CHECK("actuator",0,100,false,SCA_ActuatorSensor,m_checkactname,CheckActuator), + KX_PYATTRIBUTE_STRING_RW_CHECK("actuator",0,MAX_PROP_NAME,false,SCA_ActuatorSensor,m_checkactname,CheckActuator), { NULL } //Sentinel }; diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h index 87b37a8ef39..051bc2aafce 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.h +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h @@ -133,8 +133,8 @@ public: /* for moving logic bricks between scenes */ - virtual void Replace_IScene(SCA_IScene *val) {}; - virtual void Replace_NetworkScene(NG_NetworkScene *val) {}; + virtual void Replace_IScene(SCA_IScene *val) {} + virtual void Replace_NetworkScene(NG_NetworkScene *val) {} #ifdef WITH_PYTHON // python methods diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index 45780735c49..97cd01dff38 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -479,8 +479,8 @@ PyAttributeDef SCA_KeyboardSensor::Attributes[] = { KX_PYATTRIBUTE_INT_RW("key",0,SCA_IInputDevice::KX_ENDKEY,true,SCA_KeyboardSensor,m_hotkey), KX_PYATTRIBUTE_SHORT_RW("hold1",0,SCA_IInputDevice::KX_ENDKEY,true,SCA_KeyboardSensor,m_qual), KX_PYATTRIBUTE_SHORT_RW("hold2",0,SCA_IInputDevice::KX_ENDKEY,true,SCA_KeyboardSensor,m_qual2), - KX_PYATTRIBUTE_STRING_RW("toggleProperty",0,100,false,SCA_KeyboardSensor,m_toggleprop), - KX_PYATTRIBUTE_STRING_RW("targetProperty",0,100,false,SCA_KeyboardSensor,m_targetprop), + KX_PYATTRIBUTE_STRING_RW("toggleProperty",0,MAX_PROP_NAME,false,SCA_KeyboardSensor,m_toggleprop), + KX_PYATTRIBUTE_STRING_RW("targetProperty",0,MAX_PROP_NAME,false,SCA_KeyboardSensor,m_targetprop), { NULL } //Sentinel }; diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h index e7283978ae1..441c833d3a8 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h @@ -111,7 +111,7 @@ public: /* --------------------------------------------------------------------- */ // KeyEvents: - KX_PYMETHOD_DOC_NOARGS(SCA_KeyboardSensor,getEventList); + KX_PYMETHOD_DOC_NOARGS(SCA_KeyboardSensor,getEventList); // KeyStatus: KX_PYMETHOD_DOC_O(SCA_KeyboardSensor,getKeyStatus); diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index 844cf7ae96d..544b1da76af 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -257,7 +257,7 @@ PyMethodDef SCA_PropertyActuator::Methods[] = { }; PyAttributeDef SCA_PropertyActuator::Attributes[] = { - KX_PYATTRIBUTE_STRING_RW_CHECK("propName",0,100,false,SCA_PropertyActuator,m_propname,CheckProperty), + KX_PYATTRIBUTE_STRING_RW_CHECK("propName",0,MAX_PROP_NAME,false,SCA_PropertyActuator,m_propname,CheckProperty), KX_PYATTRIBUTE_STRING_RW("value",0,100,false,SCA_PropertyActuator,m_exprtxt), KX_PYATTRIBUTE_INT_RW("mode", KX_ACT_PROP_NODEF+1, KX_ACT_PROP_MAX-1, false, SCA_PropertyActuator, m_type), /* ATTR_TODO add constents to game logic dict */ { NULL } //Sentinel diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp index e1ee6c75b95..8e324bbb0d7 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp +++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp @@ -377,7 +377,7 @@ PyMethodDef SCA_PropertySensor::Methods[] = { PyAttributeDef SCA_PropertySensor::Attributes[] = { KX_PYATTRIBUTE_INT_RW_CHECK("mode",KX_PROPSENSOR_NODEF,KX_PROPSENSOR_MAX-1,false,SCA_PropertySensor,m_checktype,modeChange), - KX_PYATTRIBUTE_STRING_RW_CHECK("propName",0,100,false,SCA_PropertySensor,m_checkpropname,CheckProperty), + KX_PYATTRIBUTE_STRING_RW_CHECK("propName",0,MAX_PROP_NAME,false,SCA_PropertySensor,m_checkpropname,CheckProperty), KX_PYATTRIBUTE_STRING_RW_CHECK("value",0,100,false,SCA_PropertySensor,m_checkpropval,validValueForProperty), KX_PYATTRIBUTE_STRING_RW_CHECK("min",0,100,false,SCA_PropertySensor,m_checkpropval,validValueForIntervalProperty), KX_PYATTRIBUTE_STRING_RW_CHECK("max",0,100,false,SCA_PropertySensor,m_checkpropmaxval,validValueForIntervalProperty), diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index 430326cbce0..59925f44040 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -361,7 +361,7 @@ PyAttributeDef SCA_RandomActuator::Attributes[] = { KX_PYATTRIBUTE_FLOAT_RO("para1",SCA_RandomActuator,m_parameter1), KX_PYATTRIBUTE_FLOAT_RO("para2",SCA_RandomActuator,m_parameter2), KX_PYATTRIBUTE_ENUM_RO("distribution",SCA_RandomActuator,m_distribution), - KX_PYATTRIBUTE_STRING_RW_CHECK("propName",0,100,false,SCA_RandomActuator,m_propname,CheckProperty), + KX_PYATTRIBUTE_STRING_RW_CHECK("propName",0,MAX_PROP_NAME,false,SCA_RandomActuator,m_propname,CheckProperty), KX_PYATTRIBUTE_RW_FUNCTION("seed",SCA_RandomActuator,pyattr_get_seed,pyattr_set_seed), { NULL } //Sentinel }; diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index 5d5f3ff3f87..9d5a6907c46 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -129,7 +129,7 @@ PyMethodDef KX_NetworkMessageActuator::Methods[] = { }; PyAttributeDef KX_NetworkMessageActuator::Attributes[] = { - KX_PYATTRIBUTE_STRING_RW("propName", 0, 100, false, KX_NetworkMessageActuator, m_toPropName), + KX_PYATTRIBUTE_STRING_RW("propName", 0, MAX_PROP_NAME, false, KX_NetworkMessageActuator, m_toPropName), KX_PYATTRIBUTE_STRING_RW("subject", 0, 100, false, KX_NetworkMessageActuator, m_subject), KX_PYATTRIBUTE_BOOL_RW("usePropBody", KX_NetworkMessageActuator, m_bPropBody), KX_PYATTRIBUTE_STRING_RW("body", 0, 16384, false, KX_NetworkMessageActuator, m_body), diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index ea3a64d0d73..da8df24d704 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -600,7 +600,7 @@ PyAttributeDef KX_ConstraintActuator::Attributes[] = { KX_PYATTRIBUTE_FLOAT_ARRAY_RW_CHECK("direction",-FLT_MAX,FLT_MAX,KX_ConstraintActuator,m_refDirection,3,pyattr_check_direction), KX_PYATTRIBUTE_INT_RW("option",0,0xFFFF,false,KX_ConstraintActuator,m_option), KX_PYATTRIBUTE_INT_RW("time",0,1000,true,KX_ConstraintActuator,m_activeTime), - KX_PYATTRIBUTE_STRING_RW("propName",0,32,true,KX_ConstraintActuator,m_property), + KX_PYATTRIBUTE_STRING_RW("propName",0,MAX_PROP_NAME,true,KX_ConstraintActuator,m_property), KX_PYATTRIBUTE_FLOAT_RW("min",-FLT_MAX,FLT_MAX,KX_ConstraintActuator,m_minimumBound), KX_PYATTRIBUTE_FLOAT_RW("distance",-FLT_MAX,FLT_MAX,KX_ConstraintActuator,m_minimumBound), KX_PYATTRIBUTE_FLOAT_RW("max",-FLT_MAX,FLT_MAX,KX_ConstraintActuator,m_maximumBound), diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index 878bdcedfda..e0cd9726104 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -442,8 +442,8 @@ PyMethodDef KX_IpoActuator::Methods[] = { PyAttributeDef KX_IpoActuator::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("frameStart", KX_IpoActuator, pyattr_get_frame_start, pyattr_set_frame_start), KX_PYATTRIBUTE_RW_FUNCTION("frameEnd", KX_IpoActuator, pyattr_get_frame_end, pyattr_set_frame_end), - KX_PYATTRIBUTE_STRING_RW("propName", 0, 64, false, KX_IpoActuator, m_propname), - KX_PYATTRIBUTE_STRING_RW("framePropName", 0, 64, false, KX_IpoActuator, m_framepropname), + KX_PYATTRIBUTE_STRING_RW("propName", 0, MAX_PROP_NAME, false, KX_IpoActuator, m_propname), + KX_PYATTRIBUTE_STRING_RW("framePropName", 0, MAX_PROP_NAME, false, KX_IpoActuator, m_framepropname), KX_PYATTRIBUTE_INT_RW("mode", KX_ACT_IPO_NODEF+1, KX_ACT_IPO_MAX-1, true, KX_IpoActuator, m_type), KX_PYATTRIBUTE_BOOL_RW("useIpoAsForce", KX_IpoActuator, m_ipo_as_force), KX_PYATTRIBUTE_BOOL_RW("useIpoAdd", KX_IpoActuator, m_ipo_add), diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp index 6fa14c94f99..0cc0e7318c1 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.cpp +++ b/source/gameengine/Ketsji/KX_RaySensor.cpp @@ -352,7 +352,7 @@ PyAttributeDef KX_RaySensor::Attributes[] = { KX_PYATTRIBUTE_BOOL_RW("useMaterial", KX_RaySensor, m_bFindMaterial), KX_PYATTRIBUTE_BOOL_RW("useXRay", KX_RaySensor, m_bXRay), KX_PYATTRIBUTE_FLOAT_RW("range", 0, 10000, KX_RaySensor, m_distance), - KX_PYATTRIBUTE_STRING_RW("propName", 0, 100, false, KX_RaySensor, m_propertyname), + KX_PYATTRIBUTE_STRING_RW("propName", 0, MAX_PROP_NAME, false, KX_RaySensor, m_propertyname), KX_PYATTRIBUTE_INT_RW("axis", 0, 5, true, KX_RaySensor, m_axis), KX_PYATTRIBUTE_FLOAT_ARRAY_RO("hitPosition", KX_RaySensor, m_hitPosition, 3), KX_PYATTRIBUTE_FLOAT_ARRAY_RO("rayDirection", KX_RaySensor, m_rayDirection, 3), diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 16474437142..33708059784 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -249,7 +249,7 @@ PyMethodDef KX_SceneActuator::Methods[] = }; PyAttributeDef KX_SceneActuator::Attributes[] = { - KX_PYATTRIBUTE_STRING_RW("scene",0,32,true,KX_SceneActuator,m_nextSceneName), + KX_PYATTRIBUTE_STRING_RW("scene",0,MAX_ID_NAME-2,true,KX_SceneActuator,m_nextSceneName), KX_PYATTRIBUTE_RW_FUNCTION("camera",KX_SceneActuator,pyattr_get_camera,pyattr_set_camera), KX_PYATTRIBUTE_BOOL_RW("useRestart", KX_SceneActuator, m_restart), KX_PYATTRIBUTE_INT_RW("mode", KX_SCENE_NODEF+1, KX_SCENE_MAX-1, true, KX_SceneActuator, m_mode), diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index aa864349035..d7bcf1306a1 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -321,7 +321,7 @@ PyMethodDef KX_TouchSensor::Methods[] = { }; PyAttributeDef KX_TouchSensor::Attributes[] = { - KX_PYATTRIBUTE_STRING_RW("propName",0,100,false,KX_TouchSensor,m_touchedpropname), + KX_PYATTRIBUTE_STRING_RW("propName",0,MAX_PROP_NAME,false,KX_TouchSensor,m_touchedpropname), KX_PYATTRIBUTE_BOOL_RW("useMaterial",KX_TouchSensor,m_bFindMaterial), KX_PYATTRIBUTE_BOOL_RW("usePulseCollision",KX_TouchSensor,m_bTouchPulse), KX_PYATTRIBUTE_RO_FUNCTION("hitObject", KX_TouchSensor, pyattr_get_object_hit), diff --git a/source/gameengine/Rasterizer/RAS_TexVert.cpp b/source/gameengine/Rasterizer/RAS_TexVert.cpp index 18a987a332a..1e8630c72d8 100644 --- a/source/gameengine/Rasterizer/RAS_TexVert.cpp +++ b/source/gameengine/Rasterizer/RAS_TexVert.cpp @@ -104,7 +104,7 @@ void RAS_TexVert::SetFlag(const short flag) void RAS_TexVert::SetUnit(const unsigned int u) { - m_unit = u<=MAX_UNIT?u:MAX_UNIT; + m_unit = u <= (unsigned int) MAX_UNIT ? u: (unsigned int)MAX_UNIT; } void RAS_TexVert::SetNormal(const MT_Vector3& normal) -- cgit v1.2.3 From ea467d32283c6242d731be8da0ace1e5468e00ff Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 05:52:33 +0000 Subject: use FILE_MAX instead of 240 or comment where define cant be used. --- source/blender/blenkernel/BKE_main.h | 2 +- source/blender/blenloader/intern/readfile.c | 2 +- source/blender/editors/interface/interface_ops.c | 4 ++-- source/blender/editors/space_image/image_ops.c | 4 +++- source/blender/makesdna/DNA_brush_types.h | 2 +- source/blender/makesdna/DNA_dynamicpaint_types.h | 2 +- source/blender/makesdna/DNA_image_types.h | 2 +- source/blender/makesdna/DNA_movieclip_types.h | 2 +- source/blender/makesdna/DNA_object_force.h | 2 +- source/blender/makesdna/DNA_scene_types.h | 2 +- source/blender/makesdna/DNA_sound_types.h | 2 +- source/blender/makesdna/DNA_texture_types.h | 2 +- source/blender/makesdna/DNA_userdef_types.h | 8 ++++---- source/blender/makesrna/intern/rna_fluidsim.c | 6 +++--- source/blender/makesrna/intern/rna_main.c | 4 +++- source/blender/windowmanager/intern/wm_dragdrop.c | 2 +- 16 files changed, 26 insertions(+), 22 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h index 28eb59ebdb6..51bcd18fab6 100644 --- a/source/blender/blenkernel/BKE_main.h +++ b/source/blender/blenkernel/BKE_main.h @@ -50,7 +50,7 @@ struct Library; typedef struct Main { struct Main *next, *prev; - char name[240]; + char name[240]; /* 240 = FILE_MAX */ short versionfile, subversionfile; short minversionfile, minsubversionfile; int revision; /* svn revision of binary that saved file */ diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6a54817e861..0c05655b8d7 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -14437,7 +14437,7 @@ static void read_libraries(FileData *basefd, ListBase *mainlist) /* allow typing in a new lib path */ if(G.rt==-666) { while(fd==NULL) { - char newlib_path[240] = { 0 }; + char newlib_path[FILE_MAX] = { 0 }; printf("Missing library...'\n"); printf(" current file: %s\n", G.main->name); printf(" absolute lib: %s\n", mainptr->curlib->filepath); diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c index b50df29918d..40cf0213203 100644 --- a/source/blender/editors/interface/interface_ops.c +++ b/source/blender/editors/interface/interface_ops.c @@ -494,7 +494,7 @@ struct uiEditSourceStore { } uiEditSourceStore; struct uiEditSourceButStore { - char py_dbg_fn[240]; + char py_dbg_fn[FILE_MAX]; int py_dbg_ln; } uiEditSourceButStore; @@ -584,7 +584,7 @@ void UI_editsource_active_but_test(uiBut *but) /* editsource operator component */ static int editsource_text_edit(bContext *C, wmOperator *op, - char filepath[240], int line) + char filepath[FILE_MAX], int line) { struct Main *bmain= CTX_data_main(C); Text *text; diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 06674513868..e7a139fe465 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -858,7 +858,9 @@ static int image_replace_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; RNA_string_get(op->ptr, "filepath", str); - BLI_strncpy(sima->image->name, str, sizeof(sima->image->name)); /* we cant do much if the str is longer then 240 :/ */ + + /* we cant do much if the str is longer then FILE_MAX :/ */ + BLI_strncpy(sima->image->name, str, sizeof(sima->image->name)); /* XXX unpackImage frees image buffers */ ED_preview_kill_jobs(C); diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h index 6e7385d683d..f21c589d825 100644 --- a/source/blender/makesdna/DNA_brush_types.h +++ b/source/blender/makesdna/DNA_brush_types.h @@ -59,7 +59,7 @@ typedef struct Brush { struct ImBuf *icon_imbuf; PreviewImage *preview; - char icon_filepath[240]; + char icon_filepath[240]; /* 240 = FILE_MAX */ float normal_weight; diff --git a/source/blender/makesdna/DNA_dynamicpaint_types.h b/source/blender/makesdna/DNA_dynamicpaint_types.h index cee8e5cd8d7..0bf4ffb76ee 100644 --- a/source/blender/makesdna/DNA_dynamicpaint_types.h +++ b/source/blender/makesdna/DNA_dynamicpaint_types.h @@ -125,7 +125,7 @@ typedef struct DynamicPaintSurface { int pad_; char uvlayer_name[64]; /* MAX_CUSTOMDATA_LAYER_NAME */ - char image_output_path[240]; + char image_output_path[240]; /* 240 = FILE_MAX */ char output_name[64]; /* MAX_CUSTOMDATA_LAYER_NAME */ char output_name2[64]; /* MAX_CUSTOMDATA_LAYER_NAME */ /* some surfaces have 2 outputs */ diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h index a1b0ab06ecd..110ac59edc9 100644 --- a/source/blender/makesdna/DNA_image_types.h +++ b/source/blender/makesdna/DNA_image_types.h @@ -69,7 +69,7 @@ typedef struct ImageUser { typedef struct Image { ID id; - char name[240]; /* file path */ + char name[240]; /* file path, 240 = FILE_MAX */ ListBase ibufs; /* not written in file */ struct GPUTexture *gputexture; /* not written in file */ diff --git a/source/blender/makesdna/DNA_movieclip_types.h b/source/blender/makesdna/DNA_movieclip_types.h index 5d2f2f5978f..c08a5e95e92 100644 --- a/source/blender/makesdna/DNA_movieclip_types.h +++ b/source/blender/makesdna/DNA_movieclip_types.h @@ -64,7 +64,7 @@ typedef struct MovieClipProxy { typedef struct MovieClip { ID id; - char name[240]; /* file path */ + char name[240]; /* file path, 240 = FILE_MAX */ int source; /* sequence or movie */ int lastframe; /* last accessed frame number */ diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index 28c28bbf329..41f79546b15 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -195,7 +195,7 @@ typedef struct PointCache { char name[64]; char prev_name[64]; char info[64]; - char path[240]; /* file path */ + char path[240]; /* file path, 240 = FILE_MAX */ char *cached_frames; /* array of length endframe-startframe+1 with flags to indicate cached frames */ /* can be later used for other per frame flags too if needed */ struct ListBase mem_cache; diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 684f2a54b81..2ac08d5e9f2 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -471,7 +471,7 @@ typedef struct RenderData { float bake_maxdist, bake_biasdist, bake_pad; /* path to render output */ - char pic[240]; + char pic[240]; /* 240 = FILE_MAX */ /* stamps flags. */ int stamp; diff --git a/source/blender/makesdna/DNA_sound_types.h b/source/blender/makesdna/DNA_sound_types.h index f530730a544..82185c811a1 100644 --- a/source/blender/makesdna/DNA_sound_types.h +++ b/source/blender/makesdna/DNA_sound_types.h @@ -49,7 +49,7 @@ typedef struct bSound { /** * The path to the sound file. */ - char name[240]; + char name[240]; /* 240 = FILE_MAX */ /** * The packed file. diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h index e711124d39c..1cc84669e3b 100644 --- a/source/blender/makesdna/DNA_texture_types.h +++ b/source/blender/makesdna/DNA_texture_types.h @@ -200,7 +200,7 @@ typedef struct VoxelData { struct Object *object; /* for rendering smoke sims */ float int_multiplier; int still_frame; - char source_path[240]; + char source_path[240]; /* 240 = FILE_MAX */ /* temporary data */ float *dataset; diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index fc418069c5c..2fa785e4156 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -318,16 +318,16 @@ typedef struct SolidLight { typedef struct UserDef { int flag, dupflag; int savetime; - char tempdir[160]; // FILE_MAXDIR length + char tempdir[160]; /* FILE_MAXDIR length */ char fontdir[160]; - char renderdir[240]; // FILE_MAX length + char renderdir[240]; /* FILE_MAX length */ char textudir[160]; char plugtexdir[160]; char plugseqdir[160]; char pythondir[160]; char sounddir[160]; - char image_editor[240]; // FILE_MAX length - char anim_player[240]; // FILE_MAX length + char image_editor[240]; /* 240 = FILE_MAX */ + char anim_player[240]; /* 240 = FILE_MAX */ int anim_player_preset; short v2d_min_gridsize; /* minimum spacing between gridlines in View2D grids */ diff --git a/source/blender/makesrna/intern/rna_fluidsim.c b/source/blender/makesrna/intern/rna_fluidsim.c index 428f56b5130..f853e7b8dd9 100644 --- a/source/blender/makesrna/intern/rna_fluidsim.c +++ b/source/blender/makesrna/intern/rna_fluidsim.c @@ -304,7 +304,7 @@ static void rna_def_fluidsim_domain(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_fluid_find_enframe"); prop= RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH); - RNA_def_property_string_maxlength(prop, 240); + RNA_def_property_string_maxlength(prop, FILE_MAX); RNA_def_property_string_sdna(prop, NULL, "surfdataPath"); RNA_def_property_ui_text(prop, "Path", "Directory (and/or filename prefix) to store baked fluid simulation files in"); RNA_def_property_update(prop, 0, "rna_fluid_update"); @@ -381,7 +381,7 @@ static void rna_def_fluidsim_domain(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "surfaceSubdivs"); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 0, 5); - RNA_def_property_ui_text(prop, "Surface Subdivisions", "Number of isosurface subdivisions (this is necessary for the inclusion of particles into the surface generation - WARNING: can lead to longer computation timesĀ !)"); + RNA_def_property_ui_text(prop, "Surface Subdivisions", "Number of isosurface subdivisions (this is necessary for the inclusion of particles into the surface generation - WARNING: can lead to longer computation times !)"); prop= RNA_def_property(srna, "use_speed_vectors", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "domainNovecgen", 0); @@ -554,7 +554,7 @@ static void rna_def_fluidsim_particle(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Alpha Influence", "Amount of particle alpha change, inverse of size influence: 0=off (all same alpha), 1=full (large particles get lower alphas, smaller ones higher values)"); prop= RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH); - RNA_def_property_string_maxlength(prop, 240); + RNA_def_property_string_maxlength(prop, FILE_MAX); RNA_def_property_string_sdna(prop, NULL, "surfdataPath"); RNA_def_property_ui_text(prop, "Path", "Directory (and/or filename prefix) to store and load particles from"); RNA_def_property_update(prop, 0, "rna_fluid_update"); diff --git a/source/blender/makesrna/intern/rna_main.c b/source/blender/makesrna/intern/rna_main.c index be03da6839d..dc1faa29be2 100644 --- a/source/blender/makesrna/intern/rna_main.c +++ b/source/blender/makesrna/intern/rna_main.c @@ -32,6 +32,8 @@ #include "rna_internal.h" +#include "BKE_utildefines.h" + #ifdef RNA_RUNTIME #include "BKE_main.h" @@ -323,7 +325,7 @@ void RNA_def_main(BlenderRNA *brna) RNA_def_struct_ui_icon(srna, ICON_BLENDER); prop= RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH); - RNA_def_property_string_maxlength(prop, 240); + RNA_def_property_string_maxlength(prop, FILE_MAX); RNA_def_property_string_funcs(prop, "rna_Main_filepath_get", "rna_Main_filepath_length", "rna_Main_filepath_set"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Filename", "Path to the .blend file"); diff --git a/source/blender/windowmanager/intern/wm_dragdrop.c b/source/blender/windowmanager/intern/wm_dragdrop.c index 94f6eb19e2c..299266154dd 100644 --- a/source/blender/windowmanager/intern/wm_dragdrop.c +++ b/source/blender/windowmanager/intern/wm_dragdrop.c @@ -248,7 +248,7 @@ void wm_drags_check_ops(bContext *C, wmEvent *event) /* ************** draw ***************** */ -static void wm_drop_operator_draw(char *name, int x, int y) +static void wm_drop_operator_draw(const char *name, int x, int y) { int width= UI_GetStringWidth(name); -- cgit v1.2.3 From ae9b4b81cbeb7275a7e57106436f04990619254c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 06:43:58 +0000 Subject: opengl render save ignored alpha settings. also some FILE_MAX defines missed last commit. --- source/blender/editors/render/render_opengl.c | 2 +- source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp | 2 +- source/gameengine/GamePlayer/ghost/GPG_ghost.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 06e15f4a5f6..6bb3b2ca7f8 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -240,7 +240,7 @@ static void screen_opengl_render_apply(OGLRender *oglrender) } BKE_makepicstring(name, scene->r.pic, oglrender->bmain->name, scene->r.cfra, scene->r.im_format.imtype, scene->r.scemode & R_EXTENSION, FALSE); - ok= BKE_write_ibuf(ibuf, name, &scene->r.im_format); /* no need to stamp here */ + ok= BKE_write_ibuf_as(ibuf, name, &scene->r.im_format, TRUE); /* no need to stamp here */ if(ok) printf("OpenGL Render written to '%s'\n", name); else printf("OpenGL Render failed to write '%s'\n", name); } diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp index 445f2b8f0ba..493516aeef4 100644 --- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp +++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp @@ -286,7 +286,7 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *c exitrequested = KX_EXIT_REQUEST_NO_REQUEST; if (bfd) BLO_blendfiledata_free(bfd); - char basedpath[240]; + char basedpath[FILE_MAX]; // base the actuator filename with respect // to the original file working directory diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp index c725847037a..9166f0dded4 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp @@ -765,7 +765,7 @@ int main(int argc, char** argv) // if we got an exitcode 3 (KX_EXIT_REQUEST_START_OTHER_GAME) load a different file if (exitcode == KX_EXIT_REQUEST_START_OTHER_GAME) { - char basedpath[240]; + char basedpath[FILE_MAX]; // base the actuator filename relative to the last file BLI_strncpy(basedpath, exitstring.Ptr(), sizeof(basedpath)); -- cgit v1.2.3 From ab0cbaa7dccd2c1fdacd30d14c9a1983c2fed833 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 06:57:37 +0000 Subject: Allow camera 1:1 and center camera view to run from menu's. --- source/blender/blenkernel/intern/image.c | 2 +- source/blender/editors/space_view3d/view3d_edit.c | 43 ++++++++++++++++++----- 2 files changed, 36 insertions(+), 9 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index 9e5917f0b07..ce337608cc5 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -1608,7 +1608,7 @@ int BKE_write_ibuf(ImBuf *ibuf, const char *name, ImageFormatData *imf) return(ok); } -/* same as BKE_write_ibuf_as but crappy workaround not to perminantly modify +/* same as BKE_write_ibuf() but crappy workaround not to perminantly modify * _some_, values in the imbuf */ int BKE_write_ibuf_as(ImBuf *ibuf, const char *name, ImageFormatData *imf, const short save_copy) diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 224df5b9f80..b07e0ccdc74 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -921,6 +921,22 @@ static int view3d_camera_active_poll(bContext *C) return 0; } +/* test for unlocked camera view in quad view */ +static int view3d_camera_user_poll(bContext *C) +{ + View3D *v3d; + ARegion *ar; + + if (ED_view3d_context_user_region(C, &v3d, &ar)) { + RegionView3D *rv3d = ar->regiondata; + if(rv3d->persp==RV3D_CAMOB) { + return 1; + } + } + + return 0; +} + static int viewrotate_cancel(bContext *C, wmOperator *op) { viewops_data_free(C, op); @@ -2257,13 +2273,18 @@ void VIEW3D_OT_view_center_cursor(wmOperatorType *ot) static int view3d_center_camera_exec(bContext *C, wmOperator *UNUSED(op)) /* was view3d_home() in 2.4x */ { - ARegion *ar= CTX_wm_region(C); - RegionView3D *rv3d= CTX_wm_region_view3d(C); - View3D *v3d= CTX_wm_view3d(C); Scene *scene= CTX_data_scene(C); float xfac, yfac; float size[2]; + View3D *v3d; + ARegion *ar; + RegionView3D *rv3d; + + /* no NULL check is needed, poll checks */ + ED_view3d_context_user_region(C, &v3d, &ar); + rv3d = ar->regiondata; + rv3d->camdx= rv3d->camdy= 0.0f; ED_view3d_calc_camera_border_size(scene, ar, v3d, rv3d, size); @@ -2289,7 +2310,7 @@ void VIEW3D_OT_view_center_camera(wmOperatorType *ot) /* api callbacks */ ot->exec= view3d_center_camera_exec; - ot->poll= view3d_camera_active_poll; + ot->poll= view3d_camera_user_poll; /* flags */ ot->flag= 0; @@ -2543,11 +2564,16 @@ static void view3d_set_1_to_1_viewborder(Scene *scene, ARegion *ar, View3D *v3d) static int view3d_zoom_1_to_1_camera_exec(bContext *C, wmOperator *UNUSED(op)) { Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - view3d_set_1_to_1_viewborder(scene, ar, CTX_wm_view3d(C)); + View3D *v3d; + ARegion *ar; - WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C)); + /* no NULL check is needed, poll checks */ + ED_view3d_context_user_region(C, &v3d, &ar); + + view3d_set_1_to_1_viewborder(scene, ar, v3d); + + WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, v3d); return OPERATOR_FINISHED; } @@ -2561,7 +2587,7 @@ void VIEW3D_OT_zoom_camera_1_to_1(wmOperatorType *ot) /* api callbacks */ ot->exec= view3d_zoom_1_to_1_camera_exec; - ot->poll= view3d_camera_active_poll; + ot->poll= view3d_camera_user_poll; /* flags */ ot->flag= 0; @@ -2660,6 +2686,7 @@ static int viewnumpad_exec(bContext *C, wmOperator *op) static int perspo = RV3D_PERSP; int viewnum, align_active, nextperspo; + /* no NULL check is needed, poll checks */ ED_view3d_context_user_region(C, &v3d, &ar); rv3d = ar->regiondata; -- cgit v1.2.3 From 3cad3521a9f387aea138bb9133f5d4316ec7121b Mon Sep 17 00:00:00 2001 From: Andrew Hale Date: Mon, 16 Jan 2012 09:01:11 +0000 Subject: Change function for nb_invert so that ~matrix returns the inverted matrix rather than inverting inplace. --- source/blender/python/mathutils/mathutils_Matrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index f10d8c48c92..e588389b322 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -2049,7 +2049,7 @@ static PyNumberMethods Matrix_NumMethods = { (unaryfunc) 0, /*tp_positive*/ (unaryfunc) 0, /*tp_absolute*/ (inquiry) 0, /*tp_bool*/ - (unaryfunc) Matrix_inv, /*nb_invert*/ + (unaryfunc) Matrix_inverted, /*nb_invert*/ NULL, /*nb_lshift*/ (binaryfunc)0, /*nb_rshift*/ NULL, /*nb_and*/ -- cgit v1.2.3 From 0a5ff84accd7af582368293446111bc9373a6d89 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 09:12:34 +0000 Subject: fix for defaults not being set for object mode hide and delete keymap. --- source/blender/editors/object/object_ops.c | 76 ++++++++++++++++++------------ 1 file changed, 46 insertions(+), 30 deletions(-) (limited to 'source') diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 99eeaf334a8..9119d7de876 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -268,20 +268,20 @@ void ED_keymap_object(wmKeyConfig *keyconf) /* Note: this keymap works disregarding mode */ kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT); + RNA_boolean_set(kmi->ptr, "toggle", 1); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_POSE); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_enum_set(kmi->ptr, "mode", OB_MODE_POSE); + RNA_boolean_set(kmi->ptr, "toggle", 1); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", VKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_VERTEX_PAINT); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_enum_set(kmi->ptr, "mode", OB_MODE_VERTEX_PAINT); + RNA_boolean_set(kmi->ptr, "toggle", 1); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT); + RNA_boolean_set(kmi->ptr, "toggle", 1); WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT|KM_SHIFT|KM_CTRL, 0); @@ -296,27 +296,29 @@ void ED_keymap_object(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "VIEW3D_OT_game_start", PKEY, KM_PRESS, 0, 0); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_all", AKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE); + RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_all", IKEY, KM_PRESS, KM_CTRL, 0); - RNA_enum_set(kmi->ptr, "action", SEL_INVERT); + RNA_enum_set(kmi->ptr, "action", SEL_INVERT); WM_keymap_add_item(keymap, "OBJECT_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "OBJECT_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "OBJECT_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); - kmi= WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0); - RNA_enum_set_identifier(kmi->ptr, "direction", "PARENT"); - RNA_boolean_set(kmi->ptr, "extend", FALSE); - kmi= WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0); - RNA_enum_set_identifier(kmi->ptr, "direction", "PARENT"); - RNA_boolean_set(kmi->ptr, "extend", TRUE); - - kmi= WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, 0, 0); - RNA_enum_set_identifier(kmi->ptr, "direction", "CHILD"); - RNA_boolean_set(kmi->ptr, "extend", FALSE); - kmi= WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0); - RNA_enum_set_identifier(kmi->ptr, "direction", "CHILD"); - RNA_boolean_set(kmi->ptr, "extend", TRUE); + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0); + RNA_enum_set_identifier(kmi->ptr, "direction", "PARENT"); + RNA_boolean_set(kmi->ptr, "extend", FALSE); + + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0); + RNA_enum_set_identifier(kmi->ptr, "direction", "PARENT"); + RNA_boolean_set(kmi->ptr, "extend", TRUE); + + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, 0, 0); + RNA_enum_set_identifier(kmi->ptr, "direction", "CHILD"); + RNA_boolean_set(kmi->ptr, "extend", FALSE); + + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0); + RNA_enum_set_identifier(kmi->ptr, "direction", "CHILD"); + RNA_boolean_set(kmi->ptr, "extend", TRUE); WM_keymap_verify_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_verify_item(keymap, "OBJECT_OT_parent_no_inverse_set", PKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); @@ -333,20 +335,34 @@ void ED_keymap_object(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "OBJECT_OT_origin_clear", OKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_clear", HKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, 0, 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "unselected", 1); + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, 0, 0); + RNA_boolean_set(kmi->ptr, "unselected", FALSE); + + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "unselected", TRUE); /* same as above but for rendering */ WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_clear", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_PRESS, KM_CTRL, 0); -// RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0)->ptr, "unselected", 1); // conflicts, removing + + /* conflicts, removing */ +#if 0 + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0) + RNA_boolean_set(kmi->ptr, "unselected", 1); +#endif WM_keymap_add_item(keymap, "OBJECT_OT_move_to_layer", MKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, 0, 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "use_global", TRUE); + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, 0, 0); + RNA_boolean_set(kmi->ptr, "use_global", FALSE); + + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "use_global", TRUE); + WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, 0, 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "use_global", TRUE); + RNA_boolean_set(kmi->ptr, "use_global", FALSE); + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "use_global", TRUE); WM_keymap_add_menu(keymap, "INFO_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); @@ -392,7 +408,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS, KM_CTRL, 0); - /* menus */ + /* menus */ WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0); ED_object_generic_keymap(keyconf, keymap, 2); -- cgit v1.2.3 From 4bce60e25f0837916cbcd92a8ebc18914f4fac76 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 09:42:29 +0000 Subject: went over all keymaps to check for cases where defaults were assumed (which could be wrong if the previous setting was used). --- source/blender/editors/animation/anim_markers.c | 7 ++++--- source/blender/editors/armature/armature_ops.c | 23 ++++++++++++++--------- source/blender/editors/gpencil/gpencil_ops.c | 3 ++- source/blender/editors/physics/physics_ops.c | 5 ++++- source/blender/editors/sculpt_paint/paint_ops.c | 4 ++-- source/blender/editors/space_clip/space_clip.c | 19 +++++++++++-------- 6 files changed, 37 insertions(+), 24 deletions(-) (limited to 'source') diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index cc1fae170d0..e17aea3f8f3 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -1494,11 +1494,12 @@ void ED_marker_keymap(wmKeyConfig *keyconf) #ifdef DURIAN_CAMERA_SWITCH kmi= WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0); - RNA_boolean_set(kmi->ptr, "camera", 1); + RNA_boolean_set(kmi->ptr, "extend", FALSE); + RNA_boolean_set(kmi->ptr, "camera", TRUE); kmi= WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_CTRL, 0); - RNA_boolean_set(kmi->ptr, "extend", 1); - RNA_boolean_set(kmi->ptr, "camera", 1); + RNA_boolean_set(kmi->ptr, "extend", TRUE); + RNA_boolean_set(kmi->ptr, "camera", TRUE); #else (void)kmi; #endif diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index 81482466a30..29cdf6a61f7 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -220,16 +220,17 @@ void ED_keymap_armature(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SKETCH_OT_gesture", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", LEFTMOUSE, KM_PRESS, 0, 0); kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0); - RNA_boolean_set(kmi->ptr, "snap", 1); + RNA_boolean_set(kmi->ptr, "snap", TRUE); WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, KM_ANY, 0, 0); kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, KM_ANY, KM_CTRL, 0); - RNA_boolean_set(kmi->ptr, "snap", 1); + RNA_boolean_set(kmi->ptr, "snap", TRUE); /* only set in editmode armature, by space_view3d listener */ kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0); - RNA_boolean_set(kmi->ptr, "unselected", FALSE); + RNA_boolean_set(kmi->ptr, "unselected", FALSE); kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0); - RNA_boolean_set(kmi->ptr, "unselected", TRUE); + RNA_boolean_set(kmi->ptr, "unselected", TRUE); + WM_keymap_add_item(keymap, "ARMATURE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "ARMATURE_OT_align", AKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); WM_keymap_add_item(keymap, "ARMATURE_OT_calculate_roll", NKEY, KM_PRESS, KM_CTRL, 0); @@ -304,9 +305,11 @@ void ED_keymap_armature(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_menu(keymap, "INFO_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); - WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, 0, 0); - kmi= WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0); - RNA_boolean_set(kmi->ptr, "unselected", 1); + kmi = WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, 0, 0); + RNA_boolean_set(kmi->ptr, "unselected", FALSE); + kmi = WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "unselected", TRUE); + WM_keymap_add_item(keymap, "POSE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_apply", AKEY, KM_PRESS, KM_CTRL, 0); @@ -321,9 +324,11 @@ void ED_keymap_armature(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "POSE_OT_rotation_mode_set", RKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "POSE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0); + kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0); + RNA_boolean_set(kmi->ptr, "flipped", FALSE); + kmi= WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); - RNA_boolean_set(kmi->ptr, "flipped", 1); + RNA_boolean_set(kmi->ptr, "flipped", TRUE); kmi = WM_keymap_add_item(keymap, "POSE_OT_select_all", AKEY, KM_PRESS, 0, 0); RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE); diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c index 150e0ba90e4..954c79bb17d 100644 --- a/source/blender/editors/gpencil/gpencil_ops.c +++ b/source/blender/editors/gpencil/gpencil_ops.c @@ -55,7 +55,8 @@ void ED_keymap_gpencil(wmKeyConfig *keyconf) /* Draw */ /* draw */ - WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, 0, DKEY); + kmi=WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, 0, DKEY); + RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW); /* draw - straight lines */ kmi=WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_CTRL, DKEY); RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_STRAIGHT); diff --git a/source/blender/editors/physics/physics_ops.c b/source/blender/editors/physics/physics_ops.c index 09f99a58dd7..ebd3dc6617d 100644 --- a/source/blender/editors/physics/physics_ops.c +++ b/source/blender/editors/physics/physics_ops.c @@ -39,8 +39,11 @@ #include "ED_physics.h" #include "ED_object.h" +#include "BLI_utildefines.h" + #include "physics_intern.h" // own include + /***************************** particles ***********************************/ static void operatortypes_particle(void) @@ -109,7 +112,7 @@ static void keymap_particle(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "PARTICLE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "unselected", 1); kmi = WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0); - RNA_boolean_set(kmi->ptr, "release_confirm", 1); + RNA_boolean_set(kmi->ptr, "release_confirm", TRUE); WM_keymap_add_item(keymap, "PARTICLE_OT_brush_edit", LEFTMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "PARTICLE_OT_brush_edit", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index e81e1f6dc77..c8d166976f9 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -556,11 +556,11 @@ void ED_keymap_paint(wmKeyConfig *keyconf) /* multires switch */ kmi= WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEUPKEY, KM_PRESS, 0, 0); RNA_int_set(kmi->ptr, "level", 1); - RNA_boolean_set(kmi->ptr, "relative", 1); + RNA_boolean_set(kmi->ptr, "relative", TRUE); kmi= WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEDOWNKEY, KM_PRESS, 0, 0); RNA_int_set(kmi->ptr, "level", -1); - RNA_boolean_set(kmi->ptr, "relative", 1); + RNA_boolean_set(kmi->ptr, "relative", TRUE); ed_keymap_paint_brush_switch(keymap, "sculpt"); ed_keymap_paint_brush_size(keymap, "tool_settings.sculpt.brush.size"); diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c index 82da9b3b956..b2527fbe4e0 100644 --- a/source/blender/editors/space_clip/space_clip.c +++ b/source/blender/editors/space_clip/space_clip.c @@ -399,22 +399,24 @@ static void clip_keymap(struct wmKeyConfig *keyconf) /* 2d tracking */ kmi= WM_keymap_add_item(keymap, "CLIP_OT_track_markers", LEFTARROWKEY, KM_PRESS, KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "backwards", 1); + RNA_boolean_set(kmi->ptr, "backwards", TRUE); + RNA_boolean_set(kmi->ptr, "sequence", FALSE); WM_keymap_add_item(keymap, "CLIP_OT_track_markers", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0); kmi= WM_keymap_add_item(keymap, "CLIP_OT_track_markers", TKEY, KM_PRESS, KM_CTRL, 0); - RNA_boolean_set(kmi->ptr, "sequence", 1); + RNA_boolean_set(kmi->ptr, "backwards", FALSE); + RNA_boolean_set(kmi->ptr, "sequence", TRUE); kmi= WM_keymap_add_item(keymap, "CLIP_OT_track_markers", TKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); - RNA_boolean_set(kmi->ptr, "backwards", 1); - RNA_boolean_set(kmi->ptr, "sequence", 1); + RNA_boolean_set(kmi->ptr, "backwards", TRUE); + RNA_boolean_set(kmi->ptr, "sequence", TRUE); /* mode */ kmi= WM_keymap_add_item(keymap, "CLIP_OT_mode_set", TABKEY, KM_PRESS, 0, 0); RNA_enum_set(kmi->ptr, "mode", SC_MODE_RECONSTRUCTION); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_boolean_set(kmi->ptr, "toggle", TRUE); kmi= WM_keymap_add_item(keymap, "CLIP_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0); RNA_enum_set(kmi->ptr, "mode", SC_MODE_DISTORTION); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_boolean_set(kmi->ptr, "toggle", TRUE); /* ******** Hotkeys avalaible for main region only ******** */ @@ -490,10 +492,11 @@ static void clip_keymap(struct wmKeyConfig *keyconf) kmi= WM_keymap_add_item(keymap, "CLIP_OT_lock_tracks", LKEY, KM_PRESS, KM_ALT, 0); RNA_enum_set(kmi->ptr, "action", 1); /* unlock */ - WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, 0, 0); + kmi= WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, 0, 0); + RNA_boolean_set(kmi->ptr, "unselected", FALSE); kmi= WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, KM_SHIFT, 0); - RNA_boolean_set(kmi->ptr, "unselected", 1); + RNA_boolean_set(kmi->ptr, "unselected", TRUE); WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks_clear", HKEY, KM_PRESS, KM_ALT, 0); -- cgit v1.2.3 From acb9b46617e8cb8bc323a164b6d2de1a02bafae6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 09:51:04 +0000 Subject: use TRUE/FALSE for boolean keymaps, no functional changes --- source/blender/editors/object/object_ops.c | 10 +-- source/blender/editors/screen/screen_ops.c | 6 +- .../blender/editors/space_console/space_console.c | 8 +-- source/blender/editors/space_file/space_file.c | 8 +-- source/blender/editors/space_image/space_image.c | 2 +- .../editors/space_sequencer/sequencer_ops.c | 18 +++--- source/blender/editors/space_text/space_text.c | 8 +-- source/blender/editors/space_view3d/view3d_ops.c | 2 +- source/blender/editors/transform/transform_ops.c | 74 +++++++++++----------- source/blender/windowmanager/intern/wm_operators.c | 2 +- 10 files changed, 69 insertions(+), 69 deletions(-) (limited to 'source') diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 9119d7de876..521865280ea 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -269,19 +269,19 @@ void ED_keymap_object(wmKeyConfig *keyconf) /* Note: this keymap works disregarding mode */ kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0); RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_boolean_set(kmi->ptr, "toggle", TRUE); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0); RNA_enum_set(kmi->ptr, "mode", OB_MODE_POSE); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_boolean_set(kmi->ptr, "toggle", TRUE); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", VKEY, KM_PRESS, 0, 0); RNA_enum_set(kmi->ptr, "mode", OB_MODE_VERTEX_PAINT); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_boolean_set(kmi->ptr, "toggle", TRUE); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0); RNA_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_boolean_set(kmi->ptr, "toggle", TRUE); WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT|KM_SHIFT|KM_CTRL, 0); @@ -348,7 +348,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) /* conflicts, removing */ #if 0 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0) - RNA_boolean_set(kmi->ptr, "unselected", 1); + RNA_boolean_set(kmi->ptr, "unselected", TRUE); #endif WM_keymap_add_item(keymap, "OBJECT_OT_move_to_layer", MKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 2632c239625..30cb9e8e53f 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3606,11 +3606,11 @@ void ED_keymap_screen(wmKeyConfig *keyconf) #if 0 // XXX: disabled for restoring later... bad implementation keymap= WM_keymap_find(keyconf, "Frames", 0, 0); kmi = WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "cycle_speed", 1); + RNA_boolean_set(kmi->ptr, "cycle_speed", TRUE); kmi = WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", LEFTARROWKEY, KM_PRESS, KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "reverse", 1); - RNA_boolean_set(kmi->ptr, "cycle_speed", 1); + RNA_boolean_set(kmi->ptr, "reverse", TRUE); + RNA_boolean_set(kmi->ptr, "cycle_speed", TRUE); WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", DOWNARROWKEY, KM_PRESS, KM_ALT, 0); #endif diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c index c713317aa7e..1a2541cbc90 100644 --- a/source/blender/editors/space_console/space_console.c +++ b/source/blender/editors/space_console/space_console.c @@ -276,19 +276,19 @@ static void console_keymap(struct wmKeyConfig *keyconf) kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); - RNA_boolean_set(kmi->ptr, "reverse", 0); + RNA_boolean_set(kmi->ptr, "reverse", FALSE); kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); - RNA_boolean_set(kmi->ptr, "reverse", 1); + RNA_boolean_set(kmi->ptr, "reverse", TRUE); kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); - RNA_boolean_set(kmi->ptr, "reverse", 0); + RNA_boolean_set(kmi->ptr, "reverse", FALSE); kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); - RNA_boolean_set(kmi->ptr, "reverse", 1); + RNA_boolean_set(kmi->ptr, "reverse", TRUE); RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR); RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR); diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c index 7bc71e333ea..02c9728348e 100644 --- a/source/blender/editors/space_file/space_file.c +++ b/source/blender/editors/space_file/space_file.c @@ -410,13 +410,13 @@ static void file_keymap(struct wmKeyConfig *keyconf) /* keys for main area */ keymap= WM_keymap_find(keyconf, "File Browser Main", SPACE_FILE, 0); kmi= WM_keymap_add_item(keymap, "FILE_OT_execute", LEFTMOUSE, KM_DBL_CLICK, 0, 0); - RNA_boolean_set(kmi->ptr, "need_active", 1); + RNA_boolean_set(kmi->ptr, "need_active", TRUE); WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, 0, 0); kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0); - RNA_boolean_set(kmi->ptr, "extend", 1); + RNA_boolean_set(kmi->ptr, "extend", TRUE); kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "extend", 1); - RNA_boolean_set(kmi->ptr, "fill", 1); + RNA_boolean_set(kmi->ptr, "extend", TRUE); + RNA_boolean_set(kmi->ptr, "fill", TRUE); WM_keymap_add_item(keymap, "FILE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "FILE_OT_refresh", PADPERIOD, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "FILE_OT_select_border", BKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 4421ad8e4f9..66a38389555 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -543,7 +543,7 @@ static void image_keymap(struct wmKeyConfig *keyconf) /* toggle editmode is handy to have while UV unwrapping */ kmi= WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0); RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT); - RNA_boolean_set(kmi->ptr, "toggle", 1); + RNA_boolean_set(kmi->ptr, "toggle", TRUE); } /* dropboxes */ diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index a6d8b6c2612..986aab8fa61 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -216,21 +216,21 @@ void sequencer_keymap(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "linked_right", 1); kmi= WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL|KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "linked_left", 1); - RNA_boolean_set(kmi->ptr, "linked_right", 1); + RNA_boolean_set(kmi->ptr, "linked_left", TRUE); + RNA_boolean_set(kmi->ptr, "linked_right", TRUE); kmi= WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_CTRL|KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "extend", 1); - RNA_boolean_set(kmi->ptr, "linked_left", 1); - RNA_boolean_set(kmi->ptr, "linked_right", 1); + RNA_boolean_set(kmi->ptr, "extend", TRUE); + RNA_boolean_set(kmi->ptr, "linked_left", TRUE); + RNA_boolean_set(kmi->ptr, "linked_right", TRUE); kmi= WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_CTRL, 0); - RNA_boolean_set(kmi->ptr, "extend", 1); - RNA_boolean_set(kmi->ptr, "linked_left", 1); + RNA_boolean_set(kmi->ptr, "extend", TRUE); + RNA_boolean_set(kmi->ptr, "linked_left", TRUE); kmi= WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "extend", 1); - RNA_boolean_set(kmi->ptr, "linked_right", 1); + RNA_boolean_set(kmi->ptr, "extend", TRUE); + RNA_boolean_set(kmi->ptr, "linked_right", TRUE); */ /* 2.5 method, Alt and use selected handle */ diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index 7e6af8ea789..23d12385625 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -268,19 +268,19 @@ static void text_keymap(struct wmKeyConfig *keyconf) kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); - RNA_boolean_set(kmi->ptr, "reverse", 0); + RNA_boolean_set(kmi->ptr, "reverse", FALSE); kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); - RNA_boolean_set(kmi->ptr, "reverse", 1); + RNA_boolean_set(kmi->ptr, "reverse", TRUE); kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); - RNA_boolean_set(kmi->ptr, "reverse", 0); + RNA_boolean_set(kmi->ptr, "reverse", FALSE); kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); - RNA_boolean_set(kmi->ptr, "reverse", 1); + RNA_boolean_set(kmi->ptr, "reverse", TRUE); WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "TEXT_OT_open", OKEY, KM_PRESS, KM_ALT, 0); diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 4594544b4f8..22470fe930d 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -121,7 +121,7 @@ void view3d_keymap(wmKeyConfig *keyconf) keymap= WM_keymap_find(keyconf, "3D View", SPACE_VIEW3D, 0); kmi = WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0); - RNA_boolean_set(kmi->ptr, "release_confirm", 1); + RNA_boolean_set(kmi->ptr, "release_confirm", TRUE); /* * Doesn't work with KM_SHIFT, have to use KM_ANY and filter in invoke * */ diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index b7aba109cdd..1843768bcd7 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -843,7 +843,7 @@ void transform_operatortypes(void) void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spaceid) { - wmKeyMapItem *km; + wmKeyMapItem *kmi; wmKeyMap *modalmap; /* transform.c, only adds modal map once, checks if it's there */ @@ -879,71 +879,71 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac WM_keymap_add_item(keymap, "TRANSFORM_OT_select_orientation", SPACEKEY, KM_PRESS, KM_ALT, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); - RNA_boolean_set(km->ptr, "use", 1); + kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); + RNA_boolean_set(kmi->ptr, "use", TRUE); WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0); - km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "data_path", "tool_settings.use_snap"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap"); WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); - km = WM_keymap_add_item(keymap, OP_TRANSLATION, TKEY, KM_PRESS, KM_SHIFT, 0); - RNA_boolean_set(km->ptr, "texture_space", 1); + kmi = WM_keymap_add_item(keymap, OP_TRANSLATION, TKEY, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "texture_space", TRUE); - km = WM_keymap_add_item(keymap, OP_RESIZE, TKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0); - RNA_boolean_set(km->ptr, "texture_space", 1); + kmi = WM_keymap_add_item(keymap, OP_RESIZE, TKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0); + RNA_boolean_set(kmi->ptr, "texture_space", TRUE); break; case SPACE_ACTION: - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_TRANSLATE); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_TRANSLATE); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_TRANSLATE); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_TRANSLATE); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_EXTEND); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_SCALE); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_SHIFT, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_SLIDE); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_SHIFT, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SLIDE); break; case SPACE_IPO: WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_EXTEND); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND); WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); break; case SPACE_NLA: - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TRANSLATION); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TRANSLATION); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TRANSLATION); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TRANSLATION); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_EXTEND); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_SCALE); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE); break; case SPACE_NODE: WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_A, KM_ANY, 0, 0); - RNA_boolean_set(km->ptr, "release_confirm", 1); - km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - RNA_boolean_set(km->ptr, "release_confirm", 1); + kmi= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_A, KM_ANY, 0, 0); + RNA_boolean_set(kmi->ptr, "release_confirm", TRUE); + kmi= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); + RNA_boolean_set(kmi->ptr, "release_confirm", TRUE); WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); @@ -954,8 +954,8 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac WM_keymap_add_item(keymap, OP_SEQ_SLIDE, EVT_TWEAK_S, KM_ANY, 0, 0); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); - RNA_enum_set(km->ptr, "mode", TFM_TIME_EXTEND); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND); break; case SPACE_IMAGE: WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); @@ -970,8 +970,8 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); - km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "data_path", "tool_settings.use_snap"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap"); break; case SPACE_CLIP: WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index edd822bd2da..ec4e035068a 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -3882,7 +3882,7 @@ void wm_window_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", F2KEY, KM_PRESS, 0, 0); kmi= WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); - RNA_boolean_set(kmi->ptr, "copy", 1); + RNA_boolean_set(kmi->ptr, "copy", TRUE); WM_keymap_verify_item(keymap, "WM_OT_window_fullscreen_toggle", F11KEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "WM_OT_quit_blender", QKEY, KM_PRESS, KM_CTRL, 0); -- cgit v1.2.3 From db2a453f32f1c7ee5317f199a198c9d070fb4a06 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 10:05:53 +0000 Subject: use a look for paint brush switching keys --- source/blender/editors/sculpt_paint/paint_ops.c | 69 +++---------------------- 1 file changed, 8 insertions(+), 61 deletions(-) (limited to 'source') diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index c8d166976f9..2a0ebb8316d 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -395,67 +395,14 @@ void ED_operatortypes_paint(void) static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *mode) { wmKeyMapItem *kmi; - - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", ONEKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 0); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", TWOKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 1); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", THREEKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 2); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", FOURKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 3); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", FIVEKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 4); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", SIXKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 5); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", SEVENKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 6); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", EIGHTKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 7); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", NINEKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 8); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", ZEROKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 9); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", ONEKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 10); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", TWOKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 11); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", THREEKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 12); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", FOURKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 13); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", FIVEKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 14); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", SIXKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 15); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", SEVENKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 16); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", EIGHTKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 17); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", NINEKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 18); - kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", ZEROKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "mode", mode); - RNA_int_set(kmi->ptr, "index", 19); + int i; + /* index 0-9 (zero key is tenth), shift key for index 10-19 */ + for (i = 0; i < 20; i++) { + kmi= WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", + ZEROKEY + ((i + 1) % 10), KM_PRESS, i < 10 ? 0 : KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "mode", mode); + RNA_int_set(kmi->ptr, "index", i); + } } static void ed_keymap_paint_brush_size(wmKeyMap *keymap, const char *UNUSED(path)) -- cgit v1.2.3 From 3123ad12a395031a1bf5a964582762a3831e9b1c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Jan 2012 10:48:52 +0000 Subject: middle mouse jump scrolling for text window. --- source/blender/editors/space_text/space_text.c | 4 +++- source/blender/editors/space_text/text_ops.c | 17 ++++++++++++++--- source/blender/python/mathutils/mathutils_Matrix.c | 7 ------- 3 files changed, 17 insertions(+), 11 deletions(-) (limited to 'source') diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index 23d12385625..441a5eab976 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -357,9 +357,11 @@ static void text_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "TEXT_OT_overwrite_toggle", INSERTKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "TEXT_OT_scroll_bar", LEFTMOUSE, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "TEXT_OT_scroll_bar", MIDDLEMOUSE, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "TEXT_OT_scroll", MIDDLEMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "TEXT_OT_scroll", MOUSEPAN, 0, 0, 0); - WM_keymap_add_item(keymap, "TEXT_OT_scroll_bar", LEFTMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "TEXT_OT_selection_set", EVT_TWEAK_L, KM_ANY, 0, 0); WM_keymap_add_item(keymap, "TEXT_OT_cursor_set", LEFTMOUSE, KM_PRESS, 0, 0); RNA_boolean_set(WM_keymap_add_item(keymap, "TEXT_OT_selection_set", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "select", 1); diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c index e8ad6e19fd4..19f0c9bba61 100644 --- a/source/blender/editors/space_text/text_ops.c +++ b/source/blender/editors/space_text/text_ops.c @@ -2232,8 +2232,8 @@ static int text_scroll_invoke(bContext *C, wmOperator *op, wmEvent *event) text_scroll_apply(C, op, event); scroll_exit(C, op); return OPERATOR_FINISHED; - } - + } + WM_event_add_modal_handler(C, op); return OPERATOR_RUNNING_MODAL; @@ -2314,9 +2314,20 @@ static int text_scroll_bar_invoke(bContext *C, wmOperator *op, wmEvent *event) tsc->scrollbar= 1; tsc->zone= zone; op->customdata= tsc; - st->flags|= ST_SCROLL_SELECT; + /* jump scroll, works in v2d but needs to be added here too :S */ + if (event->type == MIDDLEMOUSE) { + tsc->old[0] = ar->winrct.xmin + (st->txtbar.xmax + st->txtbar.xmin) / 2; + tsc->old[1] = ar->winrct.ymin + (st->txtbar.ymax + st->txtbar.ymin) / 2; + + tsc->delta[0] = 0; + tsc->delta[1] = 0; + tsc->first = 0; + tsc->zone= SCROLLHANDLE_BAR; + text_scroll_apply(C, op, event); + } + WM_event_add_modal_handler(C, op); return OPERATOR_RUNNING_MODAL; diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index e588389b322..7fe4b5ba5dd 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -1939,13 +1939,6 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) Py_TYPE(m1)->tp_name, Py_TYPE(m2)->tp_name); return NULL; } -static PyObject *Matrix_inv(MatrixObject *self) -{ - if (BaseMath_ReadCallback(self) == -1) - return NULL; - - return Matrix_invert(self); -} /*-----------------PROTOCOL DECLARATIONS--------------------------*/ static PySequenceMethods Matrix_SeqMethods = { -- cgit v1.2.3