From Valve Developer Community
Jump to: navigation, search
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

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
	// 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

See also