diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-11-11 05:54:30 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-11-11 05:54:30 +0400 |
commit | 83de5cb30831328548502126dff84ffdb72544f2 (patch) | |
tree | 56d57b3a1f457426f3118e4ee93a9fd2973bece6 /source/gameengine/Ketsji | |
parent | dfc55421dfed71b3b9cc074d1d3919bd02168ad7 (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.cpp | 34 | ||||
-rw-r--r-- | source/gameengine/Ketsji/BL_Material.h | 10 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_BlenderMaterial.cpp | 2 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_BlenderMaterial.h | 2 |
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; |