Made an attempt for fixing an instability issue regarding animation
rendering. RE_BlenderFrame() and RE_BlenderAnim() are Blender's internal top-level rendering API functions for a single frame and a series of frames, respectively. These functions rely on global variables to keep render pipeline states. Freestyle's stroke rendering was also using RE_BlenderFrame to render a temporary scene of stroke meshes. These nested calls of the top-level rendering API functions were causing broken render pipeline states and eventually led to a crash. This commit is intended to fix the issue, by introducing an rendering API function RE_RenderFreestyleStrokes specifically used for stroke rendering in Freestyle. The new function does not do anything with regard to the global variables in the rendering API implementation.
This commit is contained in:
@@ -216,6 +216,7 @@ void RE_TileProcessor(struct Render *re, int firsttile, int threaded);
|
||||
/* only RE_NewRender() needed, main Blender render calls */
|
||||
void RE_BlenderFrame(struct Render *re, struct Scene *scene, struct SceneRenderLayer *srl, int frame);
|
||||
void RE_BlenderAnim(struct Render *re, struct Scene *scene, int sfra, int efra, int tfra, struct ReportList *reports);
|
||||
void RE_RenderFreestyleStrokes(struct Render *re, struct Scene *scene);
|
||||
|
||||
void RE_ReadRenderResult(struct Scene *scene, struct Scene *scenode);
|
||||
void RE_WriteRenderResult(RenderResult *rr, char *filename, int compress);
|
||||
|
||||
Reference in New Issue
Block a user