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:
authorKester Maddock <Christopher.Maddock.1@uni.massey.ac.nz>2005-01-16 09:02:06 +0300
committerKester Maddock <Christopher.Maddock.1@uni.massey.ac.nz>2005-01-16 09:02:06 +0300
commit3b91ea4309f47d937799382d988a6348e3bb2d7f (patch)
treed45b8087e755ae6b9781845d21898603c038f2a7 /source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
parent5fcf39d2a5db1d536e9fbfa52edb2bcdc40d8e29 (diff)
Unified KX_BlenderPolyMaterial & GPC_PolygonMaterial into KX_PolygonMaterial.
Make game engine materials use Zoffs in Materials. Added Python material hooks.
Diffstat (limited to 'source/gameengine/Rasterizer/RAS_MaterialBucket.cpp')
-rw-r--r--source/gameengine/Rasterizer/RAS_MaterialBucket.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
index f2dc7535010..a9934df1d02 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
@@ -169,12 +169,13 @@ RAS_MaterialBucket::T_MeshSlotList::iterator RAS_MaterialBucket::msEnd()
return m_meshSlots.end();
}
-int RAS_MaterialBucket::ActivateMaterial(const MT_Transform& cameratrans, RAS_IRasterizer* rasty,
- RAS_IRenderTools *rendertools)
+bool RAS_MaterialBucket::ActivateMaterial(const MT_Transform& cameratrans, RAS_IRasterizer* rasty,
+ RAS_IRenderTools *rendertools, int &drawmode)
{
rendertools->SetViewMat(cameratrans);
- rasty->SetMaterial(*m_material);
+ if (!rasty->SetMaterial(*m_material))
+ return false;
bool dolights = m_material->GetDrawingMode()&16;
@@ -187,8 +188,10 @@ int RAS_MaterialBucket::ActivateMaterial(const MT_Transform& cameratrans, RAS_IR
bool bUseLights = rendertools->ProcessLighting(m_material->GetLightLayer());
}
- return (rasty->GetDrawingMode() < RAS_IRasterizer::KX_SOLID ?
+ drawmode = (rasty->GetDrawingMode() < RAS_IRasterizer::KX_SOLID ?
1: (m_material->UsesTriangles() ? 0 : 2));
+
+ return true;
}
void RAS_MaterialBucket::RenderMeshSlot(const MT_Transform& cameratrans, RAS_IRasterizer* rasty,
@@ -272,12 +275,13 @@ void RAS_MaterialBucket::Render(const MT_Transform& cameratrans,
rendertools->SetClientObject((*m_meshSlots.begin()).m_clientObj);
}
- int drawmode = ActivateMaterial(cameratrans, rasty, rendertools);
+ int drawmode;
for (T_MeshSlotList::const_iterator it = m_meshSlots.begin();
! (it == m_meshSlots.end()); ++it)
{
- RenderMeshSlot(cameratrans, rasty, rendertools, *it, drawmode);
+ while (ActivateMaterial(cameratrans, rasty, rendertools, drawmode))
+ RenderMeshSlot(cameratrans, rasty, rendertools, *it, drawmode);
}
}