Second attempt at committing the different render slot implementation. This

has a fix that hopefully solves the problem on mac/win. Also fixes #21322,
render slots not working well with FSA.
This commit is contained in:
2010-03-27 15:35:34 +00:00
parent 17777e7cd1
commit 57101c4fd2
23 changed files with 206 additions and 176 deletions

View File

@@ -129,6 +129,9 @@ typedef struct RenderResult {
/* for render results in Image, verify validity for sequences */
int framenr;
/* render info text */
char *text;
} RenderResult;
@@ -146,21 +149,8 @@ typedef struct RenderStats {
/* the name is used as identifier, so elsewhere in blender the result can retrieved */
/* calling a new render with same name, frees automatic existing render */
struct Render *RE_NewRender (const char *name, int slot);
struct Render *RE_GetRender(const char *name, int slot);
/* render slots. for most cases like baking or preview render this will
always be default, for actual render multiple slots can be used. in
that case 'rendering' is the slot being rendered to, and 'view' is the
slot being viewed. these are always the same except if the currently
viewed slot is changed during render, at the end they will be synced. */
#define RE_SLOT_RENDERING -2
#define RE_SLOT_VIEW -1
#define RE_SLOT_DEFAULT 0
#define RE_SLOT_MAX 10
void RE_SetViewSlot(int slot);
int RE_GetViewSlot(void);
struct Render *RE_NewRender (const char *name);
struct Render *RE_GetRender(const char *name);
/* returns 1 while render is working (or renders called from within render) */
int RE_RenderInProgress(struct Render *re);
@@ -177,6 +167,7 @@ struct RenderResult *RE_AcquireResultWrite(struct Render *re);
void RE_ReleaseResult(struct Render *re);
void RE_AcquireResultImage(struct Render *re, struct RenderResult *rr);
void RE_ReleaseResultImage(struct Render *re);
void RE_SwapResult(struct Render *re, struct RenderResult **rr);
struct RenderStats *RE_GetStats(struct Render *re);
void RE_ResultGet32(struct Render *re, unsigned int *rect);
struct RenderLayer *RE_GetRenderLayer(struct RenderResult *rr, const char *name);