aboutsummaryrefslogtreecommitdiff
path: root/sp/src/public/materialsystem/idebugtextureinfo.h
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /sp/src/public/materialsystem/idebugtextureinfo.h
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'sp/src/public/materialsystem/idebugtextureinfo.h')
-rw-r--r--sp/src/public/materialsystem/idebugtextureinfo.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/sp/src/public/materialsystem/idebugtextureinfo.h b/sp/src/public/materialsystem/idebugtextureinfo.h
new file mode 100644
index 00000000..dee72a8b
--- /dev/null
+++ b/sp/src/public/materialsystem/idebugtextureinfo.h
@@ -0,0 +1,69 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef IDEBUGTEXTUREINFO_H
+#define IDEBUGTEXTUREINFO_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+class KeyValues;
+
+
+// This interface is actually exported by the shader API DLL.
+#define DEBUG_TEXTURE_INFO_VERSION "DebugTextureInfo001"
+
+
+abstract_class IDebugTextureInfo
+{
+public:
+
+ // Use this to turn on the mode where it builds the debug texture list.
+ // At the end of the next frame, GetDebugTextureList() will return a valid list of the textures.
+ virtual void EnableDebugTextureList( bool bEnable ) = 0;
+
+ // If this is on, then it will return all textures that exist, not just the ones that were bound in the last frame.
+ // It is required to enable debug texture list to get this.
+ virtual void EnableGetAllTextures( bool bEnable ) = 0;
+
+ // Use this to get the results of the texture list.
+ // Do NOT release the KeyValues after using them.
+ // There will be a bunch of subkeys, each with these values:
+ // Name - the texture's filename
+ // Binds - how many times the texture was bound
+ // Format - ImageFormat of the texture
+ // Width - Width of the texture
+ // Height - Height of the texture
+ // It is required to enable debug texture list to get this.
+ virtual KeyValues* GetDebugTextureList() = 0;
+
+ // Texture memory usage
+ enum TextureMemoryType
+ {
+ MEMORY_RESERVED_MIN = 0,
+ MEMORY_BOUND_LAST_FRAME, // sums up textures bound last frame
+ MEMORY_TOTAL_LOADED, // total texture memory used
+ MEMORY_ESTIMATE_PICMIP_1, // estimate of running with "picmip 1"
+ MEMORY_ESTIMATE_PICMIP_2, // estimate of running with "picmip 2"
+ MEMORY_RESERVED_MAX
+ };
+
+ // This returns how much memory was used.
+ virtual int GetTextureMemoryUsed( TextureMemoryType eTextureMemory ) = 0;
+
+ // Use this to determine if texture debug info was computed within last numFramesAllowed frames.
+ virtual bool IsDebugTextureListFresh( int numFramesAllowed = 1 ) = 0;
+
+ // Enable debug texture rendering when texture binds should not count towards textures
+ // used during a frame. Returns the old state of debug texture rendering flag to use
+ // it for restoring the mode.
+ virtual bool SetDebugTextureRendering( bool bEnable ) = 0;
+
+};
+
+
+#endif // IDEBUGTEXTUREINFO_H