Revision: 15512
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15512
Author:   bdiego
Date:     2008-07-09 23:32:25 +0200 (Wed, 09 Jul 2008)

Log Message:
-----------
branches/blender-2.47

Merge from trunk:
        Revision: 15460
        Revision: 15461
        Revision: 15462
        Revision: 15480
        Revision: 15485
        Revision: 15488
        Revision: 15490
        Revision: 15494
        Revision: 15550
        Revision: 15502
        Revision: 15503
        Revision: 15505
        Revision: 15508

Modified Paths:
--------------
    branches/blender-2.47/intern/ghost/intern/GHOST_SystemWin32.cpp
    branches/blender-2.47/source/blender/blenkernel/intern/DerivedMesh.c
    branches/blender-2.47/source/blender/blenkernel/intern/library.c
    branches/blender-2.47/source/blender/blenkernel/intern/modifier.c
    branches/blender-2.47/source/blender/blenkernel/intern/particle.c
    branches/blender-2.47/source/blender/blenkernel/intern/particle_system.c
    branches/blender-2.47/source/blender/imbuf/intern/openexr/openexr_api.cpp
    branches/blender-2.47/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
    branches/blender-2.47/source/blender/radiosity/intern/source/radrender.c
    branches/blender-2.47/source/blender/src/buttons_object.c
    branches/blender-2.47/source/blender/src/editmesh_add.c
    branches/blender-2.47/source/blender/src/edittime.c
    branches/blender-2.47/source/gameengine/Expressions/PyObjectPlus.h
    branches/blender-2.47/source/gameengine/Ketsji/KX_TouchEventManager.cpp

