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:
authorBenoit Bolsee <benoit.bolsee@online.be>2009-04-29 14:06:38 +0400
committerBenoit Bolsee <benoit.bolsee@online.be>2009-04-29 14:06:38 +0400
commitf004c36e41023b8a4ffa386226589b19c92eb971 (patch)
tree17921d31c7d6587c2c03861ec4f9edaa21b1707b /source/gameengine/Rasterizer
parent2d78dcfb610381a5056eed5f59dd57aa50e444c3 (diff)
BGE: speed up mesh conversion by avoiding allocation/deallocation of material object on each face. The speed up is minor on optimized builds but considerable on less optimized builds, good for debugging large scene.
Diffstat (limited to 'source/gameengine/Rasterizer')
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp55
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.h13
2 files changed, 67 insertions, 1 deletions
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
index e8f451382b9..c10e4040a92 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
@@ -36,6 +36,61 @@
#include <config.h>
#endif
+void RAS_IPolyMaterial::Initialize(
+ const STR_String& texname,
+ const STR_String& matname,
+ int materialindex,
+ int tile,
+ int tilexrep,
+ int tileyrep,
+ int mode,
+ int transp,
+ bool alpha,
+ bool zsort,
+ int lightlayer)
+{
+ m_texturename = texname;
+ m_materialname = matname;
+ m_materialindex = materialindex;
+ m_tile = tile;
+ m_tilexrep = tilexrep;
+ m_tileyrep = tileyrep;
+ m_drawingmode = mode;
+ m_transp = transp;
+ m_alpha = alpha;
+ m_zsort = zsort;
+ m_lightlayer = lightlayer;
+ m_polymatid = m_newpolymatid++;
+ m_flag = 0;
+ m_multimode = 0;
+ m_shininess = 35.0;
+ m_specular.setValue(0.5,0.5,0.5);
+ m_specularity = 1.0;
+ m_diffuse.setValue(0.5,0.5,0.5);
+}
+
+RAS_IPolyMaterial::RAS_IPolyMaterial()
+ : m_texturename("__Dummy_Texture_Name__"),
+ m_materialname("__Dummy_Material_Name__"),
+ m_materialindex(0),
+ m_tile(0),
+ m_tilexrep(0),
+ m_tileyrep(0),
+ m_drawingmode (0),
+ m_transp(0),
+ m_alpha(false),
+ m_zsort(false),
+ m_lightlayer(0),
+ m_polymatid(0),
+ m_flag(0),
+ m_multimode(0)
+{
+ m_shininess = 35.0;
+ m_specular = MT_Vector3(0.5,0.5,0.5);
+ m_specularity = 1.0;
+ m_diffuse = MT_Vector3(0.5,0.5,0.5);
+}
+
RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
const STR_String& matname,
int materialindex,
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
index dcd8b53402e..35652f528b9 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
@@ -100,6 +100,7 @@ public:
SHADOW =8192
};
+ RAS_IPolyMaterial::RAS_IPolyMaterial();
RAS_IPolyMaterial(const STR_String& texname,
const STR_String& matname,
int materialindex,
@@ -111,6 +112,17 @@ public:
bool alpha,
bool zsort,
int lightlayer);
+ void Initialize(const STR_String& texname,
+ const STR_String& matname,
+ int materialindex,
+ int tile,
+ int tilexrep,
+ int tileyrep,
+ int mode,
+ int transp,
+ bool alpha,
+ bool zsort,
+ int lightlayer);
virtual ~RAS_IPolyMaterial() {};
/**
@@ -151,7 +163,6 @@ public:
virtual void GetMaterialRGBAColor(unsigned char *rgba) const;
virtual bool UsesLighting(RAS_IRasterizer *rasty) const;
virtual bool UsesObjectColor() const;
-
/*
* PreCalculate texture gen
*/