Advertisement
Guest User

Untitled

a guest
Jul 27th, 2010
575
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include "LightArea.h"
  2.  
  3. LightArea::LightArea(ShadowmapSize size)
  4. {
  5.     LPDIRECT3DDEVICE9 device = static_cast<D3DRenderSystem*>(EngineRoot::GetSingleton()->GetRenderSystem())->GetD3DDevice();
  6.  
  7.     int baseSize = 2 << (int)size;
  8.     LightAreaSize = Vector2(baseSize, baseSize);
  9.     device->CreateTexture(baseSize, baseSize, 1, D3DUSAGE_RENDERTARGET, D3DFMT_X8B8G8R8, D3DPOOL_DEFAULT, &RenderTarget, NULL);
  10.     D3DXCreateSprite(static_cast<D3DRenderSystem*>(EngineRoot::GetSingleton()->GetRenderSystem())->GetD3DDevice(), &quadRender);
  11. }
  12.  
  13. Vector2 LightArea::ToRelativePosition(Vector2 worldPosition)
  14. {
  15.     return worldPosition - (LightPosition - LightAreaSize * 0.5f);
  16. }
  17.  
  18. void LightArea::BeginDrawingShadowCasters()
  19. {
  20.     LPDIRECT3DDEVICE9 device = static_cast<D3DRenderSystem*>(EngineRoot::GetSingleton()->GetRenderSystem())->GetD3DDevice();
  21.     device->GetRenderTarget(0, &originalRenderTarget);
  22.  
  23.     LPDIRECT3DSURFACE9 rtSurface;
  24.     RenderTarget->GetSurfaceLevel(0, &rtSurface);
  25.  
  26.     device->SetRenderTarget(0, rtSurface);
  27.     device->Clear(0, 0, D3DCLEAR_TARGET, D3DCOLOR_RGBA(255, 255, 255, 0), 0, 1);
  28.     device->BeginScene();
  29.  
  30.     quadRender->Begin(D3DXSPRITE_ALPHABLEND);
  31.     //graphicsDevice.SetRenderTarget(RenderTarget);
  32.     //graphicsDevice.Clear(Color.Transparent);
  33. }
  34.  
  35. void LightArea::EndDrawingShadowCasters()
  36. {
  37.     LPDIRECT3DDEVICE9 device = static_cast<D3DRenderSystem*>(EngineRoot::GetSingleton()->GetRenderSystem())->GetD3DDevice();
  38.  
  39.     quadRender->End();
  40.     device->EndScene();
  41.     device->SetRenderTarget(0, originalRenderTarget);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement