[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41199] trunk/blender/source: Code refactoring: move external engine functions into own file.

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Oct 22 18:24:29 CEST 2011


Revision: 41199
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41199
Author:   blendix
Date:     2011-10-22 16:24:28 +0000 (Sat, 22 Oct 2011)
Log Message:
-----------
Code refactoring: move external engine functions into own file.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_render.c
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/blender/render/CMakeLists.txt
    trunk/blender/source/blender/render/extern/include/RE_pipeline.h
    trunk/blender/source/blender/render/intern/include/renderpipeline.h
    trunk/blender/source/blender/render/intern/source/pipeline.c
    trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c
    trunk/blender/source/creator/creator.c

Added Paths:
-----------
    trunk/blender/source/blender/render/extern/include/RE_engine.h
    trunk/blender/source/blender/render/intern/source/external_engine.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_render.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_render.c	2011-10-22 16:16:14 UTC (rev 41198)
+++ trunk/blender/source/blender/makesrna/intern/rna_render.c	2011-10-22 16:24:28 UTC (rev 41199)
@@ -36,6 +36,7 @@
 
 #include "rna_internal.h"
 
+#include "RE_engine.h"
 #include "RE_pipeline.h"
 
 #include "BKE_utildefines.h"

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c	2011-10-22 16:16:14 UTC (rev 41198)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c	2011-10-22 16:24:28 UTC (rev 41199)
@@ -199,7 +199,7 @@
 #include "ED_mesh.h"
 #include "ED_keyframing.h"
 
-#include "RE_pipeline.h"
+#include "RE_engine.h"
 
 static int rna_Scene_object_bases_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
 {

Modified: trunk/blender/source/blender/render/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/render/CMakeLists.txt	2011-10-22 16:16:14 UTC (rev 41198)
+++ trunk/blender/source/blender/render/CMakeLists.txt	2011-10-22 16:24:28 UTC (rev 41199)
@@ -56,6 +56,7 @@
 	intern/raytrace/rayobject_vbvh.cpp
 	intern/source/convertblender.c
 	intern/source/envmap.c
+	intern/source/external_engine.c
 	intern/source/gammaCorrectionTables.c
 	intern/source/imagetexture.c
 	intern/source/initrender.c
@@ -79,6 +80,7 @@
 	intern/source/voxeldata.c
 	intern/source/zbuf.c
 
+	extern/include/RE_engine.h
 	extern/include/RE_pipeline.h
 	extern/include/RE_render_ext.h
 	extern/include/RE_shader_ext.h

Copied: trunk/blender/source/blender/render/extern/include/RE_engine.h (from rev 41192, trunk/blender/source/blender/render/extern/include/RE_pipeline.h)
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_engine.h	                        (rev 0)
+++ trunk/blender/source/blender/render/extern/include/RE_engine.h	2011-10-22 16:24:28 UTC (rev 41199)
@@ -0,0 +1,97 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file RE_engine.h
+ *  \ingroup render
+ */
+
+#ifndef RE_ENGINE_H
+#define RE_ENGINE_H
+
+#include "DNA_listBase.h"
+#include "RNA_types.h"
+
+struct Object;
+struct Render;
+struct RenderEngine;
+struct RenderEngineType;
+struct RenderLayer;
+struct RenderResult;
+struct ReportList;
+struct Scene;
+
+/* External Engine */
+
+#define RE_INTERNAL			1
+#define RE_GAME				2
+#define RE_DO_PREVIEW		4
+#define RE_DO_ALL			8
+
+extern ListBase R_engines;
+
+typedef struct RenderEngineType {
+	struct RenderEngineType *next, *prev;
+
+	/* type info */
+	char idname[64]; // best keep the same size as BKE_ST_MAXNAME
+	char name[64];
+	int flag;
+
+	void (*render)(struct RenderEngine *engine, struct Scene *scene);
+
+	/* RNA integration */
+	ExtensionRNA ext;
+} RenderEngineType;
+
+typedef struct RenderEngine {
+	RenderEngineType *type;
+	struct Render *re;
+	ListBase fullresult;
+} RenderEngine;
+
+void RE_layer_load_from_file(struct RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y);
+void RE_result_load_from_file(struct RenderResult *result, struct ReportList *reports, const char *filename);
+
+struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h);
+void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result);
+void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result);
+
+int RE_engine_test_break(RenderEngine *engine);
+void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info);
+void RE_engine_report(RenderEngine *engine, int type, const char *msg);
+
+int RE_engine_render(struct Render *re, int do_all);
+
+/* Engine Types */
+
+void RE_engines_init(void);
+void RE_engines_exit(void);
+
+#endif /* RE_ENGINE_H */
+

