ITextureRegenerator

From Valve Developer Community
Revision as of 05:35, 1 December 2007 by Solokiller (talk | contribs) (SPAM cleanup crew to this article)
Jump to navigation Jump to search
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

See also