made rendering work
This commit is contained in:
@@ -12,6 +12,6 @@ public:
|
||||
virtual void ReadFromFile( CCompiledShader *pShader, const char *szFile ) = 0;
|
||||
};
|
||||
|
||||
ICompiledShaderManager *CompiledShaderManager();
|
||||
#define COMPILED_SHADER_MANAGER_INTERFACE_VERSION "CompiledShaderManager001"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,23 +1,31 @@
|
||||
#ifndef GAME_WINDOW_H
|
||||
#define GAME_WINDOW_H
|
||||
|
||||
#include "gamesystem.h"
|
||||
#include "tier0/platform.h"
|
||||
#include "materialsystem/imaterialsystem.h"
|
||||
#include "tier2/iappsystem.h"
|
||||
|
||||
abstract_class IGameWindow: public IGameSystem
|
||||
class IImage;
|
||||
abstract_class IGameWindow: public IAppSystem
|
||||
{
|
||||
public:
|
||||
virtual void Frame( float fDelta ) = 0;
|
||||
|
||||
virtual uint32_t GetRenderWidth() = 0;
|
||||
virtual uint32_t GetRenderHeight() = 0;
|
||||
virtual bool BRenderSizeUpdated() = 0;
|
||||
|
||||
virtual void SetOutputImage( IImage *pImage ) = 0;
|
||||
virtual IImage *GetOutputImage() = 0;
|
||||
|
||||
virtual void *CreateVulkanSurface( void *pInstance ) = 0;
|
||||
virtual void DestroyVulkanSurface( void *pInstance ) = 0;
|
||||
};
|
||||
|
||||
abstract_class IGameWindowManager: public IGameSystem
|
||||
abstract_class IGameWindowManager: public IAppSystem
|
||||
{
|
||||
public:
|
||||
virtual void Frame( float fDelta ) = 0;
|
||||
|
||||
virtual IGameWindow *CreateWindow() = 0;
|
||||
virtual void DestroyWindow( IGameWindow* pWindow ) = 0;
|
||||
|
||||
@@ -25,4 +33,7 @@ public:
|
||||
virtual const char **GetVulkanInstanceExtensions() = 0;
|
||||
};
|
||||
|
||||
IGameWindowManager *GameWindowManager();
|
||||
#define GAME_WINDOW_MANAGER_INTERFACE_VERSION "GameWindowMgr001"
|
||||
|
||||
#endif
|
||||
@@ -131,12 +131,18 @@ public:
|
||||
virtual ~IShader() = default;
|
||||
virtual uint32_t PSGetResourceByName( const char *szName ) = 0;
|
||||
virtual uint32_t VSGetResourceByName( const char *szName ) = 0;
|
||||
virtual void AddLayout( int iIndex, int iStride ) = 0;
|
||||
virtual void AddAttribute( int iBufferIndex, int iLocation, EVertexFormat eFormat, int iOffset ) = 0;
|
||||
virtual void SetTopology( ETopologyMode eTopology ) = 0;
|
||||
virtual void AddOutputImage( int iImageIndex, EImageFormat eFormat ) = 0;
|
||||
virtual void SetDepthImage( EImageFormat eFormat ) = 0;
|
||||
virtual void Build() = 0;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Material handle
|
||||
// It allows to specify resources in shaders such as textures, buffers etc.
|
||||
//
|
||||
//
|
||||
// Resources must be updated prior to the frame, which can be done
|
||||
// prior to the frame.
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -154,13 +160,13 @@ abstract_class IRenderCommandList
|
||||
{
|
||||
public:
|
||||
virtual void ResetRendering() = 0;
|
||||
|
||||
|
||||
virtual void SetRenderTarget( uint32_t uIndex, IImage *pImage ) = 0;
|
||||
virtual void SetClearColor( uint32_t uIndex, float r, float g, float b, float a ) = 0;
|
||||
|
||||
|
||||
virtual void SetDepthTarget( IImage *pDepth ) = 0;
|
||||
virtual void SetClearDepth( float fVal ) = 0;
|
||||
|
||||
|
||||
virtual void SetRenderResolution( uint32_t iWidth, uint32_t iHeight ) = 0;
|
||||
|
||||
virtual void SetScissors( uint32_t uX, uint32_t uY, uint32_t uWidth, uint32_t uHeight ) = 0;
|
||||
@@ -171,7 +177,7 @@ public:
|
||||
virtual void SetIndexBuffer( IVertexBuffer *pBuffer ) = 0;
|
||||
virtual void DrawPrimitives( uint32_t nVertexCount, uint32_t nFirstVertex, uint32_t nInstanceCount, uint32_t nFirstInstance ) = 0;
|
||||
virtual void DrawPrimitivesIndexed( uint32_t nIndexCount, uint32_t nFirstIndex, uint32_t nVertexOffset, uint32_t nInstanceCount, uint32_t nFirstInstance ) = 0;
|
||||
|
||||
|
||||
virtual void ResolveImage( IImage *pOriginal, IImage *pResolved ) = 0;
|
||||
|
||||
virtual void StartRecording() = 0;
|
||||
@@ -207,7 +213,7 @@ public:
|
||||
virtual IRenderCommandList *CreateCommandList() = 0;
|
||||
virtual void DestroyCommandList( IRenderCommandList *pCommandList ) = 0;
|
||||
virtual void SubmitCommandList(IRenderCommandList *pList) = 0;
|
||||
|
||||
|
||||
virtual void SetMainWindowManager( IGameWindowManager *pWindowManager ) = 0;
|
||||
|
||||
virtual void RenderGameWindow( IGameWindow *pWindow ) = 0;
|
||||
|
||||
Reference in New Issue
Block a user