diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2005-07-27 13:30:53 +0400 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2005-07-27 13:30:53 +0400 |
commit | 411123b2502388c9082886be48db93836ceacea8 (patch) | |
tree | 2d37fe8fc95b71b603a9e2fdf76580768a134313 /source/gameengine/Rasterizer | |
parent | b8142515ce762107a186fac501d73a2dbe42047a (diff) |
- added debug line drawing in gameengine (handy for debugging physics problems)
- added #ifdef for a visual studio 8 crashing problems
- added scaling and tolerances to triangle meshes
Diffstat (limited to 'source/gameengine/Rasterizer')
3 files changed, 34 insertions, 0 deletions
diff --git a/source/gameengine/Rasterizer/RAS_IRasterizer.h b/source/gameengine/Rasterizer/RAS_IRasterizer.h index 48991566fa5..03c7e1d5116 100644 --- a/source/gameengine/Rasterizer/RAS_IRasterizer.h +++ b/source/gameengine/Rasterizer/RAS_IRasterizer.h @@ -333,6 +333,7 @@ public: */ virtual void SetPolygonOffset(float mult, float add) = 0; + virtual void DrawDebugLine(const MT_Vector3& from,const MT_Vector3& to,const MT_Vector3& color)=0; }; #endif //__RAS_IRASTERIZER diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index 95688580fa3..f9d70f1d23f 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -401,6 +401,21 @@ void RAS_OpenGLRasterizer::ClearCachingInfo(void) void RAS_OpenGLRasterizer::EndFrame() { + //DrawDebugLines + glBegin(GL_LINES); + for (unsigned int i=0;i<m_debugLines.size();i++) + { + glColor4f(m_debugLines[i].m_color[0],m_debugLines[i].m_color[1],m_debugLines[i].m_color[2],1.f); + const MT_Scalar* fromPtr = &m_debugLines[i].m_from.x(); + const MT_Scalar* toPtr= &m_debugLines[i].m_to.x(); + + glVertex3dv(fromPtr); + glVertex3dv(toPtr); + } + glEnd(); + + m_debugLines.clear(); + glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); m_2DCanvas->EndFrame(); } diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h index 2571cee1333..ad6bdf8c1d1 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h @@ -44,6 +44,13 @@ using namespace std; #include "RAS_MaterialBucket.h" #include "RAS_ICanvas.h" +struct OglDebugLine +{ + MT_Vector3 m_from; + MT_Vector3 m_to; + MT_Vector3 m_color; +}; + /** * 3D rendering device context. */ @@ -226,6 +233,17 @@ public: ); virtual void SetPolygonOffset(float mult, float add); + virtual void DrawDebugLine(const MT_Vector3& from,const MT_Vector3& to,const MT_Vector3& color) + { + OglDebugLine line; + line.m_from = from; + line.m_to = to; + line.m_color = color; + m_debugLines.push_back(line); + } + + std::vector <OglDebugLine> m_debugLines; + }; #endif //__RAS_OPENGLRASTERIZER |