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() ) ); }
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; }
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 ); }