aboutsummaryrefslogtreecommitdiff
path: root/mp/src/public/materialsystem/itexturecompositor.h
diff options
context:
space:
mode:
authorJohn Schoenick <[email protected]>2015-09-09 18:35:41 -0700
committerJohn Schoenick <[email protected]>2015-09-09 18:35:41 -0700
commit0d8dceea4310fde5706b3ce1c70609d72a38efdf (patch)
treec831ef32c2c801a5c5a80401736b52c7b5a528ec /mp/src/public/materialsystem/itexturecompositor.h
parentUpdated the SDK with the latest code from the TF and HL2 branches. (diff)
downloadsource-sdk-2013-master.tar.xz
source-sdk-2013-master.zip
Updated the SDK with the latest code from the TF and HL2 branches.HEADmaster
Diffstat (limited to 'mp/src/public/materialsystem/itexturecompositor.h')
-rw-r--r--mp/src/public/materialsystem/itexturecompositor.h50
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 */