summaryrefslogtreecommitdiff
path: root/public/materialsystem/IColorCorrection.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/materialsystem/IColorCorrection.h')
-rw-r--r--public/materialsystem/IColorCorrection.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/public/materialsystem/IColorCorrection.h b/public/materialsystem/IColorCorrection.h
new file mode 100644
index 0000000..1aa0c24
--- /dev/null
+++ b/public/materialsystem/IColorCorrection.h
@@ -0,0 +1,73 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//===========================================================================//
+
+#ifndef ICOLORCORRECTION_H
+#define ICOLORCORRECTION_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tier1/interface.h"
+#include "bitmap/imageformat.h"
+
+typedef unsigned int ColorCorrectionHandle_t;
+struct ShaderColorCorrectionInfo_t;
+
+#define COLORCORRECTION_INTERFACE_VERSION "COLORCORRECTION_VERSION_1"
+
+abstract_class IColorCorrectionSystem
+{
+public:
+ virtual void Init() = 0;
+ virtual void Shutdown() = 0;
+
+ virtual ColorCorrectionHandle_t AddLookup( const char *pName ) = 0;
+ virtual bool RemoveLookup( ColorCorrectionHandle_t handle ) = 0;
+
+ virtual void SetLookupWeight( ColorCorrectionHandle_t handle, float flWeight ) = 0;
+ virtual float GetLookupWeight( ColorCorrectionHandle_t handle ) = 0;
+ virtual float GetLookupWeight( int i ) = 0;
+
+ virtual void LockLookup() = 0;
+ virtual void LockLookup( ColorCorrectionHandle_t handle ) = 0;
+
+ virtual void UnlockLookup() = 0;
+ virtual void UnlockLookup( ColorCorrectionHandle_t handle ) = 0;
+
+ virtual void SetLookup( RGBX5551_t inColor, color24 outColor ) = 0;
+ virtual void SetLookup( ColorCorrectionHandle_t handle, RGBX5551_t inColor, color24 outColor ) = 0;
+
+ virtual color24 GetLookup( RGBX5551_t inColor ) = 0;
+ virtual color24 GetLookup( ColorCorrectionHandle_t handle, RGBX5551_t inColor ) = 0;
+
+ virtual void LoadLookup( const char *pLookupName ) = 0;
+ virtual void LoadLookup( ColorCorrectionHandle_t handle, const char *pLookupName ) = 0;
+
+ virtual void CopyLookup( const color24 *pSrcColorCorrection ) = 0;
+ virtual void CopyLookup( ColorCorrectionHandle_t handle, const color24 *pSrcColorCorrection ) = 0;
+
+ virtual void ResetLookup( ColorCorrectionHandle_t handle ) = 0;
+ virtual void ResetLookup( ) = 0;
+
+ virtual void ReleaseTextures( ) = 0;
+ virtual void RestoreTextures( ) = 0;
+
+ virtual void ResetLookupWeights( ) = 0;
+
+ virtual int GetNumLookups( ) = 0;
+
+ virtual color24 ConvertToColor24( RGBX5551_t inColor ) = 0;
+
+ virtual void SetResetable( ColorCorrectionHandle_t handle, bool bResetable ) = 0;
+
+ virtual void EnableColorCorrection( bool bEnable ) = 0;
+
+ // FIXME: Move this to a private interface only the material system can see?
+ virtual void GetCurrentColorCorrection( ShaderColorCorrectionInfo_t* pInfo ) = 0;
+};
+
+#endif