Commit 47eaf3c0 authored by hybrid's avatar hybrid

Another material cleanup for the debug renders.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1610 dfc29bdd-3216-0410-991c-e03cc46cb475
parent f2a70abb
...@@ -302,7 +302,6 @@ void CAnimatedMeshSceneNode::render() ...@@ -302,7 +302,6 @@ void CAnimatedMeshSceneNode::render()
// render original meshes // render original meshes
if ( renderMeshes ) if ( renderMeshes )
{ {
for (u32 i=0; i<m->getMeshBufferCount(); ++i) for (u32 i=0; i<m->getMeshBufferCount(); ++i)
{ {
video::IMaterialRenderer* rnd = driver->getMaterialRenderer(Materials[i].MaterialType); video::IMaterialRenderer* rnd = driver->getMaterialRenderer(Materials[i].MaterialType);
...@@ -330,9 +329,9 @@ void CAnimatedMeshSceneNode::render() ...@@ -330,9 +329,9 @@ void CAnimatedMeshSceneNode::render()
// for debug purposes only: // for debug purposes only:
if (DebugDataVisible && PassCount==1) if (DebugDataVisible && PassCount==1)
{ {
mat.Lighting = false; video::SMaterial debug_mat;
driver->setMaterial(mat); debug_mat.Lighting = false;
driver->setMaterial(debug_mat);
// show normals // show normals
if ( DebugDataVisible & scene::EDS_NORMALS ) if ( DebugDataVisible & scene::EDS_NORMALS )
{ {
...@@ -381,9 +380,13 @@ void CAnimatedMeshSceneNode::render() ...@@ -381,9 +380,13 @@ void CAnimatedMeshSceneNode::render()
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation); driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);
} }
mat.MaterialType = video::EMT_SOLID; debug_mat.ZBuffer = false;
mat.ZBuffer = false; debug_mat.Lighting = false;
driver->setMaterial(mat); driver->setMaterial(debug_mat);
if ( DebugDataVisible & scene::EDS_BBOX )
driver->draw3DBox(Box, video::SColor(255,255,255,255));
// show bounding box // show bounding box
if ( DebugDataVisible & scene::EDS_BBOX_BUFFERS ) if ( DebugDataVisible & scene::EDS_BBOX_BUFFERS )
{ {
...@@ -397,13 +400,8 @@ void CAnimatedMeshSceneNode::render() ...@@ -397,13 +400,8 @@ void CAnimatedMeshSceneNode::render()
driver->draw3DBox( mb->getBoundingBox(), driver->draw3DBox( mb->getBoundingBox(),
video::SColor(255,190,128,128) ); video::SColor(255,190,128,128) );
} }
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);
} }
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);
if ( DebugDataVisible & scene::EDS_BBOX )
driver->draw3DBox(Box, video::SColor(255,255,255,255));
// show skeleton // show skeleton
if ( DebugDataVisible & scene::EDS_SKELETON ) if ( DebugDataVisible & scene::EDS_SKELETON )
{ {
...@@ -437,11 +435,7 @@ void CAnimatedMeshSceneNode::render() ...@@ -437,11 +435,7 @@ void CAnimatedMeshSceneNode::render()
{ {
arrow = SceneManager->getMesh ( "__tag_show" ); arrow = SceneManager->getMesh ( "__tag_show" );
} }
IMesh *arrowMesh = arrow->getMesh ( 0 ); IMesh *arrowMesh = arrow->getMesh(0);
video::SMaterial material;
material.Lighting = false;
driver->setMaterial(material);
core::matrix4 matr; core::matrix4 matr;
...@@ -452,12 +446,12 @@ void CAnimatedMeshSceneNode::render() ...@@ -452,12 +446,12 @@ void CAnimatedMeshSceneNode::render()
{ {
for ( u32 ts = 0; ts != taglist->size(); ++ts ) for ( u32 ts = 0; ts != taglist->size(); ++ts )
{ {
(*taglist)[ts].setto ( matr ); (*taglist)[ts].setto(matr);
driver->setTransform(video::ETS_WORLD, matr ); driver->setTransform(video::ETS_WORLD, matr );
for ( u32 a = 0; a != arrowMesh->getMeshBufferCount(); ++a ) for ( u32 a = 0; a != arrowMesh->getMeshBufferCount(); ++a )
driver->drawMeshBuffer ( arrowMesh->getMeshBuffer ( a ) ); driver->drawMeshBuffer(arrowMesh->getMeshBuffer(a));
} }
} }
} }
...@@ -466,11 +460,10 @@ void CAnimatedMeshSceneNode::render() ...@@ -466,11 +460,10 @@ void CAnimatedMeshSceneNode::render()
// show mesh // show mesh
if ( DebugDataVisible & scene::EDS_MESH_WIRE_OVERLAY ) if ( DebugDataVisible & scene::EDS_MESH_WIRE_OVERLAY )
{ {
mat.Lighting = false; debug_mat.Lighting = false;
mat.Wireframe = true; debug_mat.Wireframe = true;
mat.ZBuffer = true; debug_mat.ZBuffer = true;
driver->setMaterial(mat); driver->setMaterial(debug_mat);
for (u32 g=0; g<m->getMeshBufferCount(); ++g) for (u32 g=0; g<m->getMeshBufferCount(); ++g)
{ {
...@@ -685,10 +678,10 @@ bool CAnimatedMeshSceneNode::setMD2Animation(EMD2_ANIMATION_TYPE anim) ...@@ -685,10 +678,10 @@ bool CAnimatedMeshSceneNode::setMD2Animation(EMD2_ANIMATION_TYPE anim)
if (!Mesh || Mesh->getMeshType() != EAMT_MD2) if (!Mesh || Mesh->getMeshType() != EAMT_MD2)
return false; return false;
IAnimatedMeshMD2* m = (IAnimatedMeshMD2*)Mesh; IAnimatedMeshMD2* md = (IAnimatedMeshMD2*)Mesh;
s32 begin, end, speed; s32 begin, end, speed;
m->getFrameLoop(anim, begin, end, speed); md->getFrameLoop(anim, begin, end, speed);
setAnimationSpeed( f32(speed) ); setAnimationSpeed( f32(speed) );
setFrameLoop(begin, end); setFrameLoop(begin, end);
...@@ -702,10 +695,10 @@ bool CAnimatedMeshSceneNode::setMD2Animation(const c8* animationName) ...@@ -702,10 +695,10 @@ bool CAnimatedMeshSceneNode::setMD2Animation(const c8* animationName)
if (!Mesh || Mesh->getMeshType() != EAMT_MD2) if (!Mesh || Mesh->getMeshType() != EAMT_MD2)
return false; return false;
IAnimatedMeshMD2* m = (IAnimatedMeshMD2*)Mesh; IAnimatedMeshMD2* md = (IAnimatedMeshMD2*)Mesh;
s32 begin, end, speed; s32 begin, end, speed;
if (!m->getFrameLoop(animationName, begin, end, speed)) if (!md->getFrameLoop(animationName, begin, end, speed))
return false; return false;
setAnimationSpeed( (f32)speed ); setAnimationSpeed( (f32)speed );
......
...@@ -141,7 +141,7 @@ void CMeshSceneNode::render() ...@@ -141,7 +141,7 @@ void CMeshSceneNode::render()
mat = Materials[g]; mat = Materials[g];
mat.MaterialType = video::EMT_TRANSPARENT_ADD_COLOR; mat.MaterialType = video::EMT_TRANSPARENT_ADD_COLOR;
driver->setMaterial(mat); driver->setMaterial(mat);
driver->drawMeshBuffer ( Mesh->getMeshBuffer(g) ); driver->drawMeshBuffer(Mesh->getMeshBuffer(g));
} }
renderMeshes = false; renderMeshes = false;
} }
...@@ -176,25 +176,20 @@ void CMeshSceneNode::render() ...@@ -176,25 +176,20 @@ void CMeshSceneNode::render()
// for debug purposes only: // for debug purposes only:
if ( DebugDataVisible && PassCount==1) if ( DebugDataVisible && PassCount==1)
{ {
mat.Lighting = false; video::SMaterial m;
driver->setMaterial(mat); m.Lighting = false;
driver->setMaterial(m);
if ( DebugDataVisible & scene::EDS_BBOX ) if ( DebugDataVisible & scene::EDS_BBOX )
{ {
video::SMaterial m;
m.Lighting = false;
driver->setMaterial(m);
driver->draw3DBox(Box, video::SColor(255,255,255,255)); driver->draw3DBox(Box, video::SColor(255,255,255,255));
} }
if ( DebugDataVisible & scene::EDS_BBOX_BUFFERS ) if ( DebugDataVisible & scene::EDS_BBOX_BUFFERS )
{ {
video::SMaterial m;
m.Lighting = false;
driver->setMaterial(m);
for (u32 g=0; g<Mesh->getMeshBufferCount(); ++g) for (u32 g=0; g<Mesh->getMeshBufferCount(); ++g)
{ {
driver->draw3DBox( driver->draw3DBox(
Mesh->getMeshBuffer(g)->getBoundingBox(), Mesh->getMeshBuffer(g)->getBoundingBox(),
video::SColor(255,190,128,128)); video::SColor(255,190,128,128));
} }
} }
...@@ -209,7 +204,7 @@ void CMeshSceneNode::render() ...@@ -209,7 +204,7 @@ void CMeshSceneNode::render()
{ {
arrow = SceneManager->getMesh ( "__debugnormal" ); arrow = SceneManager->getMesh ( "__debugnormal" );
} }
IMesh *mesh = arrow->getMesh ( 0 ); IMesh *mesh = arrow->getMesh(0);
// find a good scaling factor // find a good scaling factor
...@@ -231,9 +226,9 @@ void CMeshSceneNode::render() ...@@ -231,9 +226,9 @@ void CMeshSceneNode::render()
m2.setTranslation(v->Pos); m2.setTranslation(v->Pos);
m2*=AbsoluteTransformation; m2*=AbsoluteTransformation;
driver->setTransform(video::ETS_WORLD, m2 ); driver->setTransform(video::ETS_WORLD, m2);
for ( u32 a = 0; a != mesh->getMeshBufferCount(); ++a ) for (u32 a = 0; a != mesh->getMeshBufferCount(); ++a)
driver->drawMeshBuffer ( mesh->getMeshBuffer ( a ) ); driver->drawMeshBuffer(mesh->getMeshBuffer(a));
v = (const video::S3DVertex*) ( (u8*) v + vSize ); v = (const video::S3DVertex*) ( (u8*) v + vSize );
} }
...@@ -244,9 +239,8 @@ void CMeshSceneNode::render() ...@@ -244,9 +239,8 @@ void CMeshSceneNode::render()
// show mesh // show mesh
if ( DebugDataVisible & scene::EDS_MESH_WIRE_OVERLAY ) if ( DebugDataVisible & scene::EDS_MESH_WIRE_OVERLAY )
{ {
mat.Lighting = false; m.Wireframe = true;
mat.Wireframe = true; driver->setMaterial(m);
driver->setMaterial(mat);
for (u32 g=0; g<Mesh->getMeshBufferCount(); ++g) for (u32 g=0; g<Mesh->getMeshBufferCount(); ++g)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment