Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "LightArea.h"
- LightArea::LightArea(ShadowmapSize size)
- {
- LPDIRECT3DDEVICE9 device = static_cast<D3DRenderSystem*>(EngineRoot::GetSingleton()->GetRenderSystem())->GetD3DDevice();
- int baseSize = 2 << (int)size;
- LightAreaSize = Vector2(baseSize, baseSize);
- device->CreateTexture(baseSize, baseSize, 1, D3DUSAGE_RENDERTARGET, D3DFMT_X8B8G8R8, D3DPOOL_DEFAULT, &RenderTarget, NULL);
- D3DXCreateSprite(static_cast<D3DRenderSystem*>(EngineRoot::GetSingleton()->GetRenderSystem())->GetD3DDevice(), &quadRender);
- }
- Vector2 LightArea::ToRelativePosition(Vector2 worldPosition)
- {
- return worldPosition - (LightPosition - LightAreaSize * 0.5f);
- }
- void LightArea::BeginDrawingShadowCasters()
- {
- LPDIRECT3DDEVICE9 device = static_cast<D3DRenderSystem*>(EngineRoot::GetSingleton()->GetRenderSystem())->GetD3DDevice();
- device->GetRenderTarget(0, &originalRenderTarget);
- LPDIRECT3DSURFACE9 rtSurface;
- RenderTarget->GetSurfaceLevel(0, &rtSurface);
- device->SetRenderTarget(0, rtSurface);
- device->Clear(0, 0, D3DCLEAR_TARGET, D3DCOLOR_RGBA(255, 255, 255, 0), 0, 1);
- device->BeginScene();
- quadRender->Begin(D3DXSPRITE_ALPHABLEND);
- //graphicsDevice.SetRenderTarget(RenderTarget);
- //graphicsDevice.Clear(Color.Transparent);
- }
- void LightArea::EndDrawingShadowCasters()
- {
- LPDIRECT3DDEVICE9 device = static_cast<D3DRenderSystem*>(EngineRoot::GetSingleton()->GetRenderSystem())->GetD3DDevice();
- quadRender->End();
- device->EndScene();
- device->SetRenderTarget(0, originalRenderTarget);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement