brought back functionality from previous builds but now cross-platform

This commit is contained in:
2025-07-07 15:34:34 +03:00
parent 99eafb9443
commit 83bc9b7f16
61 changed files with 1210 additions and 581 deletions

View File

@@ -48,7 +48,7 @@ public:
virtual void Spawn( void ) override;
virtual void Destroy( void ) override;
virtual void Think( float fDelta ) override;
private:
IVertexBuffer *vertexBuffer;
IIndexBuffer *indexBuffer;
IMesh *mesh;

View File

@@ -96,8 +96,10 @@ enum EInputAxis
AXIS_MOUSE_X,
AXIS_MOUSE_Y,
AXIS_MOUSE_SCROLL,
AXIS_CONTROLLER_PITCH,
AXIS_CONTROLLER_YAW,
AXIS_MAX,
AXIS_NUM_AXIS = AXIS_MAX - 1,
AXIS_NUM_AXIS = AXIS_MAX,
};
enum EMouseMode

View File

@@ -94,6 +94,7 @@ enum EShaderType
enum EBarrierMemoryPermissions
{
BARRIER_MEMORY_PERMISSIONS_NONE = 0x0,
BARRIER_MEMORY_PERMISSIONS_VERTEX_BUFFER_READ = 0x1,
BARRIER_MEMORY_PERMISSIONS_INDEX_BUFFER_READ = 0x2,
BARRIER_MEMORY_PERMISSIONS_UNIFORM_BUFFER_READ = 0x4,
@@ -108,14 +109,15 @@ enum EBarrierMemoryPermissions
};
enum EBarrierStage
{
BARRIER_STAGE_TOP,
BARRIER_STAGE_VERTEX_INPUT,
BARRIER_STAGE_VERTEX_SHADER,
BARRIER_STAGE_GEOMETRY_SHADER,
BARRIER_STAGE_FRAGMENT_SHADER,
BARRIER_STAGE_COMPUTE_SHADER,
BARRIER_STAGE_RAY_TRACING_SHADER,
BARRIER_STAGE_BOTTOM,
BARRIER_STAGE_TOP = 0x1,
BARRIER_STAGE_VERTEX_INPUT = 0x2,
BARRIER_STAGE_VERTEX_SHADER = 0x4,
BARRIER_STAGE_GEOMETRY_SHADER = 0x8,
BARRIER_STAGE_FRAGMENT_SHADER = 0x10,
BARRIER_STAGE_COLOR_OUTPUT = 0x20,
BARRIER_STAGE_COMPUTE_SHADER = 0x40,
BARRIER_STAGE_RAY_TRACING_SHADER = 0x80,
BARRIER_STAGE_BOTTOM = 0x100,
};
enum EAttachmentLoadMode
@@ -216,7 +218,7 @@ struct ShaderInput_t
struct Shader_t
{
const char *szPath;
CUtlString szPath;
EShaderType type;
};
@@ -262,7 +264,7 @@ struct ImageBarrier_t
{
EBarrierMemoryPermissions in;
EBarrierMemoryPermissions out;
IBuffer *pBuffer;
IImage *pImage;
};
struct VertexAttribute_t
@@ -278,8 +280,8 @@ struct RenderingColorAttachment_t
IImage *pTemporary;
EAttachmentLoadMode loadMode;
EAttachmentStoreMode storeMode;
EMSAAMode msaaMode;
vec4 clearColor;
EMSAAMode msaaMode;
};
struct RenderingDepthAttachment_t
@@ -288,8 +290,8 @@ struct RenderingDepthAttachment_t
IImage *pTemporary;
EAttachmentLoadMode loadMode;
EAttachmentStoreMode storeMode;
EMSAAMode msaaMode;
float clearValue;
EMSAAMode msaaMode;
};
@@ -310,10 +312,11 @@ public:
static void DestroyBuffer( IBuffer *pBuffer );
static void DestroyImage( IImage *pImage );
static void SetConstants( uint32_t nSize, uint32_t nOffset, void *pData );
static void Barrier( EBarrierStage stageIn, uint32_t stageOut, CUtlVector<BufferBarrier_t> buffers, CUtlVector<ImageBarrier_t> images );
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 BindData( uint32_t binding, IBuffer *pBuffer, IImage* pImage);
static void BindPipeline( IPipeline *pPipeline );
static void PushBindings();
static void Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingColorAttachment_t> attachments, RenderingDepthAttachment_t depth );
@@ -330,7 +333,8 @@ public:
uint32_t nConstantsSize,
uint32_t nVertexSize,
CUtlVector<VertexAttribute_t> vertexFormat,
CUtlVector<EImageFormat> outputFormats
CUtlVector<EImageFormat> outputFormats,
bool bDepth
);
static IComputePipeline *CreateComputePipeline(
Shader_t szShader,
@@ -343,6 +347,9 @@ public:
CUtlVector<ShaderInput_t> inputs,
uint32_t nConstantsSize
);
static IBuffer *GetCameraMatrix();
static IImage *GetOutputImage();
};
abstract_class IRenderingPipelineStep

View File

@@ -5,14 +5,14 @@
#include "stddef.h"
#ifdef __WIN32__
#define DLL_EXPORT extern "C" __declspec(dllexport)
#define DLL_IMPORT extern "C" __declspec(dllimport)
#define DLL_EXPORT extern "C"
#define DLL_IMPORT extern "C"
#define DLL_CLASS_EXPORT __declspec(dllexport)
#define DLL_CLASS_IMPORT __declspec(dllimport)
#define DLL_CLASS_EXPORT
#define DLL_CLASS_IMPORT
#define DLL_GLOBAL_EXPORT extern __declspec(dllexport)
#define DLL_GLOBAL_IMPORT extern __declspec(dllimport)
#define DLL_GLOBAL_EXPORT extern
#define DLL_GLOBAL_IMPORT extern
#else
#define DLL_EXPORT extern "C" __attribute__ ((visibility("default")))
#define DLL_IMPORT extern "C"

21
public/tier1/utlmutex.h Normal file
View File

@@ -0,0 +1,21 @@
#ifndef TIER1_UTL_MUTEX_H
#define TIER1_UTL_MUTEX_H
#include "pthread.h"
class CUtlLock
{
public:
CUtlLock();
~CUtlLock();
CUtlLock(const CUtlLock&) = delete;
CUtlLock& operator=(const CUtlLock&) = delete;
void Lock();
void Unlock();
private:
pthread_mutex_t m_lock;
};
#endif