This commit is contained in:
Campbell Barton 2009-07-31 23:42:22 +00:00
commit 0b3fd395ef
23 changed files with 41 additions and 85 deletions

@ -53,7 +53,7 @@ static void do_luma_matte(bNode *node, float *out, float *in)
if(in[0]>c->t1) {
alpha=1.0;
}
else if(in[1]<c->t2){
else if(in[0]<c->t2){
alpha=0.0;
}
else {/*blend */
@ -99,7 +99,7 @@ static void node_composit_init_luma_matte(bNode *node)
{
NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma");
node->storage=c;
c->t1= 0.0f;
c->t1= 1.0f;
c->t2= 0.0f;
};

@ -406,7 +406,6 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, int alw
sceneconverter->ConvertScene(
startscene,
dictionaryobject,
keyboarddevice,
rendertools,
canvas);
ketsjiengine->AddScene(startscene);
@ -718,7 +717,6 @@ extern "C" void StartKetsjiShellSimulation(struct wmWindow *win,
sceneconverter->ConvertScene(
startscene,
dictionaryobject,
keyboarddevice,
rendertools,
canvas);
ketsjiengine->AddScene(startscene);

@ -323,8 +323,7 @@ bool ConvertMaterial(
MTFace* tface,
const char *tfaceName,
MFace* mface,
MCol* mmcol,
int lightlayer,
MCol* mmcol,
MTF_localLayer *layers,
bool glslmat)
{
@ -720,12 +719,12 @@ bool ConvertMaterial(
return true;
}
RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* rendertools, KX_Scene* scene, KX_BlenderSceneConverter *converter)
/* blenderobj can be NULL, make sure its checked for */
RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, KX_Scene* scene, KX_BlenderSceneConverter *converter)
{
RAS_MeshObject *meshobj;
bool skinMesh = false;
int lightlayer = blenderobj->lay;
int lightlayer = blenderobj ? blenderobj->lay:(1<<20)-1; // all layers if no object.
if ((meshobj = converter->FindGameMesh(mesh/*, ob->lay*/)) != NULL)
return meshobj;
@ -748,7 +747,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
}
// Determine if we need to make a skinned mesh
if (mesh->dvert || mesh->key || ((blenderobj->gameflag & OB_SOFT_BODY) != 0) || BL_ModifierDeformer::HasCompatibleDeformer(blenderobj))
if (blenderobj && (mesh->dvert || mesh->key || ((blenderobj->gameflag & OB_SOFT_BODY) != 0) || BL_ModifierDeformer::HasCompatibleDeformer(blenderobj)))
{
meshobj = new BL_SkinMeshObject(mesh);
skinMesh = true;
@ -843,9 +842,8 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
tan3 = tangent[f*4 + 3];
}
/* get material */
ma = give_current_material(blenderobj, mface->mat_nr+1);
ma = give_current_material(blenderobj, mface->mat_nr+1);
{
bool visible = true;
bool twoside = false;
@ -859,7 +857,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
if (!bl_mat)
bl_mat = new BL_Material();
ConvertMaterial(bl_mat, ma, tface, tfaceName, mface, mcol,
lightlayer, layers, converter->GetGLSLMaterials());
layers, converter->GetGLSLMaterials());
visible = ((bl_mat->ras_mode & POLY_VIS)!=0);
collider = ((bl_mat->ras_mode & COLLIDER)!=0);
@ -882,7 +880,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
if (kx_blmat == NULL)
kx_blmat = new KX_BlenderMaterial();
kx_blmat->Initialize(scene, bl_mat, skinMesh, lightlayer);
kx_blmat->Initialize(scene, bl_mat, skinMesh);
polymat = static_cast<RAS_IPolyMaterial*>(kx_blmat);
}
else {
@ -1066,8 +1064,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blenderobject,
KX_Scene *kxscene)
static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blenderobject)
{
PHY_MaterialProps *materialProps = new PHY_MaterialProps;
@ -1100,8 +1097,7 @@ static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blender
return materialProps;
}
static PHY_ShapeProps *CreateShapePropsFromBlenderObject(struct Object* blenderobject,
KX_Scene *kxscene)
static PHY_ShapeProps *CreateShapePropsFromBlenderObject(struct Object* blenderobject)
{
PHY_ShapeProps *shapeProps = new PHY_ShapeProps;
@ -1396,12 +1392,11 @@ void BL_CreatePhysicsObjectNew(KX_GameObject* gameobj,
PHY_ShapeProps* shapeprops =
CreateShapePropsFromBlenderObject(blenderobject,
kxscene);
CreateShapePropsFromBlenderObject(blenderobject);
PHY_MaterialProps* smmaterial =
CreateMaterialFromBlenderObject(blenderobject, kxscene);
CreateMaterialFromBlenderObject(blenderobject);
KX_ObjectProperties objprop;
objprop.m_lockXaxis = (blenderobject->gameflag2 & OB_LOCK_RIGID_BODY_X_AXIS) !=0;
@ -1719,7 +1714,7 @@ static KX_GameObject *gameobject_from_blenderobject(
Mesh* mesh = static_cast<Mesh*>(ob->data);
float center[3], extents[3];
float radius = my_boundbox_mesh((Mesh*) ob->data, center, extents);
RAS_MeshObject* meshobj = BL_ConvertMesh(mesh,ob,rendertools,kxscene,converter);
RAS_MeshObject* meshobj = BL_ConvertMesh(mesh,ob,kxscene,converter);
// needed for python scripting
kxscene->GetLogicManager()->RegisterMeshName(meshobj->GetName(),meshobj);
@ -1902,7 +1897,6 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
KX_KetsjiEngine* ketsjiEngine,
e_PhysicsEngine physics_engine,
PyObject* pythondictionary,
SCA_IInputDevice* keydev,
RAS_IRenderTools* rendertools,
RAS_ICanvas* canvas,
KX_BlenderSceneConverter* converter,
@ -2671,7 +2665,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
struct Object* blenderobj = converter->FindBlenderObject(gameobj);
int layerMask = (groupobj.find(blenderobj) == groupobj.end()) ? activeLayerBitInfo : 0;
bool isInActiveLayer = (blenderobj->lay & layerMask)!=0;
BL_ConvertSensors(blenderobj,gameobj,logicmgr,kxscene,ketsjiEngine,keydev,layerMask,isInActiveLayer,canvas,converter);
BL_ConvertSensors(blenderobj,gameobj,logicmgr,kxscene,ketsjiEngine,layerMask,isInActiveLayer,canvas,converter);
// set the init state to all objects
gameobj->SetInitState((blenderobj->init_state)?blenderobj->init_state:blenderobj->state);
}
@ -2709,4 +2703,3 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
RAS_BucketManager *bucketmanager = kxscene->GetBucketManager();
bucketmanager->OptimizeBuckets(distance);
}

@ -34,14 +34,13 @@
#include "KX_Python.h"
#include "KX_PhysicsEngineEnums.h"
class RAS_MeshObject* BL_ConvertMesh(struct Mesh* mesh,struct Object* lightobj,class RAS_IRenderTools* rendertools,class KX_Scene* scene, class KX_BlenderSceneConverter *converter);
class RAS_MeshObject* BL_ConvertMesh(struct Mesh* mesh,struct Object* lightobj,class KX_Scene* scene, class KX_BlenderSceneConverter *converter);
void BL_ConvertBlenderObjects(struct Main* maggie,
class KX_Scene* kxscene,
class KX_KetsjiEngine* ketsjiEngine,
e_PhysicsEngine physics_engine,
PyObject* pythondictionary,
class SCA_IInputDevice* keydev,
class RAS_IRenderTools* rendertools,
class RAS_ICanvas* canvas,
class KX_BlenderSceneConverter* sceneconverter,

@ -244,7 +244,6 @@ struct BlenderDebugDraw : public btIDebugDraw
void KX_BlenderSceneConverter::ConvertScene(class KX_Scene* destinationscene,
PyObject* dictobj,
class SCA_IInputDevice* keyinputdev,
class RAS_IRenderTools* rendertools,
class RAS_ICanvas* canvas)
{
@ -334,7 +333,6 @@ void KX_BlenderSceneConverter::ConvertScene(class KX_Scene* destinationscene,
m_ketsjiEngine,
physics_engine,
dictobj,
keyinputdev,
rendertools,
canvas,
this,

@ -94,7 +94,6 @@ public:
virtual void ConvertScene(
class KX_Scene* destinationscene,
PyObject* dictobj,
class SCA_IInputDevice* keyinputdev,
class RAS_IRenderTools* rendertools,
class RAS_ICanvas* canvas
);
@ -149,6 +148,9 @@ public:
virtual bool GetGLSLMaterials();
struct Scene* GetBlenderSceneForName(const STR_String& name);
struct Main* GetMain() { return m_maggie; };
};
#endif //__KX_BLENDERSCENECONVERTER_H

@ -629,7 +629,6 @@ void BL_ConvertActuators(char* maggiename,
tmpmesh = BL_ConvertMesh(
editobact->me,
blenderobject,
rendertools,
scene,
converter
);

@ -28,6 +28,7 @@
* Conversion of Blender data blocks to KX sensor system
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@ -94,7 +95,6 @@ void BL_ConvertSensors(struct Object* blenderobject,
SCA_LogicManager* logicmgr,
KX_Scene* kxscene,
KX_KetsjiEngine* kxengine,
SCA_IInputDevice* keydev,
int activeLayerBitInfo,
bool isInActiveLayer,
RAS_ICanvas* canvas,
@ -444,9 +444,8 @@ void BL_ConvertSensors(struct Object* blenderobject,
blendernearsensor->dist,
blendernearsensor->resetdist,
bFindMaterial,
nearpropertyname,kxscene,
physCtrl
);
nearpropertyname,
physCtrl);
}
break;
@ -648,8 +647,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
smallmargin,
largemargin,
bFindMaterial,
radarpropertyname,
kxscene);
radarpropertyname);
}

