[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36119] trunk/blender/source: report missing engines on file load.

Dalai Felinto dfelinto at gmail.com
Wed Apr 13 01:20:22 CEST 2011


This is reporting missing engine for any 2.49 file.
(Engine not available: '' for scene: Scene, an addon ....)

[win7 64bit blender scons]

2011/4/12 Campbell Barton <ideasman42 at gmail.com>:
> Revision: 36119
>          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36119
> Author:   campbellbarton
> Date:     2011-04-12 15:55:38 +0000 (Tue, 12 Apr 2011)
> Log Message:
> -----------
> report missing engines on file load. (request from Martin).
>
> Modified Paths:
> --------------
>    trunk/blender/source/blender/render/intern/source/pipeline.c
>    trunk/blender/source/blender/windowmanager/intern/wm_files.c
>    trunk/blender/source/creator/creator.c
>
> Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
> ===================================================================
> --- trunk/blender/source/blender/render/intern/source/pipeline.c        2011-04-12 15:55:04 UTC (rev 36118)
> +++ trunk/blender/source/blender/render/intern/source/pipeline.c        2011-04-12 15:55:38 UTC (rev 36119)
> @@ -35,6 +35,7 @@
>  #include <limits.h>
>  #include <string.h>
>  #include <stdlib.h>
> +#include <stddef.h>
>
>  #include "DNA_group_types.h"
>  #include "DNA_image_types.h"
> @@ -3349,13 +3350,9 @@
>
>  static int external_render_3d(Render *re, int do_all)
>  {
> -       RenderEngineType *type;
> +       RenderEngineType *type= BLI_findstring(&R_engines, re->r.engine, offsetof(RenderEngineType, idname));
>        RenderEngine engine;
>
> -       for(type=R_engines.first; type; type=type->next)
> -               if(strcmp(type->idname, re->r.engine) == 0)
> -                       break;
> -
>        if(!(type && type->render))
>                return 0;
>        if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_DO_PREVIEW))
>
> Modified: trunk/blender/source/blender/windowmanager/intern/wm_files.c
> ===================================================================
> --- trunk/blender/source/blender/windowmanager/intern/wm_files.c        2011-04-12 15:55:04 UTC (rev 36118)
> +++ trunk/blender/source/blender/windowmanager/intern/wm_files.c        2011-04-12 15:55:38 UTC (rev 36119)
> @@ -33,7 +33,7 @@
>        /* placed up here because of crappy
>         * winsock stuff.
>         */
> -#include <stdio.h>
> +#include <stddef.h>
>  #include <string.h>
>  #include <errno.h>
>
> @@ -96,6 +96,8 @@
>  #include "ED_view3d.h"
>  #include "ED_util.h"
>
> +#include "RE_pipeline.h" /* only to report missing engine */
> +
>  #include "GHOST_C-api.h"
>  #include "GHOST_Path-api.h"
>
> @@ -338,6 +340,17 @@
>  #endif
>                CTX_wm_window_set(C, NULL); /* exits queues */
>
> +               /* TODO, make this show in header info window */
> +               {
> +                       Scene *sce;
> +                       for(sce= G.main->scene.first; sce; sce= sce->id.next) {
> +                               if(BLI_findstring(&R_engines, sce->r.engine, offsetof(RenderEngineType, idname)) == NULL) {
> +                                       BKE_reportf(reports, RPT_WARNING, "Engine not available: '%s' for scene: %s, an addon may need to be installed or enabled", sce->r.engine, sce->id.name+2);
> +                               }
> +                       }
> +               }
> +
> +
>                // XXX          undo_editmode_clear();
>                BKE_reset_undo();
>                BKE_write_undo(C, "original");  /* save current state */
>
> Modified: trunk/blender/source/creator/creator.c
> ===================================================================
> --- trunk/blender/source/creator/creator.c      2011-04-12 15:55:04 UTC (rev 36118)
> +++ trunk/blender/source/creator/creator.c      2011-04-12 15:55:38 UTC (rev 36119)
> @@ -43,6 +43,7 @@
>  #endif
>
>  #include <stdlib.h>
> +#include <stddef.h>
>  #include <string.h>
>
>  /* for setuid / getuid */
> @@ -583,18 +584,12 @@
>                        {
>                                printf("\nError: no blend loaded. order the arguments so '-E  / --engine ' is after a blend is loaded.\n");
>                        }
> -                       else
> -                       {
> +                       else {
>                                Scene *scene= CTX_data_scene(C);
>                                RenderData *rd = &scene->r;
> -                               RenderEngineType *type = NULL;
>
> -                               for( type = R_engines.first; type; type = type->next )
> -                               {
> -                                       if (!strcmp(argv[1],type->idname))
> -                                       {
> -                                               BLI_strncpy(rd->engine, type->idname, sizeof(rd->engine));
> -                                       }
> +                               if(BLI_findstring(&R_engines, argv[1], offsetof(RenderEngineType, idname))) {
> +                                       BLI_strncpy(rd->engine, argv[1], sizeof(rd->engine));
>                                }
>                        }
>                }
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>


More information about the Bf-committers mailing list