[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14558] trunk/blender/source: fix for own error when trying to fix python command line crash,
Campbell Barton
ideasman42 at gmail.com
Sun Apr 27 13:37:58 CEST 2008
Revision: 14558
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14558
Author: campbellbarton
Date: 2008-04-27 13:37:57 +0200 (Sun, 27 Apr 2008)
Log Message:
-----------
fix for own error when trying to fix python command line crash,
was calling screenmain() before executing the python script which meant it was never executed (therefore no crash :) )
Moved screenmain() back to the the end of main() and added a TESTBASELIB_BGMODE which checks for G.vd and uses the scene layer if its not there. Of course python should not be running stuff that uses G.vd :/
Also made python scripts stay attached to screens when LOAD UI is disabled. This means you can load a new blend file and the python console can stay open, has been tested for a while in the apricot branch.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/blender.c
trunk/blender/source/blender/blenkernel/intern/image.c
trunk/blender/source/blender/include/blendef.h
trunk/blender/source/blender/src/meshtools.c
trunk/blender/source/creator/creator.c
Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c 2008-04-26 20:41:25 UTC (rev 14557)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c 2008-04-27 11:37:57 UTC (rev 14558)
@@ -330,6 +330,7 @@
extern void lib_link_screen_restore(Main *, Scene *);
SWAP(ListBase, G.main->screen, bfd->main->screen);
+ SWAP(ListBase, G.main->script, bfd->main->script);
/* we re-use current screen */
curscreen= G.curscreen;
Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c 2008-04-26 20:41:25 UTC (rev 14557)
+++ trunk/blender/source/blender/blenkernel/intern/image.c 2008-04-27 11:37:57 UTC (rev 14558)
@@ -246,7 +246,6 @@
/* called by library too, do not free ima itself */
void free_image(Image *ima)
{
-
image_free_buffers(ima);
if (ima->packedfile) {
freePackedFile(ima->packedfile);
@@ -257,7 +256,6 @@
if (ima->preview) {
BKE_previewimg_free(&ima->preview);
}
-
}
/* only image block itself */
Modified: trunk/blender/source/blender/include/blendef.h
===================================================================
--- trunk/blender/source/blender/include/blendef.h 2008-04-26 20:41:25 UTC (rev 14557)
+++ trunk/blender/source/blender/include/blendef.h 2008-04-27 11:37:57 UTC (rev 14558)
@@ -96,6 +96,10 @@
#define TESTBASE(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0) )
#define TESTBASELIB(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
+
+/* This is a TESTBASELIB that can work without a 3D view */
+#define TESTBASELIB_BGMODE(base) ( ((base)->flag & SELECT) && ((base)->lay & (G.vd ? G.vd->lay : G.scene->lay)) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
+
#define BASE_SELECTABLE(base) ((base->lay & G.vd->lay) && (base->object->restrictflag & (OB_RESTRICT_SELECT|OB_RESTRICT_VIEW))==0)
#define FIRSTBASE G.scene->base.first
#define LASTBASE G.scene->base.last
Modified: trunk/blender/source/blender/src/meshtools.c
===================================================================
--- trunk/blender/source/blender/src/meshtools.c 2008-04-26 20:41:25 UTC (rev 14557)
+++ trunk/blender/source/blender/src/meshtools.c 2008-04-27 11:37:57 UTC (rev 14558)
@@ -164,7 +164,7 @@
/* count & check */
base= FIRSTBASE;
while(base) {
- if TESTBASELIB(base) {
+ if TESTBASELIB_BGMODE(base) { /* BGMODE since python can access */
if(base->object->type==OB_MESH) {
me= base->object->data;
totvert+= me->totvert;
@@ -200,7 +200,7 @@
/* if needed add edges to other meshes */
for(base= FIRSTBASE; base; base= base->next) {
- if TESTBASELIB(base) {
+ if TESTBASELIB_BGMODE(base) {
if(base->object->type==OB_MESH) {
me= base->object->data;
totedge += me->totedge;
@@ -221,7 +221,7 @@
base= FIRSTBASE;
while(base) {
- if TESTBASELIB(base) {
+ if TESTBASELIB_BGMODE(base) {
if(ob!=base->object && base->object->type==OB_MESH) {
me= base->object->data;
@@ -288,7 +288,7 @@
base= FIRSTBASE;
while(base) {
nextb= base->next;
- if TESTBASELIB(base) {
+ if TESTBASELIB_BGMODE(base) {
if(base->object->type==OB_MESH) {
me= base->object->data;
Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c 2008-04-26 20:41:25 UTC (rev 14557)
+++ trunk/blender/source/creator/creator.c 2008-04-27 11:37:57 UTC (rev 14558)
@@ -263,8 +263,6 @@
if(G.main->scene.first==0) {
set_scene( add_scene("1") );
}
-
- screenmain();
}
int main(int argc, char **argv)
@@ -815,6 +813,8 @@
if (scr_init==0) {
main_init_screen();
}
+
+ screenmain(); /* main display loop */
return 0;
} /* end of int main(argc,argv) */
More information about the Bf-blender-cvs
mailing list