Changeset View
Changeset View
Standalone View
Standalone View
source/gameengine/Ketsji/KX_BlenderMaterial.cpp
| Show First 20 Lines • Show All 88 Lines • ▼ Show 20 Lines | RAS_IPolyMaterial::Initialize( | ||||
| data->tileyrep[0], | data->tileyrep[0], | ||||
| data->alphablend, | data->alphablend, | ||||
| ((data->ras_mode &ALPHA)!=0), | ((data->ras_mode &ALPHA)!=0), | ||||
| ((data->ras_mode &ZSORT)!=0), | ((data->ras_mode &ZSORT)!=0), | ||||
| ((data->ras_mode &USE_LIGHT)!=0), | ((data->ras_mode &USE_LIGHT)!=0), | ||||
| ((data->ras_mode &TEX)), | ((data->ras_mode &TEX)), | ||||
| game | game | ||||
| ); | ); | ||||
| Material *ma = data->material; | |||||
| // Save material data to restore on exit | |||||
| mSavedData.r = ma->r; | |||||
| mSavedData.g = ma->g; | |||||
| mSavedData.b = ma->b; | |||||
| mSavedData.a = ma->alpha; | |||||
| mSavedData.specr = ma->specr; | |||||
| mSavedData.specg = ma->specg; | |||||
| mSavedData.specb = ma->specb; | |||||
| mSavedData.spec = ma->spec; | |||||
| mSavedData.ref = ma->ref; | |||||
| mSavedData.hardness = ma->har; | |||||
| mSavedData.emit = ma->emit; | |||||
| mMaterial = data; | mMaterial = data; | ||||
| mShader = 0; | mShader = 0; | ||||
| mBlenderShader = 0; | mBlenderShader = 0; | ||||
| mScene = scene; | mScene = scene; | ||||
| mUserDefBlend = 0; | mUserDefBlend = 0; | ||||
| mModified = 0; | mModified = 0; | ||||
| mConstructed = false; | mConstructed = false; | ||||
| mPass = 0; | mPass = 0; | ||||
| Show All 14 Lines | void KX_BlenderMaterial::Initialize( | ||||
| for (int i=0; i<BL_Texture::GetMaxUnits(); i++) { | for (int i=0; i<BL_Texture::GetMaxUnits(); i++) { | ||||
| m_multimode += (mMaterial->flag[i] + mMaterial->blend_mode[i]); | m_multimode += (mMaterial->flag[i] + mMaterial->blend_mode[i]); | ||||
| } | } | ||||
| m_multimode += mMaterial->IdMode+ (mMaterial->ras_mode & ~(USE_LIGHT)); | m_multimode += mMaterial->IdMode+ (mMaterial->ras_mode & ~(USE_LIGHT)); | ||||
| } | } | ||||
| KX_BlenderMaterial::~KX_BlenderMaterial() | KX_BlenderMaterial::~KX_BlenderMaterial() | ||||
| { | { | ||||
| Material *ma = mMaterial->material; | |||||
| // Restore Blender material data | |||||
| ma->r = mSavedData.r; | |||||
| ma->g = mSavedData.g; | |||||
| ma->b = mSavedData.b; | |||||
| ma->alpha = mSavedData.a; | |||||
| ma->specr = mSavedData.specr; | |||||
| ma->specg = mSavedData.specg; | |||||
| ma->specb = mSavedData.specb; | |||||
| ma->spec = mSavedData.spec; | |||||
| ma->ref = mSavedData.ref; | |||||
| ma->har = mSavedData.hardness; | |||||
| ma->emit = mSavedData.emit; | |||||
| // cleanup work | // cleanup work | ||||
| if (mConstructed) | if (mConstructed) | ||||
| // clean only if material was actually used | // clean only if material was actually used | ||||
| OnExit(); | OnExit(); | ||||
| } | } | ||||
| MTFace* KX_BlenderMaterial::GetMTFace() const | MTFace* KX_BlenderMaterial::GetMTFace() const | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 653 Lines • ▼ Show 20 Lines | void KX_BlenderMaterial::UpdateIPO( | ||||
| MT_Scalar hard, | MT_Scalar hard, | ||||
| MT_Scalar spec, | MT_Scalar spec, | ||||
| MT_Scalar ref, | MT_Scalar ref, | ||||
| MT_Scalar emit, | MT_Scalar emit, | ||||
| MT_Scalar alpha | MT_Scalar alpha | ||||
| ) | ) | ||||
| { | { | ||||
| // only works one deep now | // only works one deep now | ||||
| mMaterial->speccolor[0] = (float)(specrgb)[0]; | |||||
| mMaterial->speccolor[1] = (float)(specrgb)[1]; | // GLSL Multitexture Input | ||||
| mMaterial->speccolor[2] = (float)(specrgb)[2]; | mMaterial->material->specr = mMaterial->speccolor[0] = (float)(specrgb)[0]; | ||||
| mMaterial->matcolor[0] = (float)(rgba[0]); | mMaterial->material->specg = mMaterial->speccolor[1] = (float)(specrgb)[1]; | ||||
| mMaterial->matcolor[1] = (float)(rgba[1]); | mMaterial->material->specb = mMaterial->speccolor[2] = (float)(specrgb)[2]; | ||||
| mMaterial->matcolor[2] = (float)(rgba[2]); | mMaterial->material->r = mMaterial->matcolor[0] = (float)(rgba[0]); | ||||
| mMaterial->alpha = (float)(alpha); | mMaterial->material->g = mMaterial->matcolor[1] = (float)(rgba[1]); | ||||
| mMaterial->hard = (float)(hard); | mMaterial->material->b = mMaterial->matcolor[2] = (float)(rgba[2]); | ||||
| mMaterial->emit = (float)(emit); | mMaterial->material->alpha = mMaterial->alpha = (float)(rgba[3]); | ||||
| mMaterial->spec_f = (float)(spec); | mMaterial->material->har = mMaterial->hard = (float)(hard); | ||||
| mMaterial->ref = (float)(ref); | mMaterial->material->emit = mMaterial->emit = (float)(emit); | ||||
| mMaterial->material->spec = mMaterial->spec_f = (float)(spec); | |||||
| mMaterial->material->ref = mMaterial->ref = (float)(ref); | |||||
| } | } | ||||
| void KX_BlenderMaterial::Replace_IScene(SCA_IScene *val) | void KX_BlenderMaterial::Replace_IScene(SCA_IScene *val) | ||||
| { | { | ||||
| mScene= static_cast<KX_Scene *>(val); | mScene= static_cast<KX_Scene *>(val); | ||||
| OnConstruction(); | OnConstruction(); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 200 Lines • Show Last 20 Lines | |||||