@ -34,7 +34,6 @@ void BL_ConvertSensors(struct Object* blenderobject,
class SCA_LogicManager* logicmgr,
class KX_Scene* kxscene,
class KX_KetsjiEngine* kxengine,
class SCA_IInputDevice* keydev,
int activeLayerBitInfo,
bool isInActiveLayer,
class RAS_ICanvas* canvas,

@ -543,13 +543,6 @@ CValue* CValue::FindIdentifier(const STR_String& identifiername)
#ifndef NO_EXP_PYTHON_EMBEDDING
static PyMethodDef CValueMethods[] =
{
//{ "new", CValue::PyMake , METH_VARARGS},
{ NULL,NULL} // Sentinel
};
PyAttributeDef CValue::Attributes[] = {
KX_PYATTRIBUTE_RO_FUNCTION("name", CValue, pyattr_get_name),
{ NULL } //Sentinel

@ -708,10 +708,8 @@ bool GPG_Application::startEngine(void)
loadGamePythonConfig(m_pyGlobalDictString, m_pyGlobalDictString_Length);
m_sceneconverter->ConvertScene(
startscenename,
startscene,
dictionaryobject,
m_keyboard,
m_rendertools,
m_canvas);
m_ketsjiengine->AddScene(startscene);

@ -59,8 +59,7 @@ KX_BlenderMaterial::KX_BlenderMaterial()
void KX_BlenderMaterial::Initialize(
KX_Scene *scene,
BL_Material *data,
bool skin,
int lightlayer)
bool skin)
{
RAS_IPolyMaterial::Initialize(
data->texname[0],
@ -72,8 +71,7 @@ void KX_BlenderMaterial::Initialize(
data->mode,
data->transp,
((data->ras_mode &ALPHA)!=0),
((data->ras_mode &ZSORT)!=0),
lightlayer
((data->ras_mode &ZSORT)!=0)
);
mMaterial = data;
mShader = 0;
@ -776,6 +774,7 @@ void KX_BlenderMaterial::UpdateIPO(
mMaterial->hard = (float)(hard);
mMaterial->emit = (float)(emit);
mMaterial->spec_f = (float)(spec);
mMaterial->ref = (float)(ref);
}

@ -27,8 +27,7 @@ public:
void Initialize(
class KX_Scene* scene,
BL_Material* mat,
bool skin,
int lightlayer
bool skin
);
virtual ~KX_BlenderMaterial();

@ -50,7 +50,6 @@ public:
virtual void ConvertScene(
class KX_Scene* destinationscene,
PyObject* dictobj,
class SCA_IInputDevice* keyinputdev,
class RAS_IRenderTools* rendertools,
class RAS_ICanvas* canvas)=0;

@ -1601,7 +1601,6 @@ KX_Scene* KX_KetsjiEngine::CreateScene(const STR_String& scenename)
m_sceneconverter->ConvertScene(tmpscene,
m_pythondictionary,
m_keyboarddevice,
m_rendertools,
m_canvas);

@ -47,14 +47,12 @@ KX_NearSensor::KX_NearSensor(SCA_EventManager* eventmgr,
float resetmargin,
bool bFindMaterial,
const STR_String& touchedpropname,
class KX_Scene* scene,
PHY_IPhysicsController* ctrl)
:KX_TouchSensor(eventmgr,
gameobj,
bFindMaterial,
false,
touchedpropname
/*, scene */),
touchedpropname),
m_Margin(margin),
m_ResetMargin(resetmargin)

@ -44,7 +44,7 @@ class KX_NearSensor : public KX_TouchSensor
protected:
float m_Margin;
float m_ResetMargin;
KX_Scene* m_scene;
KX_ClientObjectInfo* m_client_info;
public:
KX_NearSensor(class SCA_EventManager* eventmgr,
@ -53,7 +53,6 @@ public:
float resetmargin,
bool bFindMaterial,
const STR_String& touchedpropname,
class KX_Scene* scene,
PHY_IPhysicsController* ctrl);
/*
public:

@ -88,8 +88,7 @@ void KX_PolygonMaterial::Initialize(
mode,
transp,
alpha,
zsort,
lightlayer);
zsort);
m_tface = tface;
m_mcol = mcol;
m_material = ma;

@ -2140,3 +2140,6 @@ void resetGamePythonPath()
{
gp_GamePythonPathOrig[0] = '\0';
}

@ -48,8 +48,7 @@ KX_RadarSensor::KX_RadarSensor(SCA_EventManager* eventmgr,
double margin,
double resetmargin,
bool bFindMaterial,
const STR_String& touchedpropname,
class KX_Scene* kxscene)
const STR_String& touchedpropname)
: KX_NearSensor(
eventmgr,
@ -59,7 +58,6 @@ KX_RadarSensor::KX_RadarSensor(SCA_EventManager* eventmgr,
resetmargin,
bFindMaterial,
touchedpropname,
kxscene,
physCtrl),
m_coneradius(coneradius),

@ -69,8 +69,7 @@ public:
double margin,
double resetmargin,
bool bFindMaterial,
const STR_String& touchedpropname,
class KX_Scene* kxscene);
const STR_String& touchedpropname);
KX_RadarSensor();
virtual ~KX_RadarSensor();
virtual void SynchronizeTransform();

@ -46,8 +46,7 @@ void RAS_IPolyMaterial::Initialize(
int mode,
int transp,
bool alpha,
bool zsort,
int lightlayer)
bool zsort)
{
m_texturename = texname;
m_materialname = matname;
@ -59,7 +58,6 @@ void RAS_IPolyMaterial::Initialize(
m_transp = transp;
m_alpha = alpha;
m_zsort = zsort;
//m_lightlayer = lightlayer;
m_polymatid = m_newpolymatid++;
m_flag = 0;
m_multimode = 0;
@ -80,7 +78,6 @@ RAS_IPolyMaterial::RAS_IPolyMaterial()
m_transp(0),
m_alpha(false),
m_zsort(false),
//m_lightlayer(0),
m_polymatid(0),
m_flag(0),
m_multimode(0)
@ -100,8 +97,7 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
int mode,
int transp,
bool alpha,
bool zsort,
int lightlayer)
bool zsort)
: m_texturename(texname),
m_materialname(matname),
m_materialindex(materialindex),
@ -112,7 +108,6 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
m_transp(transp),
m_alpha(alpha),
m_zsort(zsort),
//m_lightlayer(lightlayer),
m_polymatid(m_newpolymatid++),
m_flag(0),
m_multimode(0)
@ -172,11 +167,6 @@ bool RAS_IPolyMaterial::Less(const RAS_IPolyMaterial& rhs) const
return m_polymatid < rhs.m_polymatid;
}
//int RAS_IPolyMaterial::GetLightLayer() const
//{
// return m_lightlayer;
//}
bool RAS_IPolyMaterial::IsAlpha() const
{
return m_alpha || m_zsort;

@ -73,7 +73,6 @@ protected:
int m_transp;
bool m_alpha;
bool m_zsort;
//int m_lightlayer;
int m_materialindex;
unsigned int m_polymatid;
@ -110,8 +109,7 @@ public:
int mode,
int transp,
bool alpha,
bool zsort,
int lightlayer);
bool zsort);
void Initialize(const STR_String& texname,
const STR_String& matname,
int materialindex,
@ -121,8 +119,7 @@ public:
int mode,
int transp,
bool alpha,
bool zsort,
int lightlayer);
bool zsort);
virtual ~RAS_IPolyMaterial() {};
/**