void RenderWin32DX9Imp::s_destroy( void* pUserContext ) {
    ::OutputDebugStr( L"RenderWin32DX9Imp::s_destroy()\n" );

    RenderWin32DX9Imp * const render = (RenderWin32DX9Imp*) pUserContext;

    render->eventListener_->destroy();
    render->getBufferFactory()->destroy();

    render->setRenderState( RenderStatePtr( new RenderStateNull() ) );
    render->setBufferFactory( RenderBufferFactoryDX9Ptr( new RenderBufferFactoryDX9Null() ) );
}
Esempio n. 2
0
Light::Light()
    : m_RenderStateProxy( new RenderState )
{
    m_RenderStateProxy->m_Ambient = {.2f, .2f, .2f, 1.0f};  // ambient light
    m_RenderStateProxy->m_Diffuse = {.7f, .7f, .7f, 1.0f};  // diffuse light
    m_RenderStateProxy->m_Specular= {  1,   1,   1,    1};  // specular light

    m_RenderStateProxy->m_Index = sLightId;
    sLightId++;

    m_RenderState = RenderStatePtr( m_RenderStateProxy );
}
HRESULT RenderWin32DX9Imp::s_init( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ) {
    ::OutputDebugStr( L"RenderWin32DX9Imp::s_init()\n" );

    RenderWin32DX9Imp * const render = (RenderWin32DX9Imp*) pUserContext;
    render->setBufferFactory( RenderBufferFactoryDX9Ptr( new RenderBufferFactoryDX9Imp( pd3dDevice ) ) );
    render->setRenderState( RenderStatePtr( new RenderStateDX9Imp( pd3dDevice ) ) );

    render->getBufferFactory()->init();
    render->eventListener_->init();

    return S_OK;
}
Esempio n. 4
0
Scene::Scene(class Platform *platform) {
	
	_sceneGraph.Scene(this);
	_platform = platform;
	input::Init(platform);
	utils::Init(platform);
	resource::Init(this);
	freetype::Init();
	
	#ifdef ENABLE_PHYSICS
	physics::Init(this);
	#endif
	
	creation::Init(this);
	RenderState *renderState = new RenderState();
	_renderPipeline = RenderPipelinePtr(new RenderPipeline(renderState));
	_renderState = RenderStatePtr(renderState);
}
RenderWin32DX9Imp::RenderWin32DX9Imp()
    : bBackbufferLockable_( false )
    , bufferFactory_( RenderBufferFactoryDX9Ptr( new RenderBufferFactoryDX9Null() ) )
    , renderState_( RenderStatePtr( new RenderStateNull() ) )
{
    eventListener_ =  &nullEventListener_;

    DXUTInit( false, false, NULL ); // Parse the command line, show msgboxes on error, no extra command line params
    DXUTSetCursorSettings( true, true );
    DXUTSetCallbackD3D9DeviceAcceptable( &RenderWin32DX9Imp::IsD3D9DeviceAcceptable, this );
    DXUTSetCallbackDeviceChanging( &RenderWin32DX9Imp::ModifyDeviceSettings, this );
    //DXUTSetCallbackMsgProc( ApplicationWin32Imp::MsgProc );

    DXUTSetCallbackD3D9DeviceCreated( &RenderWin32DX9Imp::s_init, this );
    DXUTSetCallbackD3D9DeviceReset( &RenderWin32DX9Imp::s_displayReset, this );
    DXUTSetCallbackD3D9FrameRender( &RenderWin32DX9Imp::s_display, this );
    DXUTSetCallbackD3D9DeviceLost( &RenderWin32DX9Imp::s_displayLost, this );
    DXUTSetCallbackD3D9DeviceDestroyed( &RenderWin32DX9Imp::s_destroy, this );
}