protected readonly ShadowSupport m_ShadowSupport ;
protected CullResults m_CullResults ; // TODO: Temporary, due to CullResults dependency in ShadowUtils' matrix extraction code. Remove this member once that dependency is gone.
public uint width { get { return m_Width ; } }
public uint height { get { return m_Height ; } }
public uint slices { get { return m_Slices ; } }
public struct BaseInit
{
public uint width ; // width of the shadowmap
abstract public void ReserveSlots ( ShadowContextStorage sc ) ;
abstract public void Fill ( ShadowContextStorage cs ) ;
abstract protected void Register ( GPUShadowType type , ShadowRegistry registry ) ;
abstract public void DisplayShadowMap ( ScriptableRenderContext renderContext , Vector4 scaleBias , float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
abstract public void DisplayShadowMap ( ScriptableRenderContext renderContext , Vector4 scaleBias , uint slice , float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
}
interface IShadowManager
void ProcessShadowRequests ( FrameId frameId , CullResults cullResults , Camera camera , VisibleLight [ ] lights , ref uint shadowRequestsCount , int [ ] shadowRequests , out int [ ] shadowDataIndices ) ;
// Renders all shadows for lights the were deemed shadow casters after the last call to ProcessShadowRequests
void RenderShadows ( FrameId frameId , ScriptableRenderContext renderContext , CullResults cullResults , VisibleLight [ ] lights ) ;
// Debug function to display a shadow at the screen coordinate with the provided material.
void DisplayShadows ( ScriptableRenderContext renderContext , int shadowMap Index , uint faceIndex , float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
void DisplayShadowAtlas ( ScriptableRenderContext renderContext , uint atlasIndex , float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
// Debug function to display a shadow at the screen coordinate
void DisplayShadow ( ScriptableRenderContext renderContext , int shadowIndex , uint faceIndex , float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
void DisplayShadowMap ( ScriptableRenderContext renderContext , uint sh adowMapIndex , uint slice Index, float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
// Synchronize data with GPU buffers
void SyncData ( ) ;
// Binds resources to shader stages just before rendering the lighting pass
uint GetShadowMapCount ( ) ;
uint GetShadowMapSliceCount ( uint shadowMapIndex ) ;
uint GetShadowRequestCount ( ) ;
{
public abstract void ProcessShadowRequests ( FrameId frameId , CullResults cullResults , Camera camera , VisibleLight [ ] lights , ref uint shadowRequestsCount , int [ ] shadowRequests , out int [ ] shadowDataIndices ) ;
public abstract void RenderShadows ( FrameId frameId , ScriptableRenderContext renderContext , CullResults cullResults , VisibleLight [ ] lights ) ;
public abstract void DisplayShadows ( ScriptableRenderContext renderContext , int shadowMap Index , uint faceIndex , float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
public abstract void DisplayShadowAtlas ( ScriptableRenderContext renderContext , uint atlasIndex , float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
public abstract void DisplayShadow ( ScriptableRenderContext renderContext , int shadowIndex , uint faceIndex , float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
public abstract void DisplayShadowMap ( ScriptableRenderContext renderContext , uint sh adowMapIndex , uint slice Index, float screenX , float screenY , float screenSizeX , float screenSizeY ) ;
public abstract void SyncData ( ) ;
public abstract void BindResources ( ScriptableRenderContext renderContext ) ;
public abstract void UpdateCullingParameters ( ref CullingParameters cullingParams ) ;
protected abstract void AllocateShadows ( FrameId frameId , VisibleLight [ ] lights , uint totalGranted , ref VectorArray < ShadowmapBase . ShadowRequest > grantedRequests , ref VectorArray < int > shadowIndices , ref VectorArray < ShadowData > shadowmapDatas , ref VectorArray < ShadowPayload > shadowmapPayload ) ;
public abstract uint GetShadowMapCount ( ) ;
public abstract uint GetShadowMapSliceCount ( uint shadowMapIndex ) ;
public abstract uint GetShadowRequestCount ( ) ;
public abstract uint GetShadowRequestFaceCount ( uint requestIndex ) ;
public abstract int GetShadowRequestIndex ( Light light ) ;