Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Schlaile <peter@schlaile.de>2007-10-01 12:03:11 +0400
committerPeter Schlaile <peter@schlaile.de>2007-10-01 12:03:11 +0400
commit5b1d6690068876843c5bec284056b17db3af9f0b (patch)
tree9a49117282c1ab016189a2aedcc388a69956c2c9 /source/blender/src/space.c
parent2182f53a9a5e69c76d9efbbee46134935df242a6 (diff)
== Sequencer ==
This patch adds prefetch buffering to the sequencer (see the tracker for additional details: https://projects.blender.org/tracker/?func=detail&aid=7307&group_id=9&atid=127 ) We create seperate render threads (currently one, because of the fact, that sequence rendering modifies global structures...), that render up to the defined userpref value "Prefetch frames" in advance. (Pressing Alt-A will _first_ fill the buffer and then start playing.) Bassam and I did some extensive testing, so it should work. If you don't configure your number of prefetch frames, prefetching is disabled! (Sane defaults... :) Also: if the machine is definitely too slow and runs out of the prefetch area, prefetching is disabled automatically and we are back to good old frame skipping mode. My Dual Athlon is able to handle 4 parallel DV streams at once (sometimes a little bit choppy, but prefetching is never disabled!) I fixed also a long standing bug in the audio code, that made playback run backwards at the beginning...
Diffstat (limited to 'source/blender/src/space.c')
-rw-r--r--source/blender/src/space.c45
1 files changed, 26 insertions, 19 deletions
diff --git a/source/blender/src/space.c b/source/blender/src/space.c
index 23bcea7470d..5eceb5ee433 100644
--- a/source/blender/src/space.c
+++ b/source/blender/src/space.c
@@ -3160,8 +3160,8 @@ void drawinfospace(ScrArea *sa, void *spacedata)
uiBlock *block;
static short cur_light=0;
float fac, col[3];
- short xpos, ypos, ypostab, buth, rspace, dx, y1, y2, y3, y4, y5, y6;
- short y2label, y3label, y4label, y5label, y6label;
+ short xpos, ypos, ypostab, buth, rspace, dx, y1, y2, y3, y4, y5, y6, y7;
+ short y2label, y3label, y4label, y5label, y6label, y7label;
short spref, mpref, lpref, smfileselbut;
short edgsp, midsp;
char naam[32];
@@ -3212,6 +3212,7 @@ void drawinfospace(ScrArea *sa, void *spacedata)
y4 = ypos+3*(buth+rspace);
y5 = ypos+4*(buth+rspace);
y6 = ypos+5*(buth+rspace);
+ y7 = ypos+6*(buth+rspace);
y2label = y2-2; /* adjustments to offset the labels down to align better */
@@ -3219,6 +3220,7 @@ void drawinfospace(ScrArea *sa, void *spacedata)
y4label = y4-2;
y5label = y5-2;
y6label = y6-2;
+ y7label = y7-2;
/* set the color to blue and draw the main 'tab' controls */
@@ -3810,8 +3812,13 @@ void drawinfospace(ScrArea *sa, void *spacedata)
uiDefBut(block, LABEL,0,"System:",
- (xpos+edgsp+(4*midsp)+(4*mpref)),y6label,mpref,buth,
+ (xpos+edgsp+(4*midsp)+(4*mpref)),y7label,mpref,buth,
0, 0, 0, 0, 0, "");
+ uiDefButI(block, NUM, B_REDR, "Prefetch frames ",
+ (xpos+edgsp+(4*mpref)+(4*midsp)), y6, mpref, buth,
+ &U.prefetchframes, 0.0, 50.0, 20, 2,
+ "Number of frames to render ahead during playback.");
+
uiDefButI(block, NUM, B_MEMCACHELIMIT, "MEM Cache Limit ",
(xpos+edgsp+(4*mpref)+(4*midsp)), y5, mpref, buth,
&U.memcachelimit, 0.0, 1024.0, 30, 2,
@@ -6274,7 +6281,7 @@ SpaceType *spaceaction_get_type(void)
if (!st) {
st= spacetype_new("Action");
- spacetype_set_winfuncs(st, drawactionspace, changeactionspace, winqreadactionspace);
+ spacetype_set_winfuncs(st, NULL, drawactionspace, changeactionspace, winqreadactionspace);
}
return st;
@@ -6285,7 +6292,7 @@ SpaceType *spacebuts_get_type(void)
if (!st) {
st= spacetype_new("Buts");
- spacetype_set_winfuncs(st, drawbutspace, changebutspace, winqreadbutspace);
+ spacetype_set_winfuncs(st, NULL, drawbutspace, changebutspace, winqreadbutspace);
}
return st;
@@ -6296,7 +6303,7 @@ SpaceType *spacefile_get_type(void)
if (!st) {
st= spacetype_new("File");
- spacetype_set_winfuncs(st, drawfilespace, NULL, winqreadfilespace);
+ spacetype_set_winfuncs(st, NULL, drawfilespace, NULL, winqreadfilespace);
}
return st;
@@ -6307,7 +6314,7 @@ SpaceType *spaceimage_get_type(void)
if (!st) {
st= spacetype_new("Image");
- spacetype_set_winfuncs(st, drawimagespace, changeimagepace, winqreadimagespace);
+ spacetype_set_winfuncs(st, NULL, drawimagespace, changeimagepace, winqreadimagespace);
}
return st;
@@ -6318,7 +6325,7 @@ SpaceType *spaceimasel_get_type(void)
if (!st) {
st= spacetype_new("Imasel");
- spacetype_set_winfuncs(st, drawimaselspace, changeimaselspace, winqreadimaselspace);
+ spacetype_set_winfuncs(st, NULL, drawimaselspace, changeimaselspace, winqreadimaselspace);
}
return st;
@@ -6329,7 +6336,7 @@ SpaceType *spaceinfo_get_type(void)
if (!st) {
st= spacetype_new("Info");
- spacetype_set_winfuncs(st, drawinfospace, NULL, winqreadinfospace);
+ spacetype_set_winfuncs(st, NULL, drawinfospace, NULL, winqreadinfospace);
}
return st;
@@ -6340,7 +6347,7 @@ SpaceType *spaceipo_get_type(void)
if (!st) {
st= spacetype_new("Ipo");
- spacetype_set_winfuncs(st, drawipospace, changeview2dspace, winqreadipospace);
+ spacetype_set_winfuncs(st, NULL, drawipospace, changeview2dspace, winqreadipospace);
}
return st;
@@ -6351,7 +6358,7 @@ SpaceType *spacenla_get_type(void)
if (!st) {
st= spacetype_new("Nla");
- spacetype_set_winfuncs(st, drawnlaspace, changeview2dspace, winqreadnlaspace);
+ spacetype_set_winfuncs(st, NULL, drawnlaspace, changeview2dspace, winqreadnlaspace);
}
return st;
@@ -6362,7 +6369,7 @@ SpaceType *spaceoops_get_type(void)
if (!st) {
st= spacetype_new("Oops");
- spacetype_set_winfuncs(st, drawoopsspace, changeview2dspace, winqreadoopsspace);
+ spacetype_set_winfuncs(st, NULL, drawoopsspace, changeview2dspace, winqreadoopsspace);
}
return st;
@@ -6373,7 +6380,7 @@ SpaceType *spaceseq_get_type(void)
if (!st) {
st= spacetype_new("Sequence");
- spacetype_set_winfuncs(st, drawseqspace, changeview2dspace, winqreadseqspace);
+ spacetype_set_winfuncs(st, drawprefetchseqspace, drawseqspace, changeview2dspace, winqreadseqspace);
}
return st;
@@ -6384,7 +6391,7 @@ SpaceType *spacesound_get_type(void)
if (!st) {
st= spacetype_new("Sound");
- spacetype_set_winfuncs(st, drawsoundspace, changeview2dspace, winqreadsoundspace);
+ spacetype_set_winfuncs(st, NULL, drawsoundspace, changeview2dspace, winqreadsoundspace);
}
return st;
@@ -6395,7 +6402,7 @@ SpaceType *spacetext_get_type(void)
if (!st) {
st= spacetype_new("Text");
- spacetype_set_winfuncs(st, drawtextspace, NULL, winqreadtextspace);
+ spacetype_set_winfuncs(st, NULL, drawtextspace, NULL, winqreadtextspace);
}
return st;
@@ -6419,7 +6426,7 @@ SpaceType *spacescript_get_type(void)
if (!st) {
st = spacetype_new("Script");
- spacetype_set_winfuncs(st, drawscriptspace, spacescript_change, winqreadscriptspace);
+ spacetype_set_winfuncs(st, NULL, drawscriptspace, spacescript_change, winqreadscriptspace);
}
return st;
@@ -6430,7 +6437,7 @@ SpaceType *spaceview3d_get_type(void)
if (!st) {
st= spacetype_new("View3D");
- spacetype_set_winfuncs(st, drawview3dspace, changeview3dspace, winqreadview3dspace);
+ spacetype_set_winfuncs(st, NULL, drawview3dspace, changeview3dspace, winqreadview3dspace);
}
return st;
@@ -6441,7 +6448,7 @@ SpaceType *spacetime_get_type(void)
if (!st) {
st= spacetype_new("Time");
- spacetype_set_winfuncs(st, drawtimespace, NULL, winqreadtimespace);
+ spacetype_set_winfuncs(st, NULL, drawtimespace, NULL, winqreadtimespace);
}
return st;
@@ -6453,7 +6460,7 @@ SpaceType *spacenode_get_type(void)
if (!st) {
st= spacetype_new("Node");
- spacetype_set_winfuncs(st, drawnodespace, changeview2dspace, winqreadnodespace);
+ spacetype_set_winfuncs(st, NULL, drawnodespace, changeview2dspace, winqreadnodespace);
}
return st;