diff options
Diffstat (limited to 'mp/src/public/materialsystem/itexturecompositor.h')
| -rw-r--r-- | mp/src/public/materialsystem/itexturecompositor.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/mp/src/public/materialsystem/itexturecompositor.h b/mp/src/public/materialsystem/itexturecompositor.h new file mode 100644 index 00000000..a158d36c --- /dev/null +++ b/mp/src/public/materialsystem/itexturecompositor.h @@ -0,0 +1,50 @@ +//========= Copyright Valve Corporation, All rights reserved. ================================== // +// +// Purpose: Defines a texture compositor infterface which uses simple operations and shaders to +// create complex procedural textures. +// +//============================================================================================== // + +#ifndef ITEXTURECOMPOSITOR_H +#define ITEXTURECOMPOSITOR_H +#pragma once + +#include "interface.h" +#include "itexture.h" + +#define ITEXTURE_COMPOSITOR_INTERFACE_VERSION "_ITextureCompositor000" + +enum ECompositeResolveStatus +{ + ECRS_Idle, + ECRS_Scheduled, + ECRS_PendingTextureLoads, + ECRS_PendingComposites, + ECRS_Error, + ECRS_Complete +}; + +enum TextureCompositeCreateFlags_t +{ + TEX_COMPOSITE_CREATE_FLAGS_FORCE = 0x00000001, + TEX_COMPOSITE_CREATE_FLAGS_NO_COMPRESSION = 0x00000002, + TEX_COMPOSITE_CREATE_FLAGS_NO_MIPMAPS = 0x00000004, +}; + +abstract_class ITextureCompositor +{ +public: + virtual int AddRef() = 0; + virtual int Release() = 0; + virtual int GetRefCount() const = 0; + + virtual void Update() = 0; + virtual ITexture* GetResultTexture() const = 0; + virtual ECompositeResolveStatus GetResolveStatus() const = 0; + virtual void ScheduleResolve() = 0; +protected: + virtual ~ITextureCompositor() {} +}; + + +#endif /* ITEXTURECOMPOSITOR_H */ |