no engine anymore

This commit is contained in:
2025-07-30 23:53:26 +03:00
parent 8a29e6b86f
commit 395ced9e28
159 changed files with 2767 additions and 9484 deletions

View File

@@ -0,0 +1,25 @@
#ifndef MATERIAL_COMPUTE_SHADER_H
#define MATERIAL_COMPUTE_SHADER_H
#include "ishader.h"
enum EShaderOutput {
SHADER_TEXTURE0,
SHADER_TEXTURE1,
SHADER_TEXTURE2,
SHADER_TEXTURE3,
SHADER_TEXTURE4,
SHADER_TEXTURE5,
SHADER_TEXTURE6,
SHADER_TEXTURE7,
SHADER_DEPTH,
};
abstract_class IComputeShader : public IShader
{
public:
virtual void SetShaderSource( const char *szPath ) = 0;
};
#endif

View File

View File

@@ -0,0 +1,85 @@
#ifndef MATERIAL_SYSTEM_H
#define MATERIAL_SYSTEM_H
#include "tier0/platform.h"
abstract_class IRenderingObject
{
public:
virtual void SetDebugName( const char *szName ) = 0;
};
abstract_class IBuffer : public IRenderingObject
{
public:
virtual void Lock() = 0;
virtual void Unlock() = 0;
virtual void *Map() = 0;
virtual void Unmap() = 0;
};
abstract_class IVertexBuffer : public IBuffer
{
public:
};
abstract_class IIndexBuffer : public IBuffer
{
public:
};
abstract_class IMesh
{
public:
};
enum EImageFormat
{
IMAGE_FORMAT_R8_UINT,
IMAGE_FORMAT_RGBA8_UNORM,
IMAGE_FORMAT_BGRA8_UNORM,
IMAGE_FORMAT_RGBA8_UINT,
IMAGE_FORMAT_RGBA8_SINT,
IMAGE_FORMAT_RGBA16_SFLOAT,
IMAGE_FORMAT_RGBA32_SFLOAT,
IMAGE_FORMAT_D32_SFLOAT,
};
enum EMultisampleType
{
MULTISAMPLE_TYPE_NONE,
MULTISAMPLE_TYPE_2_SAMPLES,
MULTISAMPLE_TYPE_4_SAMPLES,
MULTISAMPLE_TYPE_8_SAMPLES,
};
abstract_class IImage : public IRenderingObject
{
public:
virtual void BlitTo( IImage *pImage );
};
abstract_class IRenderContext
{
public:
virtual IVertexBuffer *CreateVertexBuffer( uint32_t nSize ) = 0;
virtual IIndexBuffer *CreateIndexBuffer( uint32_t nSize ) = 0;
virtual IImage *CreateRenderTarget( uint32_t x, uint32_t y, EImageFormat eFormat, EMultisampleType eMultisampleType );
virtual IImage *CreateStorageImage( uint32_t x, uint32_t y, EImageFormat eFormat, EMultisampleType eMultisampleType );
virtual void DestroyBuffer( IBuffer *pBuffer );
virtual void DestroyImage( IImage *pImage );
};
abstract_class IMaterialSystem
{
public:
IRenderContext *GetRenderContext();
};
extern IMaterialSystem *materials;
#endif

View File

@@ -0,0 +1,10 @@
#ifndef MATERIAL_PIPELINE_H
#define MATERIAL_PIPELINE_H
#include "tier0/platform.h"
abstract_class IPipeline
{
public:
};
#endif

View File

@@ -0,0 +1,27 @@
#ifndef MATERIAL_RASTER_SHADER_H
#define MATERIAL_RASTER_SHADER_H
#include "ishader.h"
enum EShaderOutput {
SHADER_TEXTURE0,
SHADER_TEXTURE1,
SHADER_TEXTURE2,
SHADER_TEXTURE3,
SHADER_TEXTURE4,
SHADER_TEXTURE5,
SHADER_TEXTURE6,
SHADER_TEXTURE7,
SHADER_DEPTH,
};
abstract_class IRasterShader : public IShader
{
public:
virtual void SetVertexShader( const char *szPath ) = 0;
virtual void SetPixelShader( const char *szPath ) = 0;
virtual void EnableTexture( EShaderOutput eTextureID, bool bEnabled ) = 0;
};
#endif

View File

@@ -0,0 +1,36 @@
#ifndef MATERIAL_SHADER_H
#define MATERIAL_SHADER_H
#include "tier0/platform.h"
enum EShaderInputType
{
SHADER_INPUT_TYPE_POINTER,
SHADER_INPUT_TYPE_INT,
SHADER_INPUT_TYPE_FLOAT,
SHADER_INPUT_TYPE_FLOAT2,
SHADER_INPUT_TYPE_FLOAT3,
SHADER_INPUT_TYPE_FLOAT4,
SHADER_INPUT_TYPE_MATRIX,
SHADER_INPUT_TYPE_IMAGE,
SHADER_INPUT_TYPE_TEXTURE,
SHADER_INPUT_TYPE_MODEL,
};
abstract_class IShader
{
public:
virtual void CreateShaderParameter( const char *szName, uint32_t binding, EShaderInputType eType, bool bArray ) = 0;
virtual void CreateMaterialParameter( const char *szName, uint32_t binding, EShaderInputType eType, bool bArray ) = 0;
virtual void CreateConstants( uint32_t nSize ) = 0;
virtual void SetShaderParameter( const char *szName, void *pData ) = 0;
};
#endif