textures
This commit is contained in:
@@ -11,16 +11,43 @@ class IGameWindowManager;
|
||||
enum EImageFormat
|
||||
{
|
||||
IMAGE_FORMAT_R8_UINT,
|
||||
IMAGE_FORMAT_RGB8_UINT,
|
||||
IMAGE_FORMAT_RGB8_SINT,
|
||||
IMAGE_FORMAT_RGB8_UNORM,
|
||||
IMAGE_FORMAT_RGB8_SNORM,
|
||||
IMAGE_FORMAT_RGB8_SFLOAT,
|
||||
|
||||
IMAGE_FORMAT_RGB16_UINT,
|
||||
IMAGE_FORMAT_RGB16_SINT,
|
||||
IMAGE_FORMAT_RGB16_UNORM,
|
||||
IMAGE_FORMAT_RGB16_SNORM,
|
||||
IMAGE_FORMAT_RGB16_SFLOAT,
|
||||
|
||||
IMAGE_FORMAT_RGB32_SFLOAT,
|
||||
|
||||
IMAGE_FORMAT_RGBA8_UNORM,
|
||||
IMAGE_FORMAT_BGRA8_UNORM,
|
||||
|
||||
IMAGE_FORMAT_RGBA8_UINT,
|
||||
IMAGE_FORMAT_RGBA8_SINT,
|
||||
IMAGE_FORMAT_RGBA16_UNORM,
|
||||
|
||||
IMAGE_FORMAT_RGBA16_UINT,
|
||||
IMAGE_FORMAT_RGBA16_SINT,
|
||||
IMAGE_FORMAT_RGBA16_UNORM,
|
||||
IMAGE_FORMAT_RGBA16_SNORM,
|
||||
IMAGE_FORMAT_RGBA16_SFLOAT,
|
||||
|
||||
IMAGE_FORMAT_RGBA32_SFLOAT,
|
||||
|
||||
IMAGE_FORMAT_BC1,
|
||||
IMAGE_FORMAT_BC2,
|
||||
IMAGE_FORMAT_BC3,
|
||||
IMAGE_FORMAT_BC4,
|
||||
IMAGE_FORMAT_BC5,
|
||||
IMAGE_FORMAT_BC6,
|
||||
IMAGE_FORMAT_BC7,
|
||||
|
||||
|
||||
IMAGE_FORMAT_D32_SFLOAT,
|
||||
|
||||
IMAGE_FORMAT_WINDOW,
|
||||
@@ -132,6 +159,15 @@ public:
|
||||
virtual EMultisampleType GetMultisampleType() = 0;
|
||||
};
|
||||
|
||||
abstract_class ITextureArray: public IRenderingObject
|
||||
{
|
||||
public:
|
||||
virtual void Build() = 0;
|
||||
virtual uint32_t LoadTexture( const char *szPath ) = 0;
|
||||
virtual uint32_t GetTextureID( const char *szPath ) = 0;
|
||||
virtual void UnloadTexture( uint32_t uTextureID ) = 0;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Shader object
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -155,8 +191,7 @@ public:
|
||||
// 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.
|
||||
// Resources must be updated prior to the frame
|
||||
//-----------------------------------------------------------------------------
|
||||
abstract_class IMaterial
|
||||
{
|
||||
@@ -166,6 +201,7 @@ public:
|
||||
virtual void PSSetShaderResource( uint32_t uRegister, IRenderingObject *pResource ) = 0;
|
||||
virtual void VSSetConstantsBuffer( uint32_t uRegister, IBuffer *pImage ) = 0;
|
||||
virtual void PSSetConstantsBuffer( uint32_t uRegister, IBuffer *pImage ) = 0;
|
||||
virtual void PSSetTextureArray( uint32_t uSet, ITextureArray *pArray ) = 0;
|
||||
};
|
||||
|
||||
abstract_class IRenderCommandList
|
||||
@@ -211,6 +247,7 @@ public:
|
||||
virtual IBuffer *CreateConstantBuffer( uint32_t nSize ) = 0;
|
||||
virtual IBuffer *CreateStorageBuffer( uint32_t nSize ) = 0;
|
||||
virtual IImage *CreateRenderTarget( uint32_t x, uint32_t y, EImageFormat eFormat, EMultisampleType eMultisampleType ) = 0;
|
||||
virtual IImage *CreateTexture( uint32_t x, uint32_t y, EImageFormat eFormat, EMultisampleType eMultisampleType ) = 0;
|
||||
virtual IImage *CreateStorageImage( uint32_t x, uint32_t y, EImageFormat eFormat, EMultisampleType eMultisampleType ) = 0;
|
||||
|
||||
virtual void DestroyBuffer( IBuffer *pBuffer ) = 0;
|
||||
@@ -231,6 +268,9 @@ public:
|
||||
virtual void RenderGameWindow( IGameWindow *pWindow ) = 0;
|
||||
virtual void RegisterGameWindow( IGameWindow *pWindow ) = 0;
|
||||
virtual void UnregisterGameWindow( IGameWindow *pWindow ) = 0;
|
||||
|
||||
virtual ITextureArray *CreateTextureArray() = 0;
|
||||
virtual void DestroyTextureArray() = 0;
|
||||
};
|
||||
|
||||
#define RENDER_CONTEXT_INTERFACE_VERSION "RenderContext001"
|
||||
|
||||
Reference in New Issue
Block a user