Revision: 40125
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40125
Author:   campbellbarton
Date:     2011-09-11 13:23:30 +0000 (Sun, 11 Sep 2011)
Log Message:
-----------
svn merge -r40117:40124 https://svn.blender.org/svnroot/bf-blender/trunk/blender

Revision Links:
--------------
    
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40117

Modified Paths:
--------------
    branches/bmesh/blender/intern/audaspace/intern/AUD_JOSResampleReader.cpp
    branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerHandle.cpp
    branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerHandle.h
    branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerReader.cpp
    branches/bmesh/blender/source/blender/blenkernel/BKE_sequencer.h
    branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
    branches/bmesh/blender/source/blender/editors/sound/sound_ops.c
    branches/bmesh/blender/source/blender/makesdna/DNA_sequence_types.h
    branches/bmesh/blender/source/blender/makesrna/intern/rna_actuator.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_object.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_space.c

Property Changed:
----------------
    branches/bmesh/blender/
    branches/bmesh/blender/release/
    branches/bmesh/blender/source/blender/editors/space_outliner/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk/blender:39992-40117
   + /trunk/blender:39992-40124

Modified: 
branches/bmesh/blender/intern/audaspace/intern/AUD_JOSResampleReader.cpp
===================================================================
--- branches/bmesh/blender/intern/audaspace/intern/AUD_JOSResampleReader.cpp    
2011-09-11 12:24:11 UTC (rev 40124)
+++ branches/bmesh/blender/intern/audaspace/intern/AUD_JOSResampleReader.cpp    
2011-09-11 13:23:30 UTC (rev 40125)
@@ -118,7 +118,8 @@
 {\
        sample_t* buf = m_buffer.getBuffer();\
 \
-       int P, l, end, channel, i;\
+       unsigned int P, l;\
+       int end, channel, i;\
        double eta, v, f_increment, factor;\
 \
        m_sums.assureSize(m_channels * sizeof(double));\
@@ -222,7 +223,7 @@
 \
                        for(channel = 0; channel < m_channels; channel++)\
                        {\
-                               *buffer = f_increment / m_L * sums[channel];\
+                                                               *buffer = 
factor * sums[channel];\
                                buffer++;\
                        }\
                }\
@@ -230,7 +231,7 @@
                m_P += fmod(1.0 / factor, 1.0);\
                m_n += floor(1.0 / factor);\
 \
-               if(m_P >= 1.0)\
+               while(m_P >= 1.0)\
                {\
                        m_P -= 1.0;\
                        m_n++;\
@@ -364,9 +365,9 @@
        double factor = AUD_MIN(target_factor, m_last_factor);
 
        if(factor >= 1)
-               len = (m_n - m_cache_valid) + int(ceil(length / factor)) + 
ceil(num_samples);
+               len = (int(m_n) - m_cache_valid) + int(ceil(length / factor)) + 
ceil(num_samples);
        else
-               len = (m_n - m_cache_valid) + int(ceil(length / factor) + 
ceil(num_samples / factor));
+               len = (int(m_n) - m_cache_valid) + int(ceil(length / factor) + 
ceil(num_samples / factor));
 
        if(len > 0)
        {

Modified: branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerHandle.cpp
===================================================================
--- branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerHandle.cpp      
2011-09-11 12:24:11 UTC (rev 40124)
+++ branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerHandle.cpp      
2011-09-11 13:23:30 UTC (rev 40125)
@@ -66,7 +66,7 @@
                m_handle->stop();
 }
 
-void AUD_SequencerHandle::update(float position, float frame)
+void AUD_SequencerHandle::update(float position, float frame, float fps)
 {
        if(!m_handle.isNull())
        {
@@ -132,7 +132,7 @@
                m_3dhandle->setSourceLocation(v);
                m_entry->m_location.read(frame + 1, v2.get());
                v2 -= v;
-               m_3dhandle->setSourceVelocity(v2);
+               m_3dhandle->setSourceVelocity(v2 * fps);
 
                if(m_entry->m_muted)
                        m_handle->setVolume(0);

Modified: branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerHandle.h
===================================================================
--- branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerHandle.h        
2011-09-11 12:24:11 UTC (rev 40124)
+++ branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerHandle.h        
2011-09-11 13:23:30 UTC (rev 40125)
@@ -94,8 +94,9 @@
         * Updates the handle for playback.
         * \param position The current time during playback.
         * \param frame The current frame during playback.
+        * \param fps The animation frames per second.
         */
-       void update(float position, float frame);
+       void update(float position, float frame, float fps);
 
        /**
         * Seeks the handle to a specific time position.

Modified: branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerReader.cpp
===================================================================
--- branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerReader.cpp      
2011-09-11 12:24:11 UTC (rev 40124)
+++ branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerReader.cpp      
2011-09-11 13:23:30 UTC (rev 40125)
@@ -162,7 +162,7 @@
 
                for(AUD_HandleIterator it = m_handles.begin(); it != 
m_handles.end(); it++)
                {
-                       (*it)->update(time, frame);
+                       (*it)->update(time, frame, m_factory->m_fps);
                }
 
                m_factory->m_volume.read(frame, &volume);
@@ -174,7 +174,7 @@
                m_device.setListenerLocation(v);
                m_factory->m_location.read(frame + 1, v2.get());
                v2 -= v;
-               m_device.setListenerVelocity(v2);
+               m_device.setListenerVelocity(v2 * m_factory->m_fps);
 
                m_device.read(reinterpret_cast<data_t*>(buffer + specs.channels 
* pos), len);
 


Property changes on: branches/bmesh/blender/release
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk/blender/release:31524-40117
   + /trunk/blender/release:31524-40124

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_sequencer.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_sequencer.h    
2011-09-11 12:24:11 UTC (rev 40124)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_sequencer.h    
2011-09-11 13:23:30 UTC (rev 40125)
@@ -45,8 +45,6 @@
 struct StripElem;
 struct bSound;
 
-#define MAXSEQ          32
-
 #define BUILD_SEQAR_COUNT_NOTHING  0
 #define BUILD_SEQAR_COUNT_CURRENT  1
 #define BUILD_SEQAR_COUNT_CHILDREN 2

Modified: 
branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c  
2011-09-11 12:24:11 UTC (rev 40124)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c  
2011-09-11 13:23:30 UTC (rev 40125)
@@ -591,6 +591,12 @@
        BMIter iter;
        int i, draw;
 
+       const int skip_normals= !glIsEnabled(GL_LIGHTING); /* could be passed 
as an arg */
+
+       /* GL_ZERO is used to detect if drawing has started or not */
+       GLenum poly_prev= GL_ZERO;
+       GLenum shade_prev= GL_ZERO;
+
        /*BMESH_TODO*/
        (void)useColors;
 
@@ -600,6 +606,10 @@
        (void)compareDrawOptions;
 
        if (bmdm->vertexCos) {
+               /* add direct access */
+               float (*vertexCos)[3]= bmdm->vertexCos;
+               float (*vertexNos)[3]= bmdm->vertexNos;
+               float (*faceNos)[3]=   bmdm->faceNos;
                BMVert *eve;
                
                eve = BMIter_New(&iter, bmdm->tc->bm, BM_VERTS_OF_MESH, NULL);
@@ -619,32 +629,56 @@
 
                        draw = setDrawOptions==NULL ? 1 : 
setDrawOptions(userData, BM_GetIndex(efa), &drawSmooth);
                        if(draw) {
+                               const GLenum poly_type= GL_TRIANGLES; /* BMESH 
NOTE, this is odd but keep it for now to match trunk */
                                if (draw==2) { /* enabled with stipple */
+
+                                       if(poly_prev != GL_ZERO) glEnd();
+                                       poly_prev= GL_ZERO; /* force glBegin */
+
                                        glEnable(GL_POLYGON_STIPPLE);
                                        glPolygonStipple(stipple_quarttone);
                                }
                                
-                               glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
+                               if(skip_normals) {
+                                       if(poly_type != poly_prev) {
+                                               if(poly_prev != GL_ZERO) 
glEnd();
+                                               glBegin((poly_prev= 
poly_type)); /* BMesh: will always be GL_TRIANGLES */
+                                       }
+                                       glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[0]->v)]);
+                                       glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[1]->v)]);
+                                       glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[2]->v)]);
+                               }
+                               else {
+                                       const GLenum shade_type= drawSmooth ? 
GL_SMOOTH : GL_FLAT;
+                                       if (shade_type != shade_prev) {
+                                               glShadeModel((shade_prev= 
shade_type));
+                                       }
+                                       if(poly_type != poly_prev) {
+                                               if(poly_prev != GL_ZERO) 
glEnd();
+                                               glBegin((poly_prev= 
poly_type)); /* BMesh: will always be GL_TRIANGLES */
+                                       }
 
-                               glBegin(GL_TRIANGLES);
-
-                               if (!drawSmooth) {
-                                       glNormal3fv(bmdm->faceNos[i]);
-                                       glVertex3fv(bmdm->vertexCos[(int) 
BM_GetIndex(l[0]->v)]);
-                                       glVertex3fv(bmdm->vertexCos[(int) 
BM_GetIndex(l[1]->v)]);
-                                       glVertex3fv(bmdm->vertexCos[(int) 
BM_GetIndex(l[2]->v)]);
-                               } else {
-                                       glNormal3fv(bmdm->vertexNos[(int) 
BM_GetIndex(l[0]->v)]);
-                                       glVertex3fv(bmdm->vertexCos[(int) 
BM_GetIndex(l[0]->v)]);
-                                       glNormal3fv(bmdm->vertexNos[(int) 
BM_GetIndex(l[1]->v)]);
-                                       glVertex3fv(bmdm->vertexCos[(int) 
BM_GetIndex(l[1]->v)]);
-                                       glNormal3fv(bmdm->vertexNos[(int) 
BM_GetIndex(l[2]->v)]);
-                                       glVertex3fv(bmdm->vertexCos[(int) 
BM_GetIndex(l[2]->v)]);
+                                       if (!drawSmooth) {
+                                               glNormal3fv(faceNos[i]);
+                                               glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[0]->v)]);
+                                               glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[1]->v)]);
+                                               glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[2]->v)]);
+                                       } else {
+                                               glNormal3fv(vertexNos[(int) 
BM_GetIndex(l[0]->v)]);
+                                               glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[0]->v)]);
+                                               glNormal3fv(vertexNos[(int) 
BM_GetIndex(l[1]->v)]);
+                                               glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[1]->v)]);
+                                               glNormal3fv(vertexNos[(int) 
BM_GetIndex(l[2]->v)]);
+                                               glVertex3fv(vertexCos[(int) 
BM_GetIndex(l[2]->v)]);
+                                       }
                                }
