ITextureRegenerator: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 2: | Line 2: | ||
;Location:<code>public\materialsystem\itexture.h</code> | ;Location:<code>public\materialsystem\itexture.h</code> | ||
;Purpose:The job '''ITextureRegenerator''' class is to change the pixel values of any procedural texture that uses a regenerator that implements this class. | ;Purpose:The job '''ITextureRegenerator''' class is to change the pixel values of any procedural texture that uses a regenerator that implements this class. | ||
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// | |||
// | |||
// Purpose: | |||
// | |||
// $NoKeywords: $ | |||
// | |||
//=============================================================================// | |||
#ifndef ITEXTURE_H | |||
#define ITEXTURE_H | |||
#ifdef _WIN32 | |||
#pragma once | |||
#endif | |||
enum ImageFormat; | |||
class [[IVTFTexture]]; | |||
class [[ITexture]]; | |||
struct [[Rect_t]]; | |||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||
// This will get called on procedural textures to re-fill the textures | // This will get called on procedural textures to re-fill the textures | ||
Line 22: | Line 42: | ||
virtual void [[Release]]() = 0; | virtual void [[Release]]() = 0; | ||
}; | }; | ||
inline bool IsErrorTexture( ITexture *pTex ) | |||
{ | |||
return !pTex || pTex->IsError(); | |||
} | |||
#endif // ITEXTURE_H | |||
=Related Implementations= | =Related Implementations= | ||
* [[Procedural Materials]] | * [[Procedural Materials]] |
Revision as of 22:47, 9 May 2006
- Location
public\materialsystem\itexture.h
- Purpose
- The job ITextureRegenerator class is to change the pixel values of any procedural texture that uses a regenerator that implements this class.
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ // //=============================================================================// #ifndef ITEXTURE_H #define ITEXTURE_H #ifdef _WIN32 #pragma once #endif enum ImageFormat; class IVTFTexture; class ITexture; struct Rect_t; //----------------------------------------------------------------------------- // This will get called on procedural textures to re-fill the textures // with the appropriate bit pattern. Calling Download() will also // cause this interface to be called. It will also be called upon // mode switch, or on other occasions where the bits are discarded. //----------------------------------------------------------------------------- class ITextureRegenerator { public: // This will be called when the texture bits need to be regenerated. // Use the VTFTexture interface, which has been set up with the // appropriate texture size + format // The rect specifies which part of the texture needs to be updated // You can choose to update all of the bits if you prefer virtual void RegenerateTextureBits( ITexture *pTexture, IVTFTexture *pVTFTexture, Rect_t *pRect ) = 0; // This will be called when the regenerator needs to be deleted // which will happen when the texture is destroyed virtual void Release() = 0; }; inline bool IsErrorTexture( ITexture *pTex ) { return !pTex || pTex->IsError(); } #endif // ITEXTURE_H