Counter Strike : Global Offensive Source Code
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.
 
 
 
 
 
 

38 lines
1.1 KiB

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef IMATERIALPROXY_H
#define IMATERIALPROXY_H
#pragma once
#include "interface.h"
#define IMATERIAL_PROXY_INTERFACE_VERSION "_IMaterialProxy003"
class IMaterial;
class KeyValues;
abstract_class IMaterialProxy
{
public:
virtual bool Init( IMaterial* pMaterial, KeyValues *pKeyValues ) = 0;
virtual void OnBind( void * ) = 0;
virtual void Release() = 0;
virtual IMaterial * GetMaterial() = 0;
// Is this material proxy allowed to be called in the async thread? Most are no, a few are yes.
// This could be converted from a true interface to having a single bool that gets set at construction
// time for this. I'm considering it because this gets called on the hot path, but it's probably not
// worth it now.
virtual bool CanBeCalledAsync() const { return false; }
protected:
// no one should call this directly
virtual ~IMaterialProxy() {}
};
#endif // IMATERIALPROXY_H