Modified: trunk/blender/source/blender/render/extern/include/RE_pipeline.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_pipeline.h	2011-10-22 16:16:14 UTC (rev 41198)
+++ trunk/blender/source/blender/render/extern/include/RE_pipeline.h	2011-10-22 16:24:28 UTC (rev 41199)
@@ -36,7 +36,6 @@
 
 #include "DNA_listBase.h"
 #include "DNA_vec_types.h"
-#include "RNA_types.h"
 
 struct bNodeTree;
 struct Image;
@@ -44,11 +43,8 @@
 struct NodeBlurData;
 struct Object;
 struct RenderData;
-struct RenderEngine;
-struct RenderEngineType;
 struct RenderResult;
 struct ReportList;
-struct ReportList;
 struct Scene;
 struct SceneRenderLayer;
 struct EnvMap;
@@ -276,49 +272,6 @@
 void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[][4]);
 struct Scene *RE_GetScene(struct Render *re);
 
-/* External Engine */
-
-#define RE_INTERNAL			1
-#define RE_GAME				2
-#define RE_DO_PREVIEW		4
-#define RE_DO_ALL			8
-
-extern ListBase R_engines;
-
-typedef struct RenderEngineType {
-	struct RenderEngineType *next, *prev;
-
-	/* type info */
-	char idname[64]; // best keep the same size as BKE_ST_MAXNAME
-	char name[64];
-	int flag;
-
-	void (*render)(struct RenderEngine *engine, struct Scene *scene);
-
-	/* RNA integration */
-	ExtensionRNA ext;
-} RenderEngineType;
-
-typedef struct RenderEngine {
-	RenderEngineType *type;
-	struct Render *re;
-	ListBase fullresult;
-} RenderEngine;
-
-void RE_layer_load_from_file(RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y);
-void RE_result_load_from_file(RenderResult *result, struct ReportList *reports, const char *filename);
-
-struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h);
-void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result);
-void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result);
-
-int RE_engine_test_break(RenderEngine *engine);
-void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info);
-void RE_engine_report(RenderEngine *engine, int type, const char *msg);
-
-void RE_engines_init(void);
-void RE_engines_exit(void);
-
 int RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override, struct ReportList *reports);
 
 #endif /* RE_PIPELINE_H */

Modified: trunk/blender/source/blender/render/intern/include/renderpipeline.h
===================================================================
--- trunk/blender/source/blender/render/intern/include/renderpipeline.h	2011-10-22 16:16:14 UTC (rev 41198)
+++ trunk/blender/source/blender/render/intern/include/renderpipeline.h	2011-10-22 16:24:28 UTC (rev 41199)
@@ -35,14 +35,22 @@
 #ifndef PIPELINE_H
 #define PIPELINE_H
 
+struct ListBase;
 struct Render;
 struct RenderResult;
 struct RenderLayer;
+struct rcti;
 
 struct RenderLayer *render_get_active_layer(struct Render *re, struct RenderResult *rr);
 float panorama_pixel_rot(struct Render *re);
 
 #define PASS_VECTOR_MAX	10000.0f
 
+#define RR_USEMEM	0
+
+struct RenderResult *new_render_result(struct Render *re, struct rcti *partrct, int crop, int savebuffers);
+void merge_render_result(struct RenderResult *rr, struct RenderResult *rrpart);
+void free_render_result(struct ListBase *lb, struct RenderResult *rr);
+
 #endif /* PIPELINE_H */
 

Added: trunk/blender/source/blender/render/intern/source/external_engine.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/external_engine.c	                        (rev 0)
+++ trunk/blender/source/blender/render/intern/source/external_engine.c	2011-10-22 16:24:28 UTC (rev 41199)
@@ -0,0 +1,186 @@
+/*  
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/render/intern/pipeline/engine.c
+ *  \ingroup render
+ */
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_listbase.h"
+#include "BLI_string.h"
+#include "BLI_utildefines.h"
+
+#include "BKE_report.h"
+#include "BKE_scene.h"
+
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
+#include "RE_engine.h"
+#include "RE_pipeline.h"
+
+#include "render_types.h"
+#include "renderpipeline.h"
+
+/************************** External Engines ***************************/
+
+RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h)
+{
+	Render *re= engine->re;
+	RenderResult *result;
+	rcti disprect;
+

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list