You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.4 KiB
48 lines
1.4 KiB
//========= Copyright © 1996-2013, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose: Provide interface to the custom texture generator
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef I_COMPOSITE_TEXTURE_GENERATOR_H
|
|
#define I_COMPOSITE_TEXTURE_GENERATOR_H
|
|
|
|
#include "materialsystem/icompositetexture.h"
|
|
|
|
class IVisualsDataProcessor;
|
|
|
|
|
|
enum CompositeTextureFormat_t
|
|
{
|
|
COMPOSITE_TEXTURE_FORMAT_DXT1 = 1,
|
|
COMPOSITE_TEXTURE_FORMAT_DXT5 = 5
|
|
};
|
|
|
|
enum CompositeTextureSize_t
|
|
{
|
|
COMPOSITE_TEXTURE_SIZE_256 = 8,
|
|
COMPOSITE_TEXTURE_SIZE_512,
|
|
COMPOSITE_TEXTURE_SIZE_1024,
|
|
COMPOSITE_TEXTURE_SIZE_2048
|
|
};
|
|
|
|
struct SCompositeTextureInfo
|
|
{
|
|
IVisualsDataProcessor *m_pVisualsDataProcessor;
|
|
CompositeTextureSize_t m_size;
|
|
CompositeTextureFormat_t m_format;
|
|
int m_nMaterialParamID;
|
|
bool m_bSRGB;
|
|
};
|
|
|
|
class ICompositeTextureGenerator
|
|
{
|
|
public:
|
|
virtual bool Process( void ) = 0;
|
|
virtual ICompositeTexture *GetCompositeTexture( IVisualsDataProcessor *pVisualsDataProcessor, int nMaterialParamNameId, CompositeTextureSize_t size, CompositeTextureFormat_t format, bool bSRGB, bool bIgnorePicMip = false , bool bAllowCreate = true ) = 0;
|
|
virtual ICompositeTexture *GetCompositeTexture( const SCompositeTextureInfo &textureInfo, bool bIgnorePicMip = false , bool bAllowCreate = true ) = 0;
|
|
virtual bool ForceRegenerate( ICompositeTexture *pTexture ) = 0;
|
|
};
|
|
|
|
#endif // I_COMPOSITE_TEXTURE_GENERATOR_H
|