diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-09-01 22:49:33 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-09-01 22:49:33 +0400 |
commit | f12f23806280df74f7971cca24800ad8dfe750c1 (patch) | |
tree | c9db21f139e871e1528d72c4e7336aa7e00c2859 /source/gameengine/Rasterizer | |
parent | 3bc5d87e5001453f05f9f14c0326dc87727982fa (diff) | |
parent | 959757c2d7bdfe7955e2c645a511ac450a607c47 (diff) |
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22875:22935
Note, missing r22897, schlaile
source/blender/src/hddaudio.c
Diffstat (limited to 'source/gameengine/Rasterizer')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_MaterialBucket.h | 3 | ||||
-rw-r--r-- | source/gameengine/Rasterizer/RAS_Polygon.cpp | 15 | ||||
-rw-r--r-- | source/gameengine/Rasterizer/RAS_Polygon.h | 1 |
3 files changed, 19 insertions, 0 deletions
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h index 207763392b2..dc9abbfbddf 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h @@ -79,8 +79,11 @@ class RAS_DisplayArray public: vector<RAS_TexVert> m_vertex; vector<unsigned short> m_index; + /* LINE currently isnt used */ enum { LINE = 2, TRIANGLE = 3, QUAD = 4 } m_type; //RAS_MeshSlot *m_origSlot; + + /* Number of RAS_MeshSlot using this array */ int m_users; enum { BUCKET_MAX_INDEX = 65535 }; diff --git a/source/gameengine/Rasterizer/RAS_Polygon.cpp b/source/gameengine/Rasterizer/RAS_Polygon.cpp index eacc1285166..87c5118c5fb 100644 --- a/source/gameengine/Rasterizer/RAS_Polygon.cpp +++ b/source/gameengine/Rasterizer/RAS_Polygon.cpp @@ -31,6 +31,7 @@ #endif #include "RAS_Polygon.h" +#include "RAS_MeshObject.h" /* only for GetVertexOffsetAbs */ RAS_Polygon::RAS_Polygon(RAS_MaterialBucket* bucket, RAS_DisplayArray *darray, int numvert) { @@ -63,6 +64,20 @@ int RAS_Polygon::GetVertexOffset(int i) return m_offset[i]; } +int RAS_Polygon::GetVertexOffsetAbs(RAS_MeshObject *mesh, int i) +{ + /* hack that only works because there can only ever be 2 different + * GetDisplayArray's per mesh. if this uses a different display array to the first + * then its incices are offset. + * if support for edges is added back this would need to be changed. */ + RAS_DisplayArray* darray= mesh->GetPolygon(0)->GetDisplayArray(); + + if(m_darray != darray) + return m_offset[i] + darray->m_vertex.size(); + + return m_offset[i]; +} + /* int RAS_Polygon::GetEdgeCode() { diff --git a/source/gameengine/Rasterizer/RAS_Polygon.h b/source/gameengine/Rasterizer/RAS_Polygon.h index a5b77738026..bd8cfe0be28 100644 --- a/source/gameengine/Rasterizer/RAS_Polygon.h +++ b/source/gameengine/Rasterizer/RAS_Polygon.h @@ -72,6 +72,7 @@ public: void SetVertexOffset(int i, unsigned short offset); int GetVertexOffset(int i); + int GetVertexOffsetAbs(RAS_MeshObject *mesh, int i); /* accounts for quad and tri arrays, slower, for python */ // each bit is for a visible edge, starting with bit 1 for the first edge, bit 2 for second etc. // - Not used yet! |