Merged 15170:15635 from trunk (no conflicts or even merges)
[blender.git] / source / gameengine / Rasterizer / RAS_IPolygonMaterial.cpp
index b5882bd48c4b504263cfdb5606917f89afabde5e..cb10ba6bf379b9a1eddd2db5b91c41722d339b64 100644 (file)
@@ -1,14 +1,11 @@
 /**
  * $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
 #include "RAS_IPolygonMaterial.h"
+#include "RAS_IRasterizer.h"
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
@@ -59,7 +57,6 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
                m_bIsTriangle(bIsTriangle),
                m_polymatid(m_newpolymatid++),
                m_flag(0),
-               m_enabled(0),
                m_multimode(0)
 {
        m_shininess = 35.0;
@@ -151,10 +148,20 @@ const unsigned int        RAS_IPolyMaterial::GetFlag() const
 {
        return m_flag;
 }
-const unsigned int     RAS_IPolyMaterial::GetEnabled() const
+
+bool RAS_IPolyMaterial::UsesLighting(RAS_IRasterizer *rasty) const
 {
-       return m_enabled;
-}
+       bool dolights = false;
 
+       if(m_flag & RAS_BLENDERMAT)
+               dolights = (m_flag &RAS_MULTILIGHT)!=0;
+       else if(rasty->GetDrawingMode() < RAS_IRasterizer::KX_SOLID);
+       else if(rasty->GetDrawingMode() == RAS_IRasterizer::KX_SHADOW);
+       else
+               dolights = (m_drawingmode & 16)!=0;
+       
+       return dolights;
+}
 
 unsigned int RAS_IPolyMaterial::m_newpolymatid = 0;
+