forked from bartvdbraak/blender
svn merge ^/trunk/blender -r43392:43420
This commit is contained in:
commit
944dfa23c4
@ -532,8 +532,6 @@ data_2_56_to_2_59 = (
|
||||
("ShaderNodeMapping", "minimum", "min"),
|
||||
("ShaderNodeMapping", "clamp_maximum", "use_max"),
|
||||
("ShaderNodeMapping", "clamp_minimum", "use_min"),
|
||||
("VertexPaint", "all_faces", "use_all_faces"),
|
||||
("VertexPaint", "spray", "use_spray"),
|
||||
("ParticleEdit", "add_keys", "default_key_count"),
|
||||
("ParticleEdit", "selection_mode", "select_mode"),
|
||||
("ParticleEdit", "auto_velocity", "use_auto_velocity"),
|
||||
|
@ -515,6 +515,17 @@ class CLIP_PT_display(Panel):
|
||||
layout = self.layout
|
||||
sc = context.space_data
|
||||
|
||||
row = layout.row(align=True)
|
||||
sub = row.row()
|
||||
sub.prop(sc, "show_red_channel", text="R", toggle=True)
|
||||
sub.prop(sc, "show_green_channel", text="G", toggle=True)
|
||||
sub.prop(sc, "show_blue_channel", text="B", toggle=True)
|
||||
|
||||
row.separator()
|
||||
|
||||
sub = row.row()
|
||||
sub.prop(sc, "use_grayscale_preview", text="B/W", toggle=True)
|
||||
|
||||
col = layout.column(align=True)
|
||||
|
||||
col.prop(sc, "show_marker_pattern", text="Pattern")
|
||||
|
@ -1070,9 +1070,10 @@ class VIEW3D_PT_tools_weightpaint_options(PaintPanel, Panel):
|
||||
wpaint = tool_settings.weight_paint
|
||||
|
||||
col = layout.column()
|
||||
col.prop(wpaint, "use_all_faces")
|
||||
|
||||
col.prop(wpaint, "use_normal")
|
||||
col.prop(wpaint, "use_spray")
|
||||
col.prop(wpaint, "use_group_restrict")
|
||||
|
||||
obj = context.weight_paint_object
|
||||
if obj.type == 'MESH':
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -257,18 +257,30 @@ 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;
|
||||
int flag;
|
||||
|
||||
/* 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;
|
||||
short undistoriton_used;
|
||||
|
||||
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,44 +477,6 @@ static void real_ibuf_size(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, in
|
||||
}
|
||||
}
|
||||
|
||||
static int need_undistorted_cache(MovieClipUser *user, int flag)
|
||||
{
|
||||
/* 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;
|
||||
}
|
||||
else return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static ImBuf *get_undistorted_cache(MovieClip *clip, MovieClipUser *user)
|
||||
{
|
||||
MovieClipCache *cache= clip->cache;
|
||||
MovieTrackingCamera *camera= &clip->tracking.camera;
|
||||
int framenr= user->framenr;
|
||||
|
||||
/* no cache or no cached undistorted image */
|
||||
if(!clip->cache || !clip->cache->undistibuf)
|
||||
return NULL;
|
||||
|
||||
/* undistortion happened for other frame */
|
||||
if(cache->undist_framenr!=framenr)
|
||||
return NULL;
|
||||
|
||||
/* check for distortion model changes */
|
||||
if(!equals_v2v2(camera->principal, cache->principal))
|
||||
return NULL;
|
||||
|
||||
if(!equals_v3v3(&camera->k1, &cache->k1))
|
||||
return NULL;
|
||||
|
||||
IMB_refImBuf(cache->undistibuf);
|
||||
|
||||
return cache->undistibuf;
|
||||
}
|
||||
|
||||
static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *distortion, ImBuf *ibuf)
|
||||
{
|
||||
ImBuf *undistibuf;
|
||||
@ -526,50 +500,156 @@ static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *dist
|
||||
return undistibuf;
|
||||
}
|
||||
|
||||
static ImBuf *put_undistorted_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf)
|
||||
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) {
|
||||
result |= (user->render_size == MCLIP_PROXY_RENDER_SIZE_FULL) &&
|
||||
(user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT) != 0;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static int need_postprocessed_frame(MovieClipUser *user, int flag, int postprocess_flag)
|
||||
{
|
||||
int result = postprocess_flag;
|
||||
|
||||
result |= need_undistortion_postprocess(user, flag);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static int check_undistortion_cache_flags(MovieClip *clip)
|
||||
{
|
||||
MovieClipCache *cache= clip->cache;
|
||||
MovieTrackingCamera *camera= &clip->tracking.camera;
|
||||
|
||||
copy_v2_v2(cache->principal, camera->principal);
|
||||
copy_v3_v3(&cache->k1, &camera->k1);
|
||||
cache->undist_framenr= user->framenr;
|
||||
/* check for distortion model changes */
|
||||
if(!equals_v2v2(camera->principal, cache->postprocessed.principal))
|
||||
return 0;
|
||||
|
||||
if(cache->undistibuf)
|
||||
IMB_freeImBuf(cache->undistibuf);
|
||||
if(!equals_v3v3(&camera->k1, &cache->postprocessed.k1))
|
||||
return 0;
|
||||
|
||||
cache->undistibuf= get_undistorted_ibuf(clip, NULL, ibuf);
|
||||
|
||||
if(cache->stableibuf) {
|
||||
/* force stable buffer be re-calculated */
|
||||
IMB_freeImBuf(cache->stableibuf);
|
||||
cache->stableibuf= NULL;
|
||||
}
|
||||
|
||||
IMB_refImBuf(cache->undistibuf);
|
||||
|
||||
return cache->undistibuf;
|
||||
return 1;
|
||||
}
|
||||
|
||||
ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user)
|
||||
static ImBuf *get_postprocessed_cached_frame(MovieClip *clip, MovieClipUser *user, int flag, int postprocess_flag)
|
||||
{
|
||||
MovieClipCache *cache= clip->cache;
|
||||
int framenr= user->framenr;
|
||||
short proxy= IMB_PROXY_NONE;
|
||||
int render_flag= 0;
|
||||
|
||||
if(flag&MCLIP_USE_PROXY) {
|
||||
proxy= rendersize_to_proxy(user, flag);
|
||||
render_flag= user->render_flag;
|
||||
}
|
||||
|
||||
/* no cache or no cached postprocessed image */
|
||||
if(!clip->cache || !clip->cache->postprocessed.ibuf)
|
||||
return NULL;
|
||||
|
||||
/* 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(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, int postprocess_flag)
|
||||
{
|
||||
MovieClipCache *cache= clip->cache;
|
||||
MovieTrackingCamera *camera= &clip->tracking.camera;
|
||||
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);
|
||||
cache->postprocessed.render_flag= user->render_flag;
|
||||
}
|
||||
else {
|
||||
cache->postprocessed.proxy = IMB_PROXY_NONE;
|
||||
cache->postprocessed.render_flag = 0;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
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, int postprocess_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, postprocess_flag)) {
|
||||
ibuf= get_postprocessed_cached_frame(clip, user, flag, postprocess_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 +659,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, postprocess_flag);
|
||||
IMB_freeImBuf(tmpibuf);
|
||||
}
|
||||
}
|
||||
@ -605,105 +685,113 @@ ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user)
|
||||
return ibuf;
|
||||
}
|
||||
|
||||
ImBuf *BKE_movieclip_get_ibuf_flag(MovieClip *clip, MovieClipUser *user, int flag)
|
||||
ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user)
|
||||
{
|
||||
ImBuf *ibuf= NULL;
|
||||
int framenr= user->framenr;
|
||||
int cache_undistorted= 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, flag)) {
|
||||
ibuf= get_undistorted_cache(clip, user);
|
||||
if(!ibuf)
|
||||
cache_undistorted= 1;
|
||||
}
|
||||
|
||||
ibuf= get_imbuf_cache(clip, user, flag);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
if(ibuf) {
|
||||
int bits= MCLIP_USE_PROXY|MCLIP_USE_PROXY_CUSTOM_DIR;
|
||||
|
||||
if((flag&bits)==(clip->flag&bits))
|
||||
put_imbuf_cache(clip, user, ibuf, clip->flag);
|
||||
}
|
||||
}
|
||||
|
||||
/* put undistorted frame to cache */
|
||||
if(ibuf && cache_undistorted) {
|
||||
ImBuf *tmpibuf= ibuf;
|
||||
ibuf= put_undistorted_cache(clip, user, tmpibuf);
|
||||
IMB_freeImBuf(tmpibuf);
|
||||
}
|
||||
|
||||
BLI_unlock_thread(LOCK_MOVIECLIP);
|
||||
|
||||
return ibuf;
|
||||
return BKE_movieclip_get_ibuf_flag(clip, user, clip->flag);
|
||||
}
|
||||
|
||||
ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float loc[2], float *scale, float *angle)
|
||||
ImBuf *BKE_movieclip_get_ibuf_flag(MovieClip *clip, MovieClipUser *user, int 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)
|
||||
{
|
||||
MovieClipCache *cache = clip->cache;
|
||||
ImBuf *stableibuf;
|
||||
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;
|
||||
}
|
||||
|
||||
/* there's no cached frame or it was calculated for another frame */
|
||||
if(!cache->stabilized.ibuf || cache->stabilized.framenr != framenr)
|
||||
return NULL;
|
||||
|
||||
/* cached ibuf used different proxy settings */
|
||||
if(cache->stabilized.render_flag!=render_flag || cache->stabilized.proxy!=proxy)
|
||||
return NULL;
|
||||
|
||||
stableibuf = cache->stabilized.ibuf;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
IMB_refImBuf(stableibuf);
|
||||
|
||||
return stableibuf;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
if(clip->tracking.stabilization.flag&TRACKING_2D_STABILIZATION) {
|
||||
float tloc[2], tscale, tangle;
|
||||
short proxy= IMB_PROXY_NONE;
|
||||
int render_flag= 0;
|
||||
MovieClipCache *cache= clip->cache;
|
||||
|
||||
if(clip->flag&MCLIP_USE_PROXY) {
|
||||
proxy= rendersize_to_proxy(user, clip->flag);
|
||||
render_flag= user->render_flag;
|
||||
}
|
||||
stableibuf= get_stable_cached_frame(clip, user, framenr);
|
||||
|
||||
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;
|
||||
if(!stableibuf)
|
||||
stableibuf= put_stabilized_frame_to_cache(clip, user, ibuf, framenr);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
IMB_refImBuf(stableibuf);
|
||||
|
||||
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 +874,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;
|
||||
|
@ -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; y<ibuf->y; y++) {
|
||||
for (x= 0; x<ibuf->x; 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,12 +1059,18 @@ 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])
|
||||
{
|
||||
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);
|
||||
@ -1086,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);
|
||||
@ -1113,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;
|
||||
}
|
||||
|
||||
|
@ -5239,7 +5239,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;
|
||||
@ -14517,7 +14516,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);
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -269,20 +269,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", 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_enum_set(kmi->ptr, "mode", OB_MODE_POSE);
|
||||
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_enum_set(kmi->ptr, "mode", OB_MODE_VERTEX_PAINT);
|
||||
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_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT);
|
||||
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);
|
||||
|
||||
@ -297,27 +297,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", 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", 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, 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);
|
||||
@ -334,20 +336,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", TRUE);
|
||||
#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);
|
||||
|
||||
@ -393,7 +409,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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -3604,11 +3604,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
|
||||
|
@ -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]);
|
||||
|
@ -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))
|
||||
@ -556,11 +503,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");
|
||||
|
@ -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;
|
||||
/* 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_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);
|
||||
/* scale 3D brush radius by pressure */
|
||||
if(sd->draw_pressure && brush_use_size_pressure(vc->scene, brush))
|
||||
unprojected_radius *= sd->pressure_value;
|
||||
|
||||
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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -542,7 +542,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 */
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
* */
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
@ -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 */
|
||||
|
@ -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.
|
||||
|
@ -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 */
|
||||
|
||||
@ -518,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 */
|
||||
|
@ -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;
|
||||
|
@ -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 */
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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 = {
|
||||
@ -2049,7 +2042,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*/
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
||||
|
@ -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),
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
@ -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),
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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));
|
||||
|
@ -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),
|
||||
|
@ -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),
|
||||
|
@ -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),
|
||||
|
@ -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),
|
||||
|
@ -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),
|
||||
|
@ -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),
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user