Merged changes in the trunk up to revision 28536.
[blender.git] / source / creator / creator.c
index 9569816e125e213c3220180957f438d0c805f230..5bacc766621bb5ca8d0dedc826bf1cfefdc6da1e 100644 (file)
@@ -256,6 +256,7 @@ static int print_help(int argc, char **argv, void *data)
        printf ("    \tNULL SDL OPENAL JACK\n");
        printf ("  -h\t\tPrint this help text\n");
        printf ("  -y\t\tDisable automatic python script execution (pydrivers, pyconstraints, pynodes)\n");
+       printf ("  -Y\t\tEnable automatic python script execution\n");
        printf ("  -P <filename>\tRun the given Python script (filename or Blender Text)\n");
 #ifdef WIN32
        printf ("  -R\t\tRegister .blend extension\n");
@@ -318,29 +319,15 @@ static int end_arguments(int argc, char **argv, void *data)
        return -1;
 }
 
-static int disable_python(int argc, char **argv, void *data)
+static int enable_python(int argc, char **argv, void *data)
 {
-       G.f &= ~G_SCRIPT_AUTOEXEC;
+       G.f |= G_SCRIPT_AUTOEXEC;
        return 0;
 }
 
-
-static int forked_tongue(int argc, char **argv, void *data)
+static int disable_python(int argc, char **argv, void *data)
 {
-       printf ("-y was used to disable script links because,\n");
-       printf ("\t-p being taken, Ton was of the opinion that Y\n");
-       printf ("\tlooked like a split (disabled) snake, and also\n");
-       printf ("\twas similar to a python's tongue (unproven).\n\n");
-
-       printf ("\tZr agreed because it gave him a reason to add a\n");
-       printf ("\tcompletely useless text into Blender.\n\n");
-
-       printf ("\tADDENDUM! Ton, in defense, found this picture of\n");
-       printf ("\tan Australian python, exhibiting her (his/its) forked\n");
-       printf ("\tY tongue. It could be part of an H Zr retorted!\n\n");
-       printf ("\thttp://www.users.bigpond.com/snake.man/\n");
-
-       exit(252);
+       G.f &= ~G_SCRIPT_AUTOEXEC;
        return 0;
 }
 
@@ -848,6 +835,12 @@ static int load_file(int argc, char **argv, void *data)
                        if (CTX_wm_manager(C) == NULL) CTX_wm_manager_set(C, wm); /* reset wm */
                }
 
+               /* WM_read_file() runs normally but since we're in background mode do here */
+#ifndef DISABLE_PYTHON
+               /* run any texts that were loaded in and flagged as modules */
+               BPY_load_user_modules(C);
+#endif
+
                /* happens for the UI on file reading too (huh? (ton))*/
        // XXX                  BKE_reset_undo();
        //                              BKE_write_undo("original");     /* save current state */
@@ -877,7 +870,7 @@ void setupArguments(bContext *C, bArgs *ba, SYS_SystemHandle *syshandle)
        BLI_argsAdd(ba, "--version", 1, print_version, NULL);
        BLI_argsAdd(ba, "-v", 1, print_version, NULL);
 
-       BLI_argsAdd(ba, "-Y", 1, forked_tongue, NULL);
+       BLI_argsAdd(ba, "-Y", 1, enable_python, NULL);
        BLI_argsAdd(ba, "-y", 1, disable_python, NULL);
 
        BLI_argsAdd(ba, "-fpe", 1, set_fpe, NULL);
@@ -985,9 +978,6 @@ int main(int argc, char **argv)
        GEN_init_messaging_system();
 
        /* first test for background */
-
-       G.f |= G_SCRIPT_AUTOEXEC; /* script links enabled by default */
-
        ba = BLI_argsInit(argc, argv); /* skip binary path */
        setupArguments(C, ba, &syshandle);
 
@@ -1003,6 +993,10 @@ int main(int argc, char **argv)
        
        /* background render uses this font too */
        BKE_font_register_builtin(datatoc_Bfont, datatoc_Bfont_size);
+
+       /* Initialiaze ffmpeg if built in, also needed for bg mode if videos are
+          rendered via ffmpeg */
+       sound_init_once();
        
        init_def_material();
 
@@ -1017,11 +1011,13 @@ int main(int argc, char **argv)
 
 #ifndef DISABLE_SDL
        BLI_setenv("SDL_VIDEODRIVER", "dummy");
+/* I think this is not necessary anymore (04-24-2010 neXyon)
 #ifdef __linux__
-       /* On linux the default SDL driver dma often would not play
-        * use alsa if none is set */
+       // On linux the default SDL driver dma often would not play
+       // use alsa if none is set
        setenv("SDL_AUDIODRIVER", "alsa", 0);
 #endif
+*/
 #endif
        }
        else {