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:
authorCampbell Barton <ideasman42@gmail.com>2012-11-11 05:54:30 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-11-11 05:54:30 +0400
commit83de5cb30831328548502126dff84ffdb72544f2 (patch)
tree56d57b3a1f457426f3118e4ee93a9fd2973bece6 /source/gameengine/Ketsji
parentdfc55421dfed71b3b9cc074d1d3919bd02168ad7 (diff)
bge mesh conversion speedup, avoid calling ConvertMaterial() on every face.
now do per material bucket.
Diffstat (limited to 'source/gameengine/Ketsji')
-rw-r--r--source/gameengine/Ketsji/BL_Material.cpp34
-rw-r--r--source/gameengine/Ketsji/BL_Material.h10
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.h2
4 files changed, 6 insertions, 42 deletions
diff --git a/source/gameengine/Ketsji/BL_Material.cpp b/source/gameengine/Ketsji/BL_Material.cpp
index a7d89517a08..0954aa0f7ab 100644
--- a/source/gameengine/Ketsji/BL_Material.cpp
+++ b/source/gameengine/Ketsji/BL_Material.cpp
@@ -63,11 +63,6 @@ void BL_Material::Initialize()
share = false;
int i;
- for (i=0; i<4; i++)
- {
- uv[i] = MT_Point2(0.f,1.f);
- uv2[i] = MT_Point2(0.f, 1.f);
- }
for (i=0; i<MAXTEX; i++) // :(
{
@@ -95,40 +90,15 @@ void BL_Material::Initialize()
}
}
-void BL_Material::SetConversionUV(const STR_String& name, MT_Point2 *nuv)
+void BL_Material::SetUVLayerName(const STR_String& name)
{
uvName = name;
- uv[0] = *nuv++;
- uv[1] = *nuv++;
- uv[2] = *nuv++;
- uv[3] = *nuv;
-}
-
-void BL_Material::GetConversionUV(MT_Point2 *nuv)
-{
- *nuv++ = uv[0];
- *nuv++ = uv[1];
- *nuv++ = uv[2];
- *nuv = uv[3];
}
-void BL_Material::SetConversionUV2(const STR_String& name, MT_Point2 *nuv)
+void BL_Material::SetUVLayerName2(const STR_String& name)
{
uv2Name = name;
- uv2[0] = *nuv++;
- uv2[1] = *nuv++;
- uv2[2] = *nuv++;
- uv2[3] = *nuv;
}
-void BL_Material::GetConversionUV2(MT_Point2 *nuv)
-{
- *nuv++ = uv2[0];
- *nuv++ = uv2[1];
- *nuv++ = uv2[2];
- *nuv = uv2[3];
-}
-
-
void BL_Material::SetSharedMaterial(bool v)
{
if ((v && num_users == -1) || num_users > 1 )
diff --git a/source/gameengine/Ketsji/BL_Material.h b/source/gameengine/Ketsji/BL_Material.h
index 082e265f387..ef180ed2126 100644
--- a/source/gameengine/Ketsji/BL_Material.h
+++ b/source/gameengine/Ketsji/BL_Material.h
@@ -89,17 +89,11 @@ public:
EnvMap* cubemap[MAXTEX];
unsigned int m_mcol; /* for text color (only) */
- MT_Point2 uv[4];
- MT_Point2 uv2[4];
-
STR_String uvName;
STR_String uv2Name;
- void SetConversionUV(const STR_String& name, MT_Point2 *uv);
- void GetConversionUV(MT_Point2 *uv);
-
- void SetConversionUV2(const STR_String& name, MT_Point2 *uv);
- void GetConversionUV2(MT_Point2 *uv);
+ void SetUVLayerName(const STR_String &name);
+ void SetUVLayerName2(const STR_String &name);
void SetSharedMaterial(bool v);
bool IsShared();
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
index cb995c3f738..88e26fd9a55 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
@@ -138,7 +138,7 @@ void KX_BlenderMaterial::GetMaterialRGBAColor(unsigned char *rgba) const
RAS_IPolyMaterial::GetMaterialRGBAColor(rgba);
}
-bool KX_BlenderMaterial::IsMaterial(BL_Material *bl_mat) const
+bool KX_BlenderMaterial::IsMaterial(const BL_Material *bl_mat) const
{
return (mMaterial == bl_mat);
}
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.h b/source/gameengine/Ketsji/KX_BlenderMaterial.h
index c38eb2a6fd0..7bc9c7c3863 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.h
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.h
@@ -77,7 +77,7 @@ public:
)const;
/* mMaterial is private, but need this for conversion */
- bool IsMaterial(BL_Material *bl_mat) const;
+ bool IsMaterial(const BL_Material *bl_mat) const;
Material* GetBlenderMaterial() const;
MTFace* GetMTFace(void) const;
unsigned int* GetMCol(void) const;