2013-12-18 20:28:06 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "../../Core/Core.h"
|
|
|
|
|
|
|
|
namespace Oyster
|
|
|
|
{
|
|
|
|
namespace Graphics
|
|
|
|
{
|
|
|
|
namespace Render
|
|
|
|
{
|
|
|
|
namespace Resources
|
|
|
|
{
|
|
|
|
class Deffered
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
static const int GBufferSize = 2;
|
2014-01-08 07:01:59 +01:00
|
|
|
static const int LBufferSize = 3;
|
2013-12-18 20:28:06 +01:00
|
|
|
static const int MaxLightSize = 100;
|
|
|
|
//! GBuffers
|
2014-02-04 16:06:59 +01:00
|
|
|
//! 0 = Diffuse + Glow
|
|
|
|
//! 1 = Normal + Spec
|
2013-12-18 20:28:06 +01:00
|
|
|
static ID3D11RenderTargetView* GBufferRTV[GBufferSize];
|
|
|
|
static ID3D11ShaderResourceView* GBufferSRV[GBufferSize];
|
|
|
|
|
2014-02-04 16:06:59 +01:00
|
|
|
//! LBuffer
|
|
|
|
//! 0 = Diffuse
|
|
|
|
//! 1 = Specular
|
|
|
|
//! 2 = SSAO
|
2014-01-08 07:01:59 +01:00
|
|
|
static ID3D11UnorderedAccessView* LBufferUAV[LBufferSize];
|
|
|
|
static ID3D11ShaderResourceView* LBufferSRV[LBufferSize];
|
|
|
|
|
2013-12-18 20:28:06 +01:00
|
|
|
static Core::PipelineManager::RenderPass GeometryPass;
|
|
|
|
static Core::PipelineManager::RenderPass LightPass;
|
2014-01-08 07:01:59 +01:00
|
|
|
static Core::PipelineManager::RenderPass PostPass;
|
|
|
|
|
2013-12-18 20:28:06 +01:00
|
|
|
|
|
|
|
static Core::Buffer ModelData;
|
2014-02-04 16:06:59 +01:00
|
|
|
static Core::Buffer AnimationData;
|
2013-12-18 20:28:06 +01:00
|
|
|
|
|
|
|
static Core::Buffer LightConstantsData;
|
|
|
|
|
|
|
|
static Core::Buffer PointLightsData;
|
|
|
|
static ID3D11ShaderResourceView* PointLightView;
|
|
|
|
|
2014-01-08 07:01:59 +01:00
|
|
|
static ID3D11ShaderResourceView* SSAOKernel;
|
|
|
|
|
|
|
|
static ID3D11ShaderResourceView* SSAORandom;
|
|
|
|
|
2013-12-18 20:28:06 +01:00
|
|
|
static Core::Init::State Init();
|
2014-01-08 07:01:59 +01:00
|
|
|
static Core::Init::State InitShaders();
|
2013-12-18 20:28:06 +01:00
|
|
|
static void Clean();
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|