diff options
| author | John Schoenick <[email protected]> | 2015-09-09 18:35:41 -0700 |
|---|---|---|
| committer | John Schoenick <[email protected]> | 2015-09-09 18:35:41 -0700 |
| commit | 0d8dceea4310fde5706b3ce1c70609d72a38efdf (patch) | |
| tree | c831ef32c2c801a5c5a80401736b52c7b5a528ec /mp/src/public/materialsystem/itexturecompositor.h | |
| parent | Updated the SDK with the latest code from the TF and HL2 branches. (diff) | |
| download | source-sdk-2013-master.tar.xz source-sdk-2013-master.zip | |
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 */ |