mirror of
https://github.com/blender/blender
synced 2026-09-29 04:37:17 +03:00
Merging r58341 through r58364 from trunk into blender-2.68-release
This commit is contained in:
commit
4a999f9e96
10 changed files with 60 additions and 35 deletions
|
|
@ -271,7 +271,7 @@ __device void lamp_light_sample(KernelGlobals *kg, int lamp,
|
|||
ls->pdf = invarea;
|
||||
|
||||
if(type == LIGHT_SPOT) {
|
||||
/* spot light attentuation */
|
||||
/* spot light attenuation */
|
||||
float4 data2 = kernel_tex_fetch(__light_data, lamp*LIGHT_SIZE + 2);
|
||||
ls->eval_fac *= spot_light_attenuation(data1, data2, ls);
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 174 KiB |
|
|
@ -41,8 +41,8 @@ extern "C" {
|
|||
/* these lines are grep'd, watch out for our not-so-awesome regex
|
||||
* and keep comment above the defines.
|
||||
* Use STRINGIFY() rather than defining with quotes */
|
||||
#define BLENDER_VERSION 267
|
||||
#define BLENDER_SUBVERSION 1
|
||||
#define BLENDER_VERSION 268
|
||||
#define BLENDER_SUBVERSION 0
|
||||
|
||||
/* 262 was the last editmesh release but it has compatibility code for bmesh data */
|
||||
#define BLENDER_MINVERSION 262
|
||||
|
|
@ -50,9 +50,9 @@ extern "C" {
|
|||
|
||||
/* used by packaging tools */
|
||||
/* can be left blank, otherwise a,b,c... etc with no quotes */
|
||||
#define BLENDER_VERSION_CHAR b
|
||||
#define BLENDER_VERSION_CHAR
|
||||
/* alpha/beta/rc/release, docs use this */
|
||||
#define BLENDER_VERSION_CYCLE rc
|
||||
#define BLENDER_VERSION_CYCLE release
|
||||
|
||||
extern char versionstr[]; /* from blender.c */
|
||||
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ struct FCurve *rna_get_fcurve(struct PointerRNA *ptr, struct PropertyRNA *prop,
|
|||
int binarysearch_bezt_index(struct BezTriple array[], float frame, int arraylen, bool *r_replace);
|
||||
|
||||
/* get the time extents for F-Curve */
|
||||
void calc_fcurve_range(struct FCurve *fcu, float *min, float *max,
|
||||
bool calc_fcurve_range(struct FCurve *fcu, float *min, float *max,
|
||||
const short do_sel_only, const short do_min_length);
|
||||
|
||||
/* get the bounding-box extents for F-Curve */
|
||||
|
|
|
|||
|
|
@ -577,7 +577,7 @@ short calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, flo
|
|||
}
|
||||
|
||||
/* Calculate the extents of F-Curve's keyframes */
|
||||
void calc_fcurve_range(FCurve *fcu, float *start, float *end,
|
||||
bool calc_fcurve_range(FCurve *fcu, float *start, float *end,
|
||||
const short do_sel_only, const short do_min_length)
|
||||
{
|
||||
float min = 999999999.0f, max = -999999999.0f;
|
||||
|
|
@ -621,6 +621,8 @@ void calc_fcurve_range(FCurve *fcu, float *start, float *end,
|
|||
|
||||
*start = min;
|
||||
*end = max;
|
||||
|
||||
return foundvert;
|
||||
}
|
||||
|
||||
/* ----------------- Status Checks -------------------------- */
|
||||
|
|
|
|||
|
|
@ -133,24 +133,28 @@ void ArmatureImporter::create_bone(SkinInfo *skin, COLLADAFW::Node *node, EditBo
|
|||
add_v3_v3v3(bone->tail, bone->head, vec);
|
||||
|
||||
// set parent tail
|
||||
if (parent && totchild == 1) {
|
||||
copy_v3_v3(parent->tail, bone->head);
|
||||
|
||||
// not setting BONE_CONNECTED because this would lock child bone location with respect to parent
|
||||
bone->flag |= BONE_CONNECTED;
|
||||
if (parent) {
|
||||
|
||||
// XXX increase this to prevent "very" small bones?
|
||||
const float epsilon = 0.000001f;
|
||||
|
||||
// derive leaf bone length
|
||||
float length = len_v3v3(parent->head, parent->tail);
|
||||
float length = len_v3v3(parent->head, bone->head);
|
||||
if ((length < leaf_bone_length || totbone == 0) && length > epsilon) {
|
||||
leaf_bone_length = length;
|
||||
}
|
||||
|
||||
// treat zero-sized bone like a leaf bone
|
||||
if (length <= epsilon) {
|
||||
add_leaf_bone(parent_mat, parent, node);
|
||||
if (totchild == 1) {
|
||||
copy_v3_v3(parent->tail, bone->head);
|
||||
|
||||
// not setting BONE_CONNECTED because this would lock child bone location with respect to parent
|
||||
bone->flag |= BONE_CONNECTED;
|
||||
|
||||
|
||||
// treat zero-sized bone like a leaf bone
|
||||
if (length <= epsilon) {
|
||||
add_leaf_bone(parent_mat, parent, node);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ void ControllerExporter::operator()(Object *ob)
|
|||
if (ob_arm) {
|
||||
export_skin_controller(ob, ob_arm);
|
||||
}
|
||||
if (key) {
|
||||
if (key && this->export_settings->include_shapekeys) {
|
||||
export_morph_controller(ob, key);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -962,10 +962,10 @@ static bool ui_but_event_property_operator_string(const bContext *C, uiBut *but,
|
|||
data_path = BLI_sprintfN("scene.%s", path);
|
||||
MEM_freeN(path);
|
||||
}
|
||||
else {
|
||||
/*else {
|
||||
printf("ERROR in %s(): Couldn't get path for scene property - %s\n",
|
||||
__func__, RNA_property_identifier(but->rnaprop));
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -231,11 +231,12 @@ void ACTION_OT_markers_make_local(wmOperatorType *ot)
|
|||
/* *************************** Calculate Range ************************** */
|
||||
|
||||
/* Get the min/max keyframes*/
|
||||
static void get_keyframe_extents(bAnimContext *ac, float *min, float *max, const short onlySel)
|
||||
static bool get_keyframe_extents(bAnimContext *ac, float *min, float *max, const short onlySel)
|
||||
{
|
||||
ListBase anim_data = {NULL, NULL};
|
||||
bAnimListElem *ale;
|
||||
int filter;
|
||||
bool found = false;
|
||||
|
||||
/* get data to filter, from Action or Dopesheet */
|
||||
/* XXX: what is sel doing here?!
|
||||
|
|
@ -261,6 +262,7 @@ static void get_keyframe_extents(bAnimContext *ac, float *min, float *max, const
|
|||
const float framenum = (float)gpf->framenum;
|
||||
*min = min_ff(*min, framenum);
|
||||
*max = max_ff(*max, framenum);
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
else if (ale->datatype == ALE_MASKLAY) {
|
||||
|
|
@ -275,6 +277,7 @@ static void get_keyframe_extents(bAnimContext *ac, float *min, float *max, const
|
|||
const float framenum = (float)masklay_shape->frame;
|
||||
*min = min_ff(*min, framenum);
|
||||
*max = max_ff(*max, framenum);
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -282,16 +285,18 @@ static void get_keyframe_extents(bAnimContext *ac, float *min, float *max, const
|
|||
float tmin, tmax;
|
||||
|
||||
/* get range and apply necessary scaling before processing */
|
||||
calc_fcurve_range(fcu, &tmin, &tmax, onlySel, TRUE);
|
||||
if (calc_fcurve_range(fcu, &tmin, &tmax, onlySel, TRUE)) {
|
||||
|
||||
if (adt) {
|
||||
tmin = BKE_nla_tweakedit_remap(adt, tmin, NLATIME_CONVERT_MAP);
|
||||
tmax = BKE_nla_tweakedit_remap(adt, tmax, NLATIME_CONVERT_MAP);
|
||||
if (adt) {
|
||||
tmin = BKE_nla_tweakedit_remap(adt, tmin, NLATIME_CONVERT_MAP);
|
||||
tmax = BKE_nla_tweakedit_remap(adt, tmax, NLATIME_CONVERT_MAP);
|
||||
}
|
||||
|
||||
/* try to set cur using these values, if they're more extreme than previously set values */
|
||||
*min = min_ff(*min, tmin);
|
||||
*max = max_ff(*max, tmax);
|
||||
found = true;
|
||||
}
|
||||
|
||||
/* try to set cur using these values, if they're more extreme than previously set values */
|
||||
*min = min_ff(*min, tmin);
|
||||
*max = max_ff(*max, tmax);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -309,6 +314,8 @@ static void get_keyframe_extents(bAnimContext *ac, float *min, float *max, const
|
|||
*max = 100;
|
||||
}
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
/* ****************** Automatic Preview-Range Operator ****************** */
|
||||
|
|
@ -357,11 +364,12 @@ void ACTION_OT_previewrange_set(wmOperatorType *ot)
|
|||
|
||||
/* ****************** View-All Operator ****************** */
|
||||
|
||||
static int actkeys_viewall(bContext *C, const short onlySel)
|
||||
static int actkeys_viewall(bContext *C, const bool only_sel, const bool only_xaxis)
|
||||
{
|
||||
bAnimContext ac;
|
||||
View2D *v2d;
|
||||
float extra;
|
||||
bool found;
|
||||
|
||||
/* get editor data */
|
||||
if (ANIM_animdata_get_context(C, &ac) == 0)
|
||||
|
|
@ -369,15 +377,20 @@ static int actkeys_viewall(bContext *C, const short onlySel)
|
|||
v2d = &ac.ar->v2d;
|
||||
|
||||
/* set the horizontal range, with an extra offset so that the extreme keys will be in view */
|
||||
get_keyframe_extents(&ac, &v2d->cur.xmin, &v2d->cur.xmax, onlySel);
|
||||
found = get_keyframe_extents(&ac, &v2d->cur.xmin, &v2d->cur.xmax, only_sel);
|
||||
|
||||
if (only_sel && (found == false))
|
||||
return OPERATOR_CANCELLED;
|
||||
|
||||
extra = 0.1f * BLI_rctf_size_x(&v2d->cur);
|
||||
v2d->cur.xmin -= extra;
|
||||
v2d->cur.xmax += extra;
|
||||
|
||||
/* set vertical range */
|
||||
v2d->cur.ymax = 0.0f;
|
||||
v2d->cur.ymin = (float)-BLI_rcti_size_y(&v2d->mask);
|
||||
if (only_xaxis == false) {
|
||||
v2d->cur.ymax = 0.0f;
|
||||
v2d->cur.ymin = (float)-BLI_rcti_size_y(&v2d->mask);
|
||||
}
|
||||
|
||||
/* do View2D syncing */
|
||||
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
|
||||
|
|
@ -393,13 +406,13 @@ static int actkeys_viewall(bContext *C, const short onlySel)
|
|||
static int actkeys_viewall_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
/* whole range */
|
||||
return actkeys_viewall(C, FALSE);
|
||||
return actkeys_viewall(C, false, false);
|
||||
}
|
||||
|
||||
static int actkeys_viewsel_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
/* only selected */
|
||||
return actkeys_viewall(C, TRUE);
|
||||
return actkeys_viewall(C, true, true);
|
||||
}
|
||||
|
||||
void ACTION_OT_view_all(wmOperatorType *ot)
|
||||
|
|
|
|||
|
|
@ -333,17 +333,23 @@ void RNA_api_wm(StructRNA *srna)
|
|||
|
||||
/* Progress bar interface */
|
||||
func = RNA_def_function(srna, "progress_begin", "rna_progress_begin");
|
||||
RNA_def_function_ui_description(func, "Start Progress bar");
|
||||
|
||||
parm = RNA_def_property(func, "min", PROP_FLOAT, PROP_NONE);
|
||||
RNA_def_property_ui_text(parm, "min", "any value in range [0,9999]");
|
||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||
|
||||
parm = RNA_def_property(func, "max", PROP_FLOAT, PROP_NONE);
|
||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||
RNA_def_property_ui_text(parm, "max", "any value in range [min+1,9998]");
|
||||
|
||||
func = RNA_def_function(srna, "progress_update", "rna_progress_update");
|
||||
parm = RNA_def_property(func, "value", PROP_FLOAT, PROP_NONE);
|
||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||
RNA_def_property_ui_text(parm, "value", "any value between min and max as set in progress_init()");
|
||||
RNA_def_property_ui_text(parm, "value", "any value between min and max as set in progress_begin()");
|
||||
|
||||
func = RNA_def_function(srna, "progress_end", "rna_progress_end");
|
||||
RNA_def_function_ui_description(func, "Terminate Progress bar");
|
||||
|
||||
/* invoke functions, for use with python */
|
||||
func = RNA_def_function(srna, "invoke_props_popup", "rna_Operator_props_popup");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue