[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40125] branches/bmesh/blender: svn merge -r40117:40124 https://svn.blender.org/svnroot/bf-blender/trunk/ blender
Campbell Barton
ideasman42 at gmail.com
Sun Sep 11 15:23:30 CEST 2011
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. @@
More information about the Bf-blender-cvs
mailing list