bugfix [#22724] "Scene" switch on the console doesn't work
This commit is contained in:
@@ -34,17 +34,17 @@
|
|||||||
const GHOST_TUns8* GHOST_getSystemDir()
|
const GHOST_TUns8* GHOST_getSystemDir()
|
||||||
{
|
{
|
||||||
GHOST_ISystem* system = GHOST_ISystem::getSystem();
|
GHOST_ISystem* system = GHOST_ISystem::getSystem();
|
||||||
return system->getSystemDir();
|
return system ? system->getSystemDir() : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const GHOST_TUns8* GHOST_getUserDir()
|
const GHOST_TUns8* GHOST_getUserDir()
|
||||||
{
|
{
|
||||||
GHOST_ISystem* system = GHOST_ISystem::getSystem();
|
GHOST_ISystem* system = GHOST_ISystem::getSystem();
|
||||||
return system->getUserDir();
|
return system ? system->getUserDir() : NULL; /* will be NULL in background mode */
|
||||||
}
|
}
|
||||||
|
|
||||||
const GHOST_TUns8* GHOST_getBinaryDir()
|
const GHOST_TUns8* GHOST_getBinaryDir()
|
||||||
{
|
{
|
||||||
GHOST_ISystem* system = GHOST_ISystem::getSystem();
|
GHOST_ISystem* system = GHOST_ISystem::getSystem();
|
||||||
return system->getBinaryDir();
|
return system ? system->getBinaryDir() : NULL; /* will be NULL in background mode */
|
||||||
}
|
}
|
||||||
|
@@ -553,18 +553,17 @@ void set_scene_bg(Scene *scene)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* called from creator.c */
|
/* called from creator.c */
|
||||||
void set_scene_name(char *name)
|
Scene *set_scene_name(char *name)
|
||||||
{
|
{
|
||||||
Scene *sce;
|
Scene *sce= (Scene *)find_id("SC", name);
|
||||||
|
if(sce) {
|
||||||
for (sce= G.main->scene.first; sce; sce= sce->id.next) {
|
set_scene_bg(sce);
|
||||||
if (BLI_streq(name, sce->id.name+2)) {
|
printf("Scene switch: '%s' in file: '%s'\n", name, G.sce);
|
||||||
set_scene_bg(sce);
|
return sce;
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//XXX error("Can't find scene: %s", name);
|
printf("Can't find scene: '%s' in file: '%s'\n", name, G.sce);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void unlink_scene(Main *bmain, Scene *sce, Scene *newsce)
|
void unlink_scene(Main *bmain, Scene *sce, Scene *newsce)
|
||||||
|
@@ -737,7 +737,11 @@ static int render_animation(int argc, char **argv, void *data)
|
|||||||
static int set_scene(int argc, char **argv, void *data)
|
static int set_scene(int argc, char **argv, void *data)
|
||||||
{
|
{
|
||||||
if(argc > 1) {
|
if(argc > 1) {
|
||||||
set_scene_name(argv[1]);
|
bContext *C= data;
|
||||||
|
Scene *sce= set_scene_name(argv[1]);
|
||||||
|
if(sce) {
|
||||||
|
CTX_data_scene_set(C, sce);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
printf("\nError: Scene name must follow '-S / --scene'.\n");
|
printf("\nError: Scene name must follow '-S / --scene'.\n");
|
||||||
@@ -982,7 +986,7 @@ void setupArguments(bContext *C, bArgs *ba, SYS_SystemHandle *syshandle)
|
|||||||
BLI_argsAdd(ba, 4, "-g", NULL, game_doc, set_ge_parameters, syshandle);
|
BLI_argsAdd(ba, 4, "-g", NULL, game_doc, set_ge_parameters, syshandle);
|
||||||
BLI_argsAdd(ba, 4, "-f", "--render-frame", "<frame>\n\tRender frame <frame> and save it.\n\t+<frame> start frame relative, -<frame> end frame relative.", render_frame, C);
|
BLI_argsAdd(ba, 4, "-f", "--render-frame", "<frame>\n\tRender frame <frame> and save it.\n\t+<frame> start frame relative, -<frame> end frame relative.", render_frame, C);
|
||||||
BLI_argsAdd(ba, 4, "-a", "--render-anim", "\n\tRender frames from start to end (inclusive)", render_animation, C);
|
BLI_argsAdd(ba, 4, "-a", "--render-anim", "\n\tRender frames from start to end (inclusive)", render_animation, C);
|
||||||
BLI_argsAdd(ba, 4, "-S", "--scene", "<name>\n\tSet the active scene <name> for rendering", set_scene, NULL);
|
BLI_argsAdd(ba, 4, "-S", "--scene", "<name>\n\tSet the active scene <name> for rendering", set_scene, C);
|
||||||
BLI_argsAdd(ba, 4, "-s", "--frame-start", "<frame>\n\tSet start to frame <frame> (use before the -a argument)", set_start_frame, C);
|
BLI_argsAdd(ba, 4, "-s", "--frame-start", "<frame>\n\tSet start to frame <frame> (use before the -a argument)", set_start_frame, C);
|
||||||
BLI_argsAdd(ba, 4, "-e", "--frame-end", "<frame>\n\tSet end to frame <frame> (use before the -a argument)", set_end_frame, C);
|
BLI_argsAdd(ba, 4, "-e", "--frame-end", "<frame>\n\tSet end to frame <frame> (use before the -a argument)", set_end_frame, C);
|
||||||
BLI_argsAdd(ba, 4, "-j", "--frame-jump", "<frames>\n\tSet number of frames to step forward after each rendered frame", set_skip_frame, C);
|
BLI_argsAdd(ba, 4, "-j", "--frame-jump", "<frames>\n\tSet number of frames to step forward after each rendered frame", set_skip_frame, C);
|
||||||
|
Reference in New Issue
Block a user