svn merge ^/trunk/blender -r41932:41939
This commit is contained in:
@@ -224,7 +224,9 @@ def project_name_get(path, fallback="Blender", prefix="Blender_"):
|
||||
|
||||
import subprocess
|
||||
info = subprocess.Popen(["svn", "info", path],
|
||||
stdout=subprocess.PIPE).communicate()[0].decode()
|
||||
stdout=subprocess.PIPE).communicate()[0]
|
||||
# string version, we only want the URL
|
||||
info = info.decode(encoding="utf-8", errors="ignore")
|
||||
|
||||
for l in info.split("\n"):
|
||||
l = l.strip()
|
||||
|
||||
@@ -73,7 +73,7 @@ def do_ignore(filepath, ignore_prefix_list):
|
||||
def makefile_log():
|
||||
import subprocess
|
||||
import time
|
||||
# Check blender is not 2.5x until it supports playback again
|
||||
|
||||
print("running make with --dry-run ...")
|
||||
process = subprocess.Popen(["make", "--always-make", "--dry-run", "--keep-going", "VERBOSE=1"],
|
||||
stdout=subprocess.PIPE,
|
||||
@@ -85,7 +85,7 @@ def makefile_log():
|
||||
out = process.stdout.read()
|
||||
process.stdout.close()
|
||||
print("done!", len(out), "bytes")
|
||||
return out.decode("ascii").split("\n")
|
||||
return out.decode("utf-8", errors="ignore").split("\n")
|
||||
|
||||
|
||||
def build_info(use_c=True, use_cxx=True, ignore_prefix_list=None):
|
||||
|
||||
@@ -52,9 +52,9 @@ else:
|
||||
|
||||
cmd = [blender_bin, "--help"]
|
||||
print(" executing:", " ".join(cmd))
|
||||
blender_help = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0].decode()
|
||||
blender_help = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0].decode(encoding="utf-8")
|
||||
|
||||
blender_version = subprocess.Popen([blender_bin, "--version"], stdout=subprocess.PIPE).communicate()[0].decode().strip()
|
||||
blender_version = subprocess.Popen([blender_bin, "--version"], stdout=subprocess.PIPE).communicate()[0].decode(encoding="utf-8").strip()
|
||||
blender_version = blender_version.split("Build")[0]
|
||||
|
||||
date_string = datetime.date.fromtimestamp(time.time()).strftime("%B %d, %Y")
|
||||
|
||||
@@ -658,7 +658,7 @@ def pycontext2sphinx(BASEPATH):
|
||||
char_array = c_char_p_p.from_address(attr)
|
||||
i = 0
|
||||
while char_array[i] is not None:
|
||||
member = ctypes.string_at(char_array[i]).decode()
|
||||
member = ctypes.string_at(char_array[i]).decode(encoding="ascii")
|
||||
fw(".. data:: %s\n\n" % member)
|
||||
member_type, is_seq = type_map[member]
|
||||
fw(" :type: %s :class:`bpy.types.%s`\n\n" % ("sequence of " if is_seq else "", member_type))
|
||||
|
||||
@@ -1835,32 +1835,32 @@ class VIEW3D_MT_edit_text_chars(Menu):
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.operator("font.text_insert", text="Copyright|Alt C").text = b'\xC2\xA9'.decode()
|
||||
layout.operator("font.text_insert", text="Registered Trademark|Alt R").text = b'\xC2\xAE'.decode()
|
||||
layout.operator("font.text_insert", text="Copyright|Alt C").text = "\u00A9"
|
||||
layout.operator("font.text_insert", text="Registered Trademark|Alt R").text = "\u00AE"
|
||||
|
||||
layout.separator()
|
||||
|
||||
layout.operator("font.text_insert", text="Degree Sign|Alt G").text = b'\xC2\xB0'.decode()
|
||||
layout.operator("font.text_insert", text="Multiplication Sign|Alt x").text = b'\xC3\x97'.decode()
|
||||
layout.operator("font.text_insert", text="Circle|Alt .").text = b'\xC2\x8A'.decode()
|
||||
layout.operator("font.text_insert", text="Superscript 1|Alt 1").text = b'\xC2\xB9'.decode()
|
||||
layout.operator("font.text_insert", text="Superscript 2|Alt 2").text = b'\xC2\xB2'.decode()
|
||||
layout.operator("font.text_insert", text="Superscript 3|Alt 3").text = b'\xC2\xB3'.decode()
|
||||
layout.operator("font.text_insert", text="Double >>|Alt >").text = b'\xC2\xBB'.decode()
|
||||
layout.operator("font.text_insert", text="Double <<|Alt <").text = b'\xC2\xAB'.decode()
|
||||
layout.operator("font.text_insert", text="Promillage|Alt %").text = b'\xE2\x80\xB0'.decode()
|
||||
layout.operator("font.text_insert", text="Degree Sign|Alt G").text = "\u00B0"
|
||||
layout.operator("font.text_insert", text="Multiplication Sign|Alt x").text = "\u00D7"
|
||||
layout.operator("font.text_insert", text="Circle|Alt .").text = "\u008A"
|
||||
layout.operator("font.text_insert", text="Superscript 1|Alt 1").text = "\u00B9"
|
||||
layout.operator("font.text_insert", text="Superscript 2|Alt 2").text = "\u00B2"
|
||||
layout.operator("font.text_insert", text="Superscript 3|Alt 3").text = "\u00B3"
|
||||
layout.operator("font.text_insert", text="Double >>|Alt >").text = "\u00BB"
|
||||
layout.operator("font.text_insert", text="Double <<|Alt <").text = "\u00AB"
|
||||
layout.operator("font.text_insert", text="Promillage|Alt %").text = "\u2030"
|
||||
|
||||
layout.separator()
|
||||
|
||||
layout.operator("font.text_insert", text="Dutch Florin|Alt F").text = b'\xC2\xA4'.decode()
|
||||
layout.operator("font.text_insert", text="British Pound|Alt L").text = b'\xC2\xA3'.decode()
|
||||
layout.operator("font.text_insert", text="Japanese Yen|Alt Y").text = b'\xC2\xA5'.decode()
|
||||
layout.operator("font.text_insert", text="Dutch Florin|Alt F").text = "\u00A4"
|
||||
layout.operator("font.text_insert", text="British Pound|Alt L").text = "\u00A3"
|
||||
layout.operator("font.text_insert", text="Japanese Yen|Alt Y").text = "\u00A5"
|
||||
|
||||
layout.separator()
|
||||
|
||||
layout.operator("font.text_insert", text="German S|Alt S").text = b'\xC3\x9F'.decode()
|
||||
layout.operator("font.text_insert", text="Spanish Question Mark|Alt ?").text = b'\xC2\xBF'.decode()
|
||||
layout.operator("font.text_insert", text="Spanish Exclamation Mark|Alt !").text = b'\xC2\xA1'.decode()
|
||||
layout.operator("font.text_insert", text="German S|Alt S").text = "\u00DF"
|
||||
layout.operator("font.text_insert", text="Spanish Question Mark|Alt ?").text = "\u00BF"
|
||||
layout.operator("font.text_insert", text="Spanish Exclamation Mark|Alt !").text = "\u00A1"
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_meta(Menu):
|
||||
|
||||
@@ -594,6 +594,9 @@ void calc_sequence(Scene *scene, Sequence *seq)
|
||||
// seq->enddisp= MIN2(seq->seq1->enddisp, seq->seq2->enddisp);
|
||||
|
||||
if (seq->seq1) {
|
||||
/* XXX These resets should not be necessary, but users used to be able to
|
||||
* edit effect's length, leading to strange results. See #29190. */
|
||||
seq->startofs = seq->endofs = seq->startstill = seq->endstill = 0;
|
||||
seq->start= seq->startdisp= MAX3(seq->seq1->startdisp, seq->seq2->startdisp, seq->seq3->startdisp);
|
||||
seq->enddisp= MIN3(seq->seq1->enddisp, seq->seq2->enddisp, seq->seq3->enddisp);
|
||||
/* we cant help if strips don't overlap, it wont give useful results.
|
||||
|
||||
@@ -66,7 +66,7 @@ typedef struct BLI_mempool_chunk {
|
||||
void *data;
|
||||
} BLI_mempool_chunk;
|
||||
|
||||
typedef struct BLI_mempool {
|
||||
struct BLI_mempool {
|
||||
struct ListBase chunks;
|
||||
int esize, csize, pchunk; /* size of elements and chunks in bytes
|
||||
* and number of elements per chunk*/
|
||||
@@ -76,7 +76,7 @@ typedef struct BLI_mempool {
|
||||
BLI_freenode *free; /* free element list. Interleaved into chunk datas.*/
|
||||
int totalloc, totused; /* total number of elements allocated in total,
|
||||
* and currently in use*/
|
||||
} BLI_mempool;
|
||||
};
|
||||
|
||||
#define MEMPOOL_ELEM_SIZE_MIN (sizeof(void *) * 2)
|
||||
|
||||
|
||||
@@ -169,8 +169,13 @@ void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar)
|
||||
|
||||
static void area_draw_azone(short x1, short y1, short x2, short y2)
|
||||
{
|
||||
int dx= floor(0.3f*(x2-x1));
|
||||
int dy= floor(0.3f*(y2-y1));
|
||||
int dx = x2 - x1;
|
||||
int dy = y2 - y1;
|
||||
|
||||
dx= copysign(ceil(0.3f*fabs(dx)), dx);
|
||||
dy= copysign(ceil(0.3f*fabs(dy)), dy);
|
||||
|
||||
glEnable(GL_LINE_SMOOTH);
|
||||
|
||||
glColor4ub(255, 255, 255, 180);
|
||||
fdrawline(x1, y2, x2, y1);
|
||||
@@ -185,8 +190,9 @@ static void area_draw_azone(short x1, short y1, short x2, short y2)
|
||||
fdrawline(x1, y2-dy+1, x2-dx+1, y1);
|
||||
glColor4ub(0, 0, 0, 150);
|
||||
fdrawline(x1, y2-2*dy+1, x2-2*dx+1, y1);
|
||||
}
|
||||
|
||||
glDisable(GL_LINE_SMOOTH);
|
||||
}
|
||||
|
||||
static void region_draw_azone_icon(AZone *az)
|
||||
{
|
||||
@@ -550,19 +556,19 @@ static void area_azone_initialize(ScrArea *sa)
|
||||
az= (AZone *)MEM_callocN(sizeof(AZone), "actionzone");
|
||||
BLI_addtail(&(sa->actionzones), az);
|
||||
az->type= AZONE_AREA;
|
||||
az->x1= sa->totrct.xmin;
|
||||
az->y1= sa->totrct.ymin;
|
||||
az->x2= sa->totrct.xmin + AZONESPOT;
|
||||
az->y2= sa->totrct.ymin + AZONESPOT;
|
||||
az->x1= sa->totrct.xmin - 1;
|
||||
az->y1= sa->totrct.ymin - 1;
|
||||
az->x2= sa->totrct.xmin + (AZONESPOT-1);
|
||||
az->y2= sa->totrct.ymin + (AZONESPOT-1);
|
||||
BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
|
||||
|
||||
az= (AZone *)MEM_callocN(sizeof(AZone), "actionzone");
|
||||
BLI_addtail(&(sa->actionzones), az);
|
||||
az->type= AZONE_AREA;
|
||||
az->x1= sa->totrct.xmax+1;
|
||||
az->y1= sa->totrct.ymax+1;
|
||||
az->x2= sa->totrct.xmax-AZONESPOT;
|
||||
az->y2= sa->totrct.ymax-AZONESPOT;
|
||||
az->x1= sa->totrct.xmax + 1;
|
||||
az->y1= sa->totrct.ymax + 1;
|
||||
az->x2= sa->totrct.xmax - (AZONESPOT-1);
|
||||
az->y2= sa->totrct.ymax - (AZONESPOT-1);
|
||||
BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
|
||||
}
|
||||
|
||||
|
||||
@@ -191,6 +191,13 @@ static int rna_Sequence_frame_length_get(PointerRNA *ptr)
|
||||
return seq_tx_get_final_right(seq, 0)-seq_tx_get_final_left(seq, 0);
|
||||
}
|
||||
|
||||
static int rna_Sequence_frame_editable(PointerRNA *ptr)
|
||||
{
|
||||
Sequence *seq = (Sequence*)ptr->data;
|
||||
/* Effect sequences' start frame and length must be readonly! */
|
||||
return (get_sequence_effect_num_inputs(seq->type))? 0: PROP_EDITABLE;
|
||||
}
|
||||
|
||||
static void rna_Sequence_channel_set(PointerRNA *ptr, int value)
|
||||
{
|
||||
Sequence *seq= (Sequence*)ptr->data;
|
||||
@@ -1025,8 +1032,9 @@ static void rna_def_sequence(BlenderRNA *brna)
|
||||
prop= RNA_def_property(srna, "frame_final_duration", PROP_INT, PROP_TIME);
|
||||
RNA_def_property_range(prop, 1, MAXFRAME);
|
||||
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||
RNA_def_property_ui_text(prop, "Length", "The length of the contents of this strip before the handles are applied");
|
||||
RNA_def_property_ui_text(prop, "Length", "The length of the contents of this strip after the handles are applied");
|
||||
RNA_def_property_int_funcs(prop, "rna_Sequence_frame_length_get", "rna_Sequence_frame_length_set",NULL);
|
||||
RNA_def_property_editable_func(prop, "rna_Sequence_frame_editable");
|
||||
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
|
||||
|
||||
prop= RNA_def_property(srna, "frame_duration", PROP_INT, PROP_TIME);
|
||||
@@ -1040,6 +1048,7 @@ static void rna_def_sequence(BlenderRNA *brna)
|
||||
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||
RNA_def_property_ui_text(prop, "Start Frame", "");
|
||||
RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_start_frame_set",NULL); // overlap tests and calc_seq_disp
|
||||
RNA_def_property_editable_func(prop, "rna_Sequence_frame_editable");
|
||||
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
|
||||
|
||||
prop= RNA_def_property(srna, "frame_final_start", PROP_INT, PROP_TIME);
|
||||
@@ -1047,6 +1056,7 @@ static void rna_def_sequence(BlenderRNA *brna)
|
||||
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||
RNA_def_property_ui_text(prop, "Start Frame", "Start frame displayed in the sequence editor after offsets are applied, setting this is equivalent to moving the handle, not the actual start frame");
|
||||
RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_start_frame_final_set", NULL); // overlap tests and calc_seq_disp
|
||||
RNA_def_property_editable_func(prop, "rna_Sequence_frame_editable");
|
||||
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
|
||||
|
||||
prop= RNA_def_property(srna, "frame_final_end", PROP_INT, PROP_TIME);
|
||||
@@ -1054,6 +1064,7 @@ static void rna_def_sequence(BlenderRNA *brna)
|
||||
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||
RNA_def_property_ui_text(prop, "End Frame", "End frame displayed in the sequence editor after offsets are applied");
|
||||
RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_end_frame_final_set", NULL); // overlap tests and calc_seq_disp
|
||||
RNA_def_property_editable_func(prop, "rna_Sequence_frame_editable");
|
||||
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
|
||||
|
||||
prop= RNA_def_property(srna, "frame_offset_start", PROP_INT, PROP_TIME);
|
||||
|
||||
Reference in New Issue
Block a user