Modified: branches/blender-2.47/intern/ghost/intern/GHOST_SystemWin32.cpp
===================================================================
--- branches/blender-2.47/intern/ghost/intern/GHOST_SystemWin32.cpp     
2008-07-09 21:07:02 UTC (rev 15511)
+++ branches/blender-2.47/intern/ghost/intern/GHOST_SystemWin32.cpp     
2008-07-09 21:32:25 UTC (rev 15512)
@@ -302,6 +302,15 @@
 {
        GHOST_TSuccess success = GHOST_System::init();
 
+       /* Disable scaling on high DPI displays on Vista */
+       HMODULE user32 = ::LoadLibraryA("user32.dll");
+       typedef BOOL (WINAPI * LPFNSETPROCESSDPIAWARE)();
+       LPFNSETPROCESSDPIAWARE SetProcessDPIAware =
+               (LPFNSETPROCESSDPIAWARE)GetProcAddress(user32, 
"SetProcessDPIAware");
+       if (SetProcessDPIAware)
+               SetProcessDPIAware();
+       FreeLibrary(user32);
+
        // Determine whether this system has a high frequency performance 
counter. */
        m_hasPerformanceCounter = 
::QueryPerformanceFrequency((LARGE_INTEGER*)&m_freq) == TRUE;
        if (m_hasPerformanceCounter) {

Modified: branches/blender-2.47/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/blender-2.47/source/blender/blenkernel/intern/DerivedMesh.c        
2008-07-09 21:07:02 UTC (rev 15511)
+++ branches/blender-2.47/source/blender/blenkernel/intern/DerivedMesh.c        
2008-07-09 21:32:25 UTC (rev 15512)
@@ -1052,7 +1052,7 @@
 
        /* store vertex indices in tmp union */
        for(ev = em->verts.first, i = 0; ev; ev = ev->next, ++i)
-               ev->tmp.l = (long) i++;
+               ev->tmp.l = (long) i;
 
        for( ; ee; ee = ee->next, ++edge_r) {
                edge_r->crease = (unsigned char) (ee->crease*255.0f);

Modified: branches/blender-2.47/source/blender/blenkernel/intern/library.c
===================================================================
--- branches/blender-2.47/source/blender/blenkernel/intern/library.c    
2008-07-09 21:07:02 UTC (rev 15511)
+++ branches/blender-2.47/source/blender/blenkernel/intern/library.c    
2008-07-09 21:32:25 UTC (rev 15512)
@@ -224,48 +224,50 @@
 /* note: MAX_LIBARRAY define should match this code */
 int set_listbasepointers(Main *main, ListBase **lb)
 {
+       int a = 0;
+
        /* BACKWARDS! also watch order of free-ing! (mesh<->mat) */
 
-       lb[0]= &(main->ipo);
-       lb[1]= &(main->key);
-       lb[2]= &(main->image);
-       lb[3]= &(main->tex);
-       lb[4]= &(main->mat);
-       lb[5]= &(main->vfont);
+       lb[a++]= &(main->ipo);
+       lb[a++]= &(main->key);
+       lb[a++]= &(main->nodetree);
+       lb[a++]= &(main->image);
+       lb[a++]= &(main->tex);
+       lb[a++]= &(main->mat);
+       lb[a++]= &(main->vfont);
        
        /* Important!: When adding a new object type,
         * the specific data should be inserted here 
         */
 
-       lb[6]= &(main->armature);
-       lb[7]= &(main->action);
+       lb[a++]= &(main->armature);
+       lb[a++]= &(main->action);
 
-       lb[8]= &(main->mesh);
-       lb[9]= &(main->curve);
-       lb[10]= &(main->mball);
+       lb[a++]= &(main->mesh);
+       lb[a++]= &(main->curve);
+       lb[a++]= &(main->mball);
 
-       lb[11]= &(main->wave);
-       lb[12]= &(main->latt);
-       lb[13]= &(main->lamp);
-       lb[14]= &(main->camera);
+       lb[a++]= &(main->wave);
+       lb[a++]= &(main->latt);
+       lb[a++]= &(main->lamp);
+       lb[a++]= &(main->camera);
        
-       lb[15]= &(main->text);
-       lb[16]= &(main->sound);
-       lb[17]= &(main->group);
-       lb[18]= &(main->nodetree);
-       lb[19]= &(main->brush);
-       lb[20]= &(main->script);
-       lb[21]= &(main->particle);
+       lb[a++]= &(main->text);
+       lb[a++]= &(main->sound);
+       lb[a++]= &(main->group);
+       lb[a++]= &(main->brush);
+       lb[a++]= &(main->script);
+       lb[a++]= &(main->particle);
        
-       lb[22]= &(main->world);
-       lb[23]= &(main->screen);
-       lb[24]= &(main->object);
-       lb[25]= &(main->scene);
-       lb[26]= &(main->library);
+       lb[a++]= &(main->world);
+       lb[a++]= &(main->screen);
+       lb[a++]= &(main->object);
+       lb[a++]= &(main->scene);
+       lb[a++]= &(main->library);
        
-       lb[27]= NULL;
+       lb[a]= NULL;
 
-       return 27;
+       return a;
 }
 
 /* *********** ALLOC AND FREE *****************

Modified: branches/blender-2.47/source/blender/blenkernel/intern/modifier.c
===================================================================
--- branches/blender-2.47/source/blender/blenkernel/intern/modifier.c   
2008-07-09 21:07:02 UTC (rev 15511)
+++ branches/blender-2.47/source/blender/blenkernel/intern/modifier.c   
2008-07-09 21:32:25 UTC (rev 15512)
@@ -4727,7 +4727,7 @@
 
        if(!wmd->texture && !wmd->defgrp_name[0] && !(wmd->flag & 
MOD_WAVE_NORM))
                dm = derivedData;
-       else if(derivedData) dm = derivedData;
+       else if(derivedData) dm = CDDM_copy(derivedData);
        else dm = CDDM_from_editmesh(editData, ob->data);
 
        if(wmd->flag & MOD_WAVE_NORM) {

Modified: branches/blender-2.47/source/blender/blenkernel/intern/particle.c
===================================================================
--- branches/blender-2.47/source/blender/blenkernel/intern/particle.c   
2008-07-09 21:07:02 UTC (rev 15511)
+++ branches/blender-2.47/source/blender/blenkernel/intern/particle.c   
2008-07-09 21:32:25 UTC (rev 15512)
@@ -1371,7 +1371,7 @@
 /************************************************/
 void psys_particle_on_emitter(Object *ob, ParticleSystemModifierData *psmd, 
int from, int index, int index_dmcache, float *fuv, float foffset, float *vec, 
float *nor, float *utan, float *vtan, float *orco, float *ornor){
        if(psmd){
-               if(psmd->psys->part->distr==PART_DISTR_GRID){
+               if(psmd->psys->part->distr==PART_DISTR_GRID && 
psmd->psys->part->from != PART_FROM_VERT){
                        if(vec){
                                VECCOPY(vec,fuv);
                        }

Modified: 
branches/blender-2.47/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- branches/blender-2.47/source/blender/blenkernel/intern/particle_system.c    
2008-07-09 21:07:02 UTC (rev 15511)
+++ branches/blender-2.47/source/blender/blenkernel/intern/particle_system.c    
2008-07-09 21:32:25 UTC (rev 15512)
@@ -168,7 +168,7 @@
        int i, totpart, totsaved = 0;
 
        if(new_totpart<0) {
-               if(psys->part->distr==PART_DISTR_GRID) {
+               if(psys->part->distr==PART_DISTR_GRID  && psys->part->from != 
PART_FROM_VERT) {
                        totpart= psys->part->grid_res;
                        totpart*=totpart*totpart;
                }
@@ -1056,7 +1056,7 @@
                dm= CDDM_from_mesh((Mesh*)ob->data, ob);
 
                /* special handling of grid distribution */
-               if(part->distr==PART_DISTR_GRID){
+               if(part->distr==PART_DISTR_GRID && from != PART_FROM_VERT){
                        distribute_particles_in_grid(dm,psys);
                        dm->release(dm);
                        return 0;
@@ -1600,7 +1600,7 @@
 
        NormalQuat(pa->r_rot);
 
-       if(part->distr!=PART_DISTR_GRID){
+       if(part->distr!=PART_DISTR_GRID && part->from != PART_FROM_VERT){
                /* any unique random number will do (r_ave[0]) */
                if(ptex.exist < 0.5*(1.0+pa->r_ave[0]))
                        pa->flag |= PARS_UNEXIST;
@@ -4515,7 +4515,7 @@
        if(part->from == PART_FROM_PARTICLE) {
                if(part->type != PART_REACTOR)
                        part->from = PART_FROM_FACE;
-               if(part->distr == PART_DISTR_GRID)
+               if(part->distr == PART_DISTR_GRID && part->from != 
PART_FROM_VERT)
                        part->distr = PART_DISTR_JIT;
        }
 
@@ -4710,7 +4710,7 @@
        oldtotpart = psys->totpart;
        oldtotchild = psys->totchild;
 
-       if(part->distr == PART_DISTR_GRID)
+       if(part->distr == PART_DISTR_GRID && part->from != PART_FROM_VERT)
                totpart = part->grid_res*part->grid_res*part->grid_res;
        else
                totpart = psys->part->totpart;

Modified: 
branches/blender-2.47/source/blender/imbuf/intern/openexr/openexr_api.cpp
===================================================================
--- branches/blender-2.47/source/blender/imbuf/intern/openexr/openexr_api.cpp   
2008-07-09 21:07:02 UTC (rev 15511)
+++ branches/blender-2.47/source/blender/imbuf/intern/openexr/openexr_api.cpp   
2008-07-09 21:32:25 UTC (rev 15512)
@@ -842,7 +842,7 @@
 } RGBA;
 
 
-#if 0
+/* debug only */
 static void exr_print_filecontents(InputFile *file)
 {
        const ChannelList &channels = file->header().channels();
@@ -853,8 +853,28 @@
                printf("OpenEXR-load: Found channel %s of type %d\n", i.name(), 
channel.type);
        }
 }
-#endif
 
+/* for non-multilayer, map  R G B A channel names to something that's in this 
file */
+static const char *exr_rgba_channelname(InputFile *file, const char *chan)
+{
+       const ChannelList &channels = file->header().channels();
+       
+       for (ChannelList::ConstIterator i = channels.begin(); i != 
channels.end(); ++i)
+       {
+               const Channel &channel = i.channel();
+               const char *str= i.name();
+               int len= strlen(str);
+               if(len) {
+                       if(BLI_strcasecmp(chan, str+len-1)==0) {
+                               return str;
+                       }
+               }
+       }
+       return chan;
+}
+
+
+
 static int exr_has_zbuffer(InputFile *file)
 {
        const ChannelList &channels = file->header().channels();
@@ -896,7 +916,8 @@
                //printf("OpenEXR-load: image data window %d %d %d %d\n", 
                //         dw.min.x, dw.min.y, dw.max.x, dw.max.y);
 
-               // exr_print_filecontents(file);
+               if(0) // debug
+                       exr_print_filecontents(file);
                
                is_multi= exr_is_renderresult(file);
                
@@ -935,11 +956,15 @@
                                        /* but, since we read y-flipped 
(negative y stride) we move to last scanline */
                                        first+= 4*(height-1)*width;
                                        
-                                       frameBuffer.insert ("R", Slice (FLOAT,  
(char *) first, xstride, ystride));
-                                       frameBuffer.insert ("G", Slice (FLOAT,  
(char *) (first+1), xstride, ystride));
-                                       frameBuffer.insert ("B", Slice (FLOAT,  
(char *) (first+2), xstride, ystride));
-                                                                               
                                                                        /* 1.0 
is fill value */
-                                       frameBuffer.insert ("A", Slice (FLOAT,  
(char *) (first+3), xstride, ystride, 1, 1, 1.0f));
+                                       frameBuffer.insert ( 
exr_rgba_channelname(file, "R"), 
+                                                                               
Slice (FLOAT,  (char *) first, xstride, ystride));
+                                       frameBuffer.insert ( 
exr_rgba_channelname(file, "G"), 
+                                                                               
Slice (FLOAT,  (char *) (first+1), xstride, ystride));
+                                       frameBuffer.insert ( 
exr_rgba_channelname(file, "B"), 
+                                                                               
Slice (FLOAT,  (char *) (first+2), xstride, ystride));
+                                                                               
                                                                        
+                                       frameBuffer.insert ( 
exr_rgba_channelname(file, "A"), 
+                                                                               
Slice (FLOAT,  (char *) (first+3), xstride, ystride, 1, 1, 1.0f)); /* 1.0 is 
fill value */
 
                                        if(exr_has_zbuffer(file)) 
                                        {

Modified: 
branches/blender-2.47/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
===================================================================
--- branches/blender-2.47/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c     
2008-07-09 21:07:02 UTC (rev 15511)
+++ branches/blender-2.47/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c     
2008-07-09 21:32:25 UTC (rev 15512)
@@ -47,7 +47,7 @@
        int i=0;
        for(i=0; i<3; i++) {
                /* check for negative to avoid nan's */
-               out[i] = (in[0] > 0.0f)? pow(in[i],fac[0]): in[0];
+               out[i] = (in[i] > 0.0f)? pow(in[i],fac[0]): in[i];
        }
        out[3] = in[3];
 }


@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to