Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErwin Coumans <blender@erwincoumans.com>2005-07-27 13:30:53 +0400
committerErwin Coumans <blender@erwincoumans.com>2005-07-27 13:30:53 +0400
commit411123b2502388c9082886be48db93836ceacea8 (patch)
tree2d37fe8fc95b71b603a9e2fdf76580768a134313 /source/gameengine/Rasterizer
parentb8142515ce762107a186fac501d73a2dbe42047a (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')
-rw-r--r--source/gameengine/Rasterizer/RAS_IRasterizer.h1
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp15
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h18
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