RenderEngine/Nodes: system to check for shading nodes compatibility
[blender.git] / source / blender / blenkernel / BKE_scene.h
index 70eba50..45ee6fd 100644 (file)
@@ -1,8 +1,4 @@
-/**
- * blenlib/BKE_scene.h (mar-2001 nzc)
- *     
- * $Id$ 
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
@@ -17,7 +13,7 @@
  *
  * 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
 #ifndef BKE_SCENE_H
 #define BKE_SCENE_H
 
+/** \file BKE_scene.h
+ *  \ingroup bke
+ *  \since March 2001
+ *  \author nzc
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct AviCodecData;
+struct Base;
 struct bglMats;
-struct Scene;
+struct Main;
 struct Object;
-struct Base;
-struct AviCodecData;
 struct QuicktimeCodecData;
 struct RenderData;
+struct Scene;
+struct Text;
 struct Text;
 
-/* note; doesn't work when scene is empty */
-#define SETLOOPER(s, b) sce= s, b= (Base*)sce->base.first; b; b= (Base*)(b->next?b->next:sce->set?(sce=sce->set)->base.first:NULL)
+#define SCE_COPY_NEW           0
+#define SCE_COPY_EMPTY         1
+#define SCE_COPY_LINK_OB       2
+#define SCE_COPY_LINK_DATA     3
+#define SCE_COPY_FULL          4
 
+#define SETLOOPER(_sce_basis, _sce_iter, _base) _sce_iter= _sce_basis, _base= _setlooper_base_step(&_sce_iter, NULL); _base; _base= _setlooper_base_step(&_sce_iter, _base)
+struct Base *_setlooper_base_step(struct Scene **sce_iter, struct Base *base);
 
 void free_avicodecdata(struct AviCodecData *acd);
 void free_qtcodecdata(struct QuicktimeCodecData *acd);
 
-void free_scene(struct Scene *me);
-struct Scene *add_scene(char *name);
+void free_scene(struct Scene *sce);
+struct Scene *add_scene(const char *name);
 struct Base *object_in_scene(struct Object *ob, struct Scene *sce);
 
-void set_scene_bg(struct Scene *sce);
-void set_scene_name(char *name);
+void set_scene_bg(struct Main *bmain, struct Scene *sce);
+struct Scene *set_scene_name(struct Main *bmain, const char *name);
+
+struct Scene *copy_scene(struct Scene *sce, int type);
+void unlink_scene(struct Main *bmain, struct Scene *sce, struct Scene *newsce);
 
-int next_object(struct Scene *scene, int val, struct Base **base, struct Object **ob);
+int next_object(struct Scene **scene, int val, struct Base **base, struct Object **ob);
 struct Object *scene_find_camera(struct Scene *sc);
+struct Object *scene_camera_switch_find(struct Scene *scene); // DURIAN_CAMERA_SWITCH
+int scene_camera_switch_update(struct Scene *scene);
+
+char *scene_find_marker_name(struct Scene *scene, int frame);
+char *scene_find_last_marker_name(struct Scene *scene, int frame);
 
 struct Base *scene_add_base(struct Scene *sce, struct Object *ob);
 void scene_deselect_all(struct Scene *sce);
 void scene_select_base(struct Scene *sce, struct Base *selbase);
 
 /* checks for cycle, returns 1 if it's all OK */
-int scene_check_setscene(struct Scene *sce);
+int scene_check_setscene(struct Main *bmain, struct Scene *sce);
+
+float BKE_curframe(struct Scene *scene);
 
-void scene_update_for_newframe(struct Scene *sce, unsigned int lay);
+void scene_update_tagged(struct Main *bmain, struct Scene *sce);
+void scene_update_for_newframe(struct Main *bmain, struct Scene *sce, unsigned int lay);
 
 void scene_add_render_layer(struct Scene *sce);
 
@@ -74,7 +98,11 @@ int get_render_child_particle_number(struct RenderData *r, int num);
 int get_render_shadow_samples(struct RenderData *r, int samples);
 float get_render_aosss_error(struct RenderData *r, float error);
 
-void free_dome_warp_text(struct Text *txt);
+int scene_use_new_shading_nodes(struct Scene *scene);
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif