[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36730] branches/cycles/source: Render API : add self.report() function for RenderEngine, for reporting warnings and errors.
Brecht Van Lommel
brechtvanlommel at pandora.be
Tue May 17 17:20:12 CEST 2011
Revision: 36730
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36730
Author: blendix
Date: 2011-05-17 15:20:12 +0000 (Tue, 17 May 2011)
Log Message:
-----------
Render API: add self.report() function for RenderEngine, for reporting warnings and errors.
Modified Paths:
--------------
branches/cycles/source/blender/editors/render/render_internal.c
branches/cycles/source/blender/editors/render/render_update.c
branches/cycles/source/blender/makesrna/intern/rna_render.c
branches/cycles/source/blender/render/extern/include/RE_engine.h
branches/cycles/source/blender/render/extern/include/RE_pipeline.h
branches/cycles/source/blender/render/intern/include/render_types.h
branches/cycles/source/blender/render/intern/pipeline/engine.c
branches/cycles/source/blender/render/intern/source/pipeline.c
branches/cycles/source/creator/creator.c
Modified: branches/cycles/source/blender/editors/render/render_internal.c
===================================================================
--- branches/cycles/source/blender/editors/render/render_internal.c 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/blender/editors/render/render_internal.c 2011-05-17 15:20:12 UTC (rev 36730)
@@ -446,11 +446,15 @@
since sequence rendering can call that recursively... (peter) */
seq_stripelem_cache_cleanup();
+ RE_SetReports(re, op->reports);
+
if(is_animation)
- RE_BlenderAnim(re, mainp, scene, camera_override, lay, scene->r.sfra, scene->r.efra, scene->r.frame_step, op->reports);
+ RE_BlenderAnim(re, mainp, scene, camera_override, lay, scene->r.sfra, scene->r.efra, scene->r.frame_step);
else
RE_BlenderFrame(re, mainp, scene, NULL, camera_override, lay, scene->r.cfra, is_write_still);
+ RE_SetReports(re, NULL);
+
// no redraw needed, we leave state as we entered it
ED_update_for_newframe(mainp, scene, CTX_wm_screen(C), 1);
@@ -591,10 +595,14 @@
rj->do_update= do_update;
rj->progress= progress;
+ RE_SetReports(rj->re, rj->reports);
+
if(rj->anim)
- RE_BlenderAnim(rj->re, rj->main, rj->scene, rj->camera_override, rj->lay, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step, rj->reports);
+ RE_BlenderAnim(rj->re, rj->main, rj->scene, rj->camera_override, rj->lay, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step);
else
RE_BlenderFrame(rj->re, rj->main, rj->scene, rj->srl, rj->camera_override, rj->lay, rj->scene->r.cfra, rj->write_still);
+
+ RE_SetReports(rj->re, NULL);
}
static void render_endjob(void *rjv)
Modified: branches/cycles/source/blender/editors/render/render_update.c
===================================================================
--- branches/cycles/source/blender/editors/render/render_update.c 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/blender/editors/render/render_update.c 2011-05-17 15:20:12 UTC (rev 36730)
@@ -43,6 +43,8 @@
#include "DNA_view3d_types.h"
#include "DNA_world_types.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_icons.h"
Modified: branches/cycles/source/blender/makesrna/intern/rna_render.c
===================================================================
--- branches/cycles/source/blender/makesrna/intern/rna_render.c 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/blender/makesrna/intern/rna_render.c 2011-05-17 15:20:12 UTC (rev 36730)
@@ -32,6 +32,7 @@
#include "DNA_scene_types.h"
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "rna_internal.h"
@@ -373,6 +374,12 @@
prop= RNA_def_string(func, "info", "", 0, "Info", "");
RNA_def_property_flag(prop, PROP_REQUIRED);
+ func= RNA_def_function(srna, "report", "RE_engine_report");
+ prop= RNA_def_enum_flag(func, "type", wm_report_items, 0, "Type", "");
+ RNA_def_property_flag(prop, PROP_REQUIRED);
+ prop= RNA_def_string(func, "message", "", 0, "Report Message", "");
+ RNA_def_property_flag(prop, PROP_REQUIRED);
+
/* registration */
RNA_define_verify_sdna(0);
Modified: branches/cycles/source/blender/render/extern/include/RE_engine.h
===================================================================
--- branches/cycles/source/blender/render/extern/include/RE_engine.h 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/blender/render/extern/include/RE_engine.h 2011-05-17 15:20:12 UTC (rev 36730)
@@ -99,6 +99,7 @@
LIBEXPORT int RE_engine_test_break(RenderEngine *engine);
LIBEXPORT void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info);
+LIBEXPORT void RE_engine_report(RenderEngine *engine, int type, const char *msg);
int RE_engine_render(struct Render *re, int do_all);
Modified: branches/cycles/source/blender/render/extern/include/RE_pipeline.h
===================================================================
--- branches/cycles/source/blender/render/extern/include/RE_pipeline.h 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/blender/render/extern/include/RE_pipeline.h 2011-05-17 15:20:12 UTC (rev 36730)
@@ -214,8 +214,11 @@
/* only RE_NewRender() needed, main Blender render calls */
void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene *scene, struct SceneRenderLayer *srl, struct Object *camera_override, unsigned int lay, int frame, const short write_still);
-void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, struct Object *camera_override, unsigned int lay, int sfra, int efra, int tfra, struct ReportList *reports);
+void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, struct Object *camera_override, unsigned int lay, int sfra, int efra, int tfra);
+/* error reporting */
+void RE_SetReports(struct Render *re, struct ReportList *reports);
+
/* main preview render call */
void RE_PreviewRender(struct Render *re, struct Main *bmain, struct Scene *scene);
Modified: branches/cycles/source/blender/render/intern/include/render_types.h
===================================================================
--- branches/cycles/source/blender/render/intern/include/render_types.h 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/blender/render/intern/include/render_types.h 2011-05-17 15:20:12 UTC (rev 36730)
@@ -60,6 +60,7 @@
struct ObjectInstanceRen;
struct RayObject;
struct RayFace;
+struct ReportList;
struct Main;
#define TABLEINITSIZE 1024
@@ -256,6 +257,8 @@
void *erh;
RenderStats i;
+
+ struct ReportList *reports;
};
/* ------------------------------------------------------------------------- */
Modified: branches/cycles/source/blender/render/intern/pipeline/engine.c
===================================================================
--- branches/cycles/source/blender/render/intern/pipeline/engine.c 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/blender/render/intern/pipeline/engine.c 2011-05-17 15:20:12 UTC (rev 36730)
@@ -209,6 +209,11 @@
re->i.statstr= NULL;
}
+void RE_engine_report(RenderEngine *engine, int type, const char *msg)
+{
+ BKE_report(engine->re->reports, type, msg);
+}
+
/* Render */
int RE_engine_render(Render *re, int do_all)
Modified: branches/cycles/source/blender/render/intern/source/pipeline.c
===================================================================
--- branches/cycles/source/blender/render/intern/source/pipeline.c 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/blender/render/intern/source/pipeline.c 2011-05-17 15:20:12 UTC (rev 36730)
@@ -128,7 +128,7 @@
/* ********* alloc and free ******** */
-static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, ReportList *reports, const char *name_override);
+static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, const char *name_override);
static volatile int g_break= 0;
static int thread_break(void *UNUSED(arg))
@@ -2911,6 +2911,11 @@
return 1;
}
+void RE_SetReports(Render *re, ReportList *reports)
+{
+ re->reports= reports;
+}
+
/* general Blender frame render call */
void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *srl, Object *camera_override, unsigned int lay, int frame, const short write_still)
{
@@ -2933,7 +2938,7 @@
BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION, FALSE);
/* reports only used for Movie */
- do_write_image_or_movie(re, scene, NULL, NULL, name);
+ do_write_image_or_movie(re, scene, NULL, name);
}
}
}
@@ -2942,7 +2947,7 @@
G.rendering= 0;
}
-static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, ReportList *reports, const char *name_override)
+static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, const char *name_override)
{
char name[FILE_MAX];
RenderResult rres;
@@ -2960,7 +2965,7 @@
dofree = 1;
}
RE_ResultGet32(re, (unsigned int *)rres.rect32);
- ok= mh->append_movie(&re->r, scene->r.cfra, rres.rect32, rres.rectx, rres.recty, reports);
+ ok= mh->append_movie(&re->r, scene->r.cfra, rres.rect32, rres.rectx, rres.recty, re->reports);
if(dofree) {
MEM_freeN(rres.rect32);
}
@@ -3033,7 +3038,7 @@
}
/* saves images to disk */
-void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_override, unsigned int lay, int sfra, int efra, int tfra, ReportList *reports)
+void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_override, unsigned int lay, int sfra, int efra, int tfra)
{
bMovieHandle *mh= BKE_get_movie_handle(scene->r.imtype);
int cfrao= scene->r.cfra;
@@ -3046,21 +3051,21 @@
/* ugly global still... is to prevent renderwin events and signal subsurfs etc to make full resol */
/* is also set by caller renderwin.c */
G.rendering= 1;
-
+
if(BKE_imtype_is_movie(scene->r.imtype))
- if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, reports))
+ if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, re->reports))
G.afbreek= 1;
if (mh->get_next_frame) {
while (!(G.afbreek == 1)) {
- int nf = mh->get_next_frame(&re->r, reports);
+ int nf = mh->get_next_frame(&re->r, re->reports);
if (nf >= 0 && nf >= scene->r.sfra && nf <= scene->r.efra) {
scene->r.cfra = re->r.cfra = nf;
do_render_all_options(re);
if(re->test_break(re->tbh) == 0) {
- if(!do_write_image_or_movie(re, scene, mh, reports, NULL))
+ if(!do_write_image_or_movie(re, scene, mh, NULL))
G.afbreek= 1;
}
} else {
@@ -3115,7 +3120,7 @@
if(re->test_break(re->tbh) == 0) {
if(!G.afbreek)
- if(!do_write_image_or_movie(re, scene, mh, reports, NULL))
+ if(!do_write_image_or_movie(re, scene, mh, NULL))
G.afbreek= 1;
}
else
Modified: branches/cycles/source/creator/creator.c
===================================================================
--- branches/cycles/source/creator/creator.c 2011-05-17 14:26:45 UTC (rev 36729)
+++ branches/cycles/source/creator/creator.c 2011-05-17 15:20:12 UTC (rev 36730)
@@ -782,7 +782,9 @@
frame = MIN2(MAXFRAME, MAX2(MINAFRAME, frame));
- RE_BlenderAnim(re, bmain, scene, NULL, scene->lay, frame, frame, scene->r.frame_step, &reports);
+ RE_SetReports(re, &reports);
+ RE_BlenderAnim(re, bmain, scene, NULL, scene->lay, frame, frame, scene->r.frame_step);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list