-                               glEnd();
 
-                               if (draw==2)
+                               if (draw==2) {
+                                       glEnd();
+                                       poly_prev= GL_ZERO; /* force glBegin */
+
                                        glDisable(GL_POLYGON_STIPPLE);
+                               }
                        }
                }
        } else {
@@ -661,33 +695,61 @@
                        
                        draw = setDrawOptions==NULL ? 1 : 
setDrawOptions(userData, BM_GetIndex(efa), &drawSmooth);
                        if(draw) {
+                               const GLenum poly_type= GL_TRIANGLES; /* BMESH 
NOTE, this is odd but keep it for now to match trunk */
                                if (draw==2) { /* enabled with stipple */
+
+                                       if(poly_prev != GL_ZERO) glEnd();
+                                       poly_prev= GL_ZERO; /* force glBegin */
+
                                        glEnable(GL_POLYGON_STIPPLE);
                                        glPolygonStipple(stipple_quarttone);
                                }
-                               glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
                                
-                               glBegin(GL_TRIANGLES);
-                               if (!drawSmooth) {
-                                       glNormal3fv(efa->no);
+                               if(skip_normals) {
+                                       if(poly_type != poly_prev) {
+                                               if(poly_prev != GL_ZERO) 
glEnd();
+                                               glBegin((poly_prev= 
poly_type)); /* BMesh: will always be GL_TRIANGLES */
+                                       }
                                        glVertex3fv(l[0]->v->co);
                                        glVertex3fv(l[1]->v->co);
                                        glVertex3fv(l[2]->v->co);
-                               } else {
-                                       glNormal3fv(l[0]->v->no);
-                                       glVertex3fv(l[0]->v->co);
-                                       glNormal3fv(l[1]->v->no);
-                                       glVertex3fv(l[1]->v->co);
-                                       glNormal3fv(l[2]->v->no);
-                                       glVertex3fv(l[2]->v->co);
                                }
-                               glEnd();
-                               
-                               if (draw==2)
+                               else {
+                                       const GLenum shade_type= drawSmooth ? 
GL_SMOOTH : GL_FLAT;
+                                       if (shade_type != shade_prev) {
+                                               glShadeModel((shade_prev= 
shade_type));
+                                       }
+                                       if(poly_type != poly_prev) {
+                                               if(poly_prev != GL_ZERO) 
glEnd();
+                                               glBegin((poly_prev= 
poly_type)); /* BMesh: will always be GL_TRIANGLES */
+                                       }
+
+                                       if (!drawSmooth) {
+                                               glNormal3fv(efa->no);
+                                               glVertex3fv(l[0]->v->co);
+                                               glVertex3fv(l[1]->v->co);
+                                               glVertex3fv(l[2]->v->co);
+                                       } else {
+                                               glNormal3fv(l[0]->v->no);
+                                               glVertex3fv(l[0]->v->co);
+                                               glNormal3fv(l[1]->v->no);
+                                               glVertex3fv(l[1]->v->co);
+                                               glNormal3fv(l[2]->v->no);
+                                               glVertex3fv(l[2]->v->co);
+                                       }
+                               }
+                               if (draw==2) {

@@ 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