Exemplo n.º 1
0
void Apex::Init(PxPhysics* physics, PxCooking* cooking, PxScene* scene)
{
    mErrorCallback = ::new UserErrorCallback("ApexErrors.txt", "a",true, true);
    renderer = SampleRenderer::Renderer;
    m_renderResourceManager = new SampleApexRenderResourceManager(*renderer);

    NxApexSDKDesc     apexDesc;
    NxApexCreateError  errorCode;

    apexDesc.physXSDK = physics;
    apexDesc.cooking = cooking;
    apexDesc.outputStream = mErrorCallback;
    apexDesc.renderResourceManager = m_renderResourceManager;
    if(!apexDesc.isValid())
    {
        return;
    }
    initialized = true;
    gApexSDK = NxCreateApexSDK(apexDesc, &errorCode);
    PX_ASSERT(gApexSDK);
    // Create the APEX scene
    NxApexSceneDesc        apexSceneDesc;
    apexSceneDesc.scene = scene;
    if (!apexSceneDesc.isValid())
	{
		return;
	}
    gApexScene = gApexSDK->createScene(apexSceneDesc);
    if (!gApexScene)
	{
		return;
	}
    
}
Exemplo n.º 2
0
bool Apex::Init(ID3D11Device* dev, ID3D11DeviceContext* devcon)
{
    if(!InitPhysX())
        return false;


	mDev = dev;
	mDevcon = devcon;
    // Init Apex
    static PxDefaultErrorCallback gDefaultErrorCallback;
    ZeusResourceCallback* rcallback = new ZeusResourceCallback();
    NxApexSDKDesc   apexDesc;
    apexDesc.outputStream = &gDefaultErrorCallback;
    apexDesc.resourceCallback = rcallback;
    apexDesc.physXSDK = mPhysics;
    apexDesc.cooking = mCooking;
    
    m_renderResourceManager = new ZeusRenderResourceManager(dev,devcon);
    apexDesc.renderResourceManager = m_renderResourceManager;

    if(apexDesc.isValid())
        gApexSDK = NxCreateApexSDK(apexDesc);
    else
        return false;
   
    if(!gApexSDK)
        return false;
    
 //   NxApexSceneDesc apexSceneDesc;
 //   // Create the APEX scene...
 //   
 //   apexSceneDesc.scene = mScene[mCurrentScene];
	//
 //   if(apexSceneDesc.isValid())
 //       gApexScene[mCurrentScene] = gApexSDK->createScene(apexSceneDesc);
 //   else
 //       return false;

 //   if(!gApexScene[mCurrentScene])
 //       return false;

	//gApexScene[mCurrentScene]->setLODResourceBudget(10000.f);

	//static const physx::PxU32 viewIDlookAtRightHand = gApexScene[mCurrentScene]->allocViewMatrix(physx::apex::ViewMatrixType::LOOK_AT_LH);
	//static const physx::PxU32 projIDperspectiveCubicRightHand = gApexScene[mCurrentScene]->allocProjMatrix(physx::apex::ProjMatrixType::USER_CUSTOMIZED);

	//gApexScene[mCurrentScene]->setUseViewProjMatrix(viewIDlookAtRightHand, projIDperspectiveCubicRightHand);

    return true;
}