fixed windows builds
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#ifndef RENDERING_H
|
||||
#define RENDERING_H
|
||||
|
||||
#include "interface.h"
|
||||
#include "math3d.h"
|
||||
#include "tier0/platform.h"
|
||||
#include "tier1/utlbuffer.h"
|
||||
@@ -304,66 +305,6 @@ struct RenderingDepthAttachment_t
|
||||
EMSAAMode msaaMode;
|
||||
};
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Manages all buffers and pipelines.
|
||||
// It is meant to be used in render pipelines
|
||||
//----------------------------------------------------------------------------
|
||||
interface IRenderer
|
||||
{
|
||||
public:
|
||||
|
||||
static IStorageBuffer *CreateStorageBuffer( uint32_t uSize );
|
||||
static IUniformBuffer *CreateUniformBuffer( uint32_t uSize );
|
||||
static IVertexBuffer *CreateVertexBuffer( uint32_t uSize );
|
||||
static IIndexBuffer *CreateIndexBuffer( uint32_t uSize );
|
||||
static IImage *CreateImage( EImageFormat format, uint32_t usage, uint32_t nWidth, uint32_t nHeight, uint32_t nSamples = 1 );
|
||||
|
||||
static void DestroyBuffer( IBuffer *pBuffer );
|
||||
static void DestroyImage( IImage *pImage );
|
||||
|
||||
static void SetConstants( uint32_t nSize, void *pData );
|
||||
static void Barrier( uint32_t stageIn, uint32_t stageOut, CUtlVector<BufferBarrier_t> buffers, CUtlVector<ImageBarrier_t> images );
|
||||
static void BindPipeline( IPipeline *pPipeline );
|
||||
|
||||
static void Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingColorAttachment_t> attachments, RenderingDepthAttachment_t depth );
|
||||
static void ResetState();
|
||||
static void SetDepthMode( EDepthMode mode );
|
||||
static void Draw( IVertexBuffer *pVertex, IIndexBuffer *pIndex );
|
||||
static void End();
|
||||
|
||||
static void Dispatch( uint32_t x, uint32_t y, uint32_t z );
|
||||
static void TraceRays( uint32_t x, uint32_t y, uint32_t z );
|
||||
|
||||
static IGraphicsPipeline *CreateGraphicsPipeline(
|
||||
CUtlVector<Shader_t> shaders,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize,
|
||||
uint32_t nVertexSize,
|
||||
CUtlVector<VertexAttribute_t> vertexFormat,
|
||||
CUtlVector<EImageFormat> outputFormats,
|
||||
bool bDepth
|
||||
);
|
||||
static IComputePipeline *CreateComputePipeline(
|
||||
Shader_t szShader,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize
|
||||
);
|
||||
|
||||
static IRayTracingPipeline *CreateRayTracingPipeline(
|
||||
CUtlVector<Shader_t> shaders,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize
|
||||
);
|
||||
|
||||
static IBuffer *GetCameraMatrix();
|
||||
static IImage *GetOutputImage();
|
||||
};
|
||||
|
||||
extern char g_bConfigNotify;
|
||||
extern uint32_t g_nWindowWidth;
|
||||
extern uint32_t g_nWindowHeight;
|
||||
|
||||
abstract_class IRenderingPipelineStep
|
||||
{
|
||||
public:
|
||||
@@ -372,20 +313,82 @@ public:
|
||||
virtual void Deinit() = 0;
|
||||
};
|
||||
|
||||
typedef IRenderingPipelineStep*(*CreateRenderStepFn)();
|
||||
struct RenderingStep_t
|
||||
{
|
||||
IRenderingPipelineStep *pPipeline;
|
||||
const char *szName;
|
||||
};
|
||||
|
||||
extern CUtlVector<RenderingStep_t> g_StepPrepass;
|
||||
extern CUtlVector<RenderingStep_t> g_StepMeshRendering;
|
||||
extern CUtlVector<RenderingStep_t> g_StepShading;
|
||||
extern CUtlVector<RenderingStep_t> g_StepPostProcessing;
|
||||
extern CUtlVector<RenderingStep_t> g_StepUI;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Manages all buffers and pipelines.
|
||||
// It is meant to be used in render pipelines
|
||||
//----------------------------------------------------------------------------
|
||||
interface IRenderer: public IInterface
|
||||
{
|
||||
public:
|
||||
|
||||
virtual IStorageBuffer *CreateStorageBuffer( uint32_t uSize ) = 0;
|
||||
virtual IUniformBuffer *CreateUniformBuffer( uint32_t uSize ) = 0;
|
||||
virtual IVertexBuffer *CreateVertexBuffer( uint32_t uSize ) = 0;
|
||||
virtual IIndexBuffer *CreateIndexBuffer( uint32_t uSize ) = 0;
|
||||
virtual IImage *CreateImage( EImageFormat format, uint32_t usage, uint32_t nWidth, uint32_t nHeight, uint32_t nSamples = 1 ) = 0;
|
||||
|
||||
virtual void DestroyBuffer( IBuffer *pBuffer ) = 0;
|
||||
virtual void DestroyImage( IImage *pImage ) = 0;
|
||||
|
||||
virtual void SetConstants( uint32_t nSize, void *pData ) = 0;
|
||||
virtual void Barrier( uint32_t stageIn, uint32_t stageOut, CUtlVector<BufferBarrier_t> buffers, CUtlVector<ImageBarrier_t> images ) = 0;
|
||||
virtual void BindPipeline( IPipeline *pPipeline ) = 0;
|
||||
|
||||
virtual void Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingColorAttachment_t> attachments, RenderingDepthAttachment_t depth ) = 0;
|
||||
virtual void ResetState() = 0;
|
||||
virtual void SetDepthMode( EDepthMode mode ) = 0;
|
||||
virtual void Draw( IVertexBuffer *pVertex, IIndexBuffer *pIndex ) = 0;
|
||||
virtual void End() = 0;
|
||||
|
||||
virtual void Dispatch( uint32_t x, uint32_t y, uint32_t z ) = 0;
|
||||
virtual void TraceRays( uint32_t x, uint32_t y, uint32_t z ) = 0;
|
||||
|
||||
virtual IGraphicsPipeline *CreateGraphicsPipeline(
|
||||
CUtlVector<Shader_t> shaders,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize,
|
||||
uint32_t nVertexSize,
|
||||
CUtlVector<VertexAttribute_t> vertexFormat,
|
||||
CUtlVector<EImageFormat> outputFormats,
|
||||
bool bDepth
|
||||
) = 0;
|
||||
virtual IComputePipeline *CreateComputePipeline(
|
||||
Shader_t szShader,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize
|
||||
) = 0;
|
||||
|
||||
virtual IRayTracingPipeline *CreateRayTracingPipeline(
|
||||
CUtlVector<Shader_t> shaders,
|
||||
CUtlVector<ShaderInput_t> inputs,
|
||||
uint32_t nConstantsSize
|
||||
) = 0;
|
||||
|
||||
virtual IBuffer *GetCameraMatrix() = 0;
|
||||
virtual IImage *GetOutputImage() = 0;
|
||||
|
||||
CUtlVector<RenderingStep_t> m_StepPrepass;
|
||||
CUtlVector<RenderingStep_t> m_StepMeshRendering;
|
||||
CUtlVector<RenderingStep_t> m_StepShading;
|
||||
CUtlVector<RenderingStep_t> m_StepPostProcessing;
|
||||
CUtlVector<RenderingStep_t> m_StepUI;
|
||||
};
|
||||
|
||||
IRenderer *Renderer();
|
||||
|
||||
extern char g_bConfigNotify;
|
||||
extern uint32_t g_nWindowWidth;
|
||||
extern uint32_t g_nWindowHeight;
|
||||
|
||||
|
||||
typedef IRenderingPipelineStep*(*CreateRenderStepFn)();
|
||||
class CRenderingStep
|
||||
{
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user