summaryrefslogtreecommitdiff
path: root/public/materialsystem/itexturecompositor.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/materialsystem/itexturecompositor.h')
-rw-r--r--public/materialsystem/itexturecompositor.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/public/materialsystem/itexturecompositor.h b/public/materialsystem/itexturecompositor.h
new file mode 100644
index 0000000..53682e2
--- /dev/null
+++ b/public/materialsystem/itexturecompositor.h
@@ -0,0 +1,53 @@
+//========= 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,
+ TEX_COMPOSITE_CREATE_FLAGS_VERIFY_SCHEMA_ONLY = 0x00000008,
+ TEX_COMPOSITE_CREATE_FLAGS_VERIFY_TEMPLATE_ONLY = 0x00000010,
+ TEX_COMPOSITE_CREATE_FLAGS_LOG_NODES_ONLY = 0x00000020
+};
+
+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 */