[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30430] branches/render25: Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r30407 :r30429
Campbell Barton
ideasman42 at gmail.com
Sat Jul 17 14:04:51 CEST 2010
Revision: 30430
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30430
Author: campbellbarton
Date: 2010-07-17 14:04:51 +0200 (Sat, 17 Jul 2010)
Log Message:
-----------
Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r30407:r30429
Modified Paths:
--------------
branches/render25/release/freedesktop/blender-thumbnailer.py
branches/render25/source/blender/blenkernel/intern/sequencer.c
branches/render25/source/blender/blenlib/BLI_path_util.h
branches/render25/source/blender/blenlib/intern/path_util.c
branches/render25/source/blender/editors/interface/interface_templates.c
branches/render25/source/blender/editors/space_file/file_ops.c
branches/render25/source/blender/editors/space_file/fsmenu.c
branches/render25/source/blender/editors/space_sequencer/sequencer_draw.c
branches/render25/source/blender/editors/space_sequencer/sequencer_edit.c
branches/render25/source/blender/imbuf/intern/thumbs_blend.c
branches/render25/source/blender/makesrna/intern/makesrna.c
branches/render25/source/blender/makesrna/intern/rna_actuator.c
branches/render25/source/blender/makesrna/intern/rna_controller.c
branches/render25/source/blender/windowmanager/intern/wm_files.c
branches/render25/source/blender/windowmanager/intern/wm_init_exit.c
branches/render25/source/blender/windowmanager/intern/wm_operators.c
Modified: branches/render25/release/freedesktop/blender-thumbnailer.py
===================================================================
--- branches/render25/release/freedesktop/blender-thumbnailer.py 2010-07-17 11:50:01 UTC (rev 30429)
+++ branches/render25/release/freedesktop/blender-thumbnailer.py 2010-07-17 12:04:51 UTC (rev 30430)
@@ -25,57 +25,54 @@
gconftool --type string --set /desktop/gnome/thumbnailers/application at x-blender/command "blender-thumbnailer.py %i %o"
"""
-import os
import struct
-import sys
def blend_extract_thumb(path):
+ import os
+
# def MAKE_ID(tag): ord(tag[0])<<24 | ord(tag[1])<<16 | ord(tag[2])<<8 | ord(tag[3])
REND = 1145980242 # MAKE_ID(b'REND')
TEST = 1414743380 # MAKE_ID(b'TEST')
blendfile = open(path, 'rb')
- head = blendfile.read(7)
+ head = blendfile.read(12)
if head[0:2] == b'\x1f\x8b': # gzip magic
import gzip
blendfile.close()
blendfile = gzip.open(path, 'rb')
- head = blendfile.read(7)
+ head = blendfile.read(12)
- if head != b'BLENDER':
+ if not head.startswith(b'BLENDER'):
blendfile.close()
return None, 0, 0
- is_64_bit = (blendfile.read(1) == b'-')
+ is_64_bit = (head[7] == b'-')
# true for PPC, false for X86
- is_big_endian = (blendfile.read(1) == b'V')
+ is_big_endian = (head[8] == b'V')
- # Now read the bhead chunk!!!
- blendfile.read(3) # skip the version
+ # blender pre 2.5 had no thumbs
+ if head[9:11] <= b'24':
+ return None, 0, 0
- sizeof_pointer = 8 if is_64_bit else 4
-
sizeof_bhead = 24 if is_64_bit else 20
-
- int_endian = '>i' if is_big_endian else '<i'
int_endian_pair = '>ii' if is_big_endian else '<ii'
-
+
while True:
- try:
- code, length = struct.unpack(int_endian_pair, blendfile.read(8)) # 8 == sizeof(int) * 2
- except IOError:
+ bhead = blendfile.read(sizeof_bhead)
+
+ if len(bhead) < sizeof_bhead:
return None, 0, 0
-
- # finally read the rest of the bhead struct, pointer and 2 ints
- blendfile.seek(sizeof_bhead - 8, os.SEEK_CUR)
+ code, length = struct.unpack(int_endian_pair, bhead[0:8]) # 8 == sizeof(int) * 2
+
if code == REND:
blendfile.seek(length, os.SEEK_CUR)
else:
break
+
if code != TEST:
return None, 0, 0
@@ -86,12 +83,12 @@
return None, 0, 0
length -= 8 # sizeof(int) * 2
-
+
if length != x * y * 4:
return None, 0, 0
-
+
image_buffer = blendfile.read(length)
-
+
if len(image_buffer) != length:
return None, 0, 0
@@ -104,7 +101,7 @@
# reverse the vertical line order and add null bytes at the start
width_byte_4 = width * 4
raw_data = b"".join([b'\x00' + buf[span:span + width_byte_4] for span in range((height - 1) * width * 4, -1, - width_byte_4)])
-
+
def png_pack(png_tag, data):
chunk_head = png_tag + data
return struct.pack("!I", len(data)) + chunk_head + struct.pack("!I", 0xFFFFFFFF & zlib.crc32(chunk_head))
@@ -117,6 +114,8 @@
if __name__ == '__main__':
+ import sys
+
if len(sys.argv) < 2:
print("Expected 2 arguments <input.blend> <output.png>")
else:
Modified: branches/render25/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/sequencer.c 2010-07-17 11:50:01 UTC (rev 30429)
+++ branches/render25/source/blender/blenkernel/intern/sequencer.c 2010-07-17 12:04:51 UTC (rev 30430)
@@ -1800,6 +1800,10 @@
if(seq->flag & SEQ_FLIPX) {
IMB_flipx(se->ibuf);
}
+
+ if(seq->flag & SEQ_FLIPY) {
+ IMB_flipy(se->ibuf);
+ }
if(seq->sat != 1.0f) {
/* inline for now, could become an imbuf function */
@@ -2279,6 +2283,13 @@
addzbuffloatImBuf(se->ibuf);
memcpy(se->ibuf->zbuf_float, rres.rectz, sizeof(float)*rres.rectx*rres.recty);
}
+
+ /* {
+ ImBuf *imb= IMB_allocImBuf(rres.rectx, rres.recty, 32, IB_rectfloat, 0);
+ IMB_saveiff(imb, "/tmp/foo.image", IB_rect | IB_metadata);
+ IMB_freeImBuf(imb);
+ } */
+
} else if (rres.rect32) {
se->ibuf= IMB_allocImBuf(rres.rectx, rres.recty, 32, IB_rect, 0);
memcpy(se->ibuf->rect, rres.rect32, 4*rres.rectx*rres.recty);
Modified: branches/render25/source/blender/blenlib/BLI_path_util.h
===================================================================
--- branches/render25/source/blender/blenlib/BLI_path_util.h 2010-07-17 11:50:01 UTC (rev 30429)
+++ branches/render25/source/blender/blenlib/BLI_path_util.h 2010-07-17 12:04:51 UTC (rev 30430)
@@ -40,14 +40,14 @@
struct ListBase;
struct direntry;
-char *BLI_gethome(void);
+char *BLI_getDefaultDocumentFolder(void);
char *BLI_get_folder(int folder_id, char *subfolder);
char *BLI_get_folder_create(int folder_id, char *subfolder);
/* folder_id */
-/* general, will find baserd on user/local/system priority */
+/* general, will find based on user/local/system priority */
#define BLENDER_CONFIG 1
#define BLENDER_DATAFILES 2
#define BLENDER_SCRIPTS 3
Modified: branches/render25/source/blender/blenlib/intern/path_util.c
===================================================================
--- branches/render25/source/blender/blenlib/intern/path_util.c 2010-07-17 11:50:01 UTC (rev 30429)
+++ branches/render25/source/blender/blenlib/intern/path_util.c 2010-07-17 12:04:51 UTC (rev 30430)
@@ -732,10 +732,10 @@
}
}
-/* This is now only used to really get the user's home folder */
+/* This is now only used to really get the user's default document folder */
/* On Windows I chose the 'Users/<MyUserName>/Documents' since it's used
as default location to save documents */
-char *BLI_gethome(void) {
+char *BLI_getDefaultDocumentFolder(void) {
#if !defined(WIN32)
return getenv("HOME");
Modified: branches/render25/source/blender/editors/interface/interface_templates.c
===================================================================
--- branches/render25/source/blender/editors/interface/interface_templates.c 2010-07-17 11:50:01 UTC (rev 30429)
+++ branches/render25/source/blender/editors/interface/interface_templates.c 2010-07-17 12:04:51 UTC (rev 30430)
@@ -195,7 +195,7 @@
RNA_parameter_set_lookup(&parms, "context", &C);
- if (RNA_function_call(C, &reports, &ptr, func, &parms) == 0) {
+ if (RNA_function_call((bContext *)C, &reports, &ptr, func, &parms) == 0) {
int* ret;
RNA_parameter_get_lookup(&parms, "ret", (void **)&ret);
Modified: branches/render25/source/blender/editors/space_file/file_ops.c
===================================================================
--- branches/render25/source/blender/editors/space_file/file_ops.c 2010-07-17 11:50:01 UTC (rev 30429)
+++ branches/render25/source/blender/editors/space_file/file_ops.c 2010-07-17 12:04:51 UTC (rev 30430)
@@ -945,7 +945,7 @@
if ( sfile->params->dir[0] == '~' ) {
char tmpstr[sizeof(sfile->params->dir)-1];
strncpy(tmpstr, sfile->params->dir+1, sizeof(tmpstr));
- BLI_join_dirfile(sfile->params->dir, BLI_gethome(), tmpstr);
+ BLI_join_dirfile(sfile->params->dir, BLI_getDefaultDocumentFolder(), tmpstr);
}
#ifdef WIN32
Modified: branches/render25/source/blender/editors/space_file/fsmenu.c
===================================================================
--- branches/render25/source/blender/editors/space_file/fsmenu.c 2010-07-17 11:50:01 UTC (rev 30429)
+++ branches/render25/source/blender/editors/space_file/fsmenu.c 2010-07-17 12:04:51 UTC (rev 30430)
@@ -338,7 +338,7 @@
/* As 10.4 doesn't provide proper API to retrieve the favorite places,
assume they are the standard ones
TODO : replace hardcoded paths with proper BLI_get_folder calls */
- home = BLI_gethome();
+ home = getenv("HOME");
if(home) {
BLI_snprintf(line, 256, "%s/", home);
fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
@@ -458,7 +458,7 @@
#else
/* unix */
{
- char *home= BLI_gethome();
+ char *home= getenv("HOME");
if(home) {
BLI_snprintf(line, FILE_MAXDIR, "%s/", home);
Modified: branches/render25/source/blender/editors/space_sequencer/sequencer_draw.c
===================================================================
--- branches/render25/source/blender/editors/space_sequencer/sequencer_draw.c 2010-07-17 11:50:01 UTC (rev 30429)
+++ branches/render25/source/blender/editors/space_sequencer/sequencer_draw.c 2010-07-17 12:04:51 UTC (rev 30430)
@@ -381,6 +381,8 @@
pixely = (v2d->cur.ymax - v2d->cur.ymin)/(v2d->mask.ymax - v2d->mask.ymin);
+ if(pixely <= 0) return; /* can happen when the view is split/resized */
+
blendcol[0] = blendcol[1] = blendcol[2] = 120;
if(seq->startofs) {
@@ -838,32 +840,46 @@
glDisable(GL_TEXTURE_2D);
glDeleteTextures(1, &texid);
- /* safety border */
- if (sseq->mainb == SEQ_DRAW_IMG_IMBUF &&
- (sseq->flag & SEQ_DRAW_SAFE_MARGINS) != 0) {
- float fac= 0.1;
+ if(sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
+
float x1 = v2d->tot.xmin;
float y1 = v2d->tot.ymin;
float x2 = v2d->tot.xmax;
float y2 = v2d->tot.ymax;
-
- float a= fac*(x2-x1);
- x1+= a;
- x2-= a;
-
- a= fac*(y2-y1);
- y1+= a;
- y2-= a;
-
- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+
+ /* border */
setlinestyle(3);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+
UI_ThemeColorBlendShade(TH_WIRE, TH_BACK, 1.0, 0);
-
- uiSetRoundBox(15);
- gl_round_box(GL_LINE_LOOP, x1, y1, x2, y2, 12.0);
+ glBegin(GL_LINE_LOOP);
+ glVertex2f(x1-0.5, y1-0.5);
+ glVertex2f(x1-0.5, y2+0.5);
+ glVertex2f(x2+0.5, y2+0.5);
+ glVertex2f(x2+0.5, y1-0.5);
+ glEnd();
+
+ /* safety border */
+ if ((sseq->flag & SEQ_DRAW_SAFE_MARGINS) != 0) {
+ float fac= 0.1;
+
+ float a= fac*(x2-x1);
+ x1+= a;
+ x2-= a;
+
+ a= fac*(y2-y1);
+ y1+= a;
+ y2-= a;
+
+ uiSetRoundBox(15);
+ gl_round_box(GL_LINE_LOOP, x1, y1, x2, y2, 12.0);
+
+ }
+
setlinestyle(0);
+
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
}
Modified: branches/render25/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- branches/render25/source/blender/editors/space_sequencer/sequencer_edit.c 2010-07-17 11:50:01 UTC (rev 30429)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list