36 lines
707 B
C++
36 lines
707 B
C++
#ifndef IShader_h__
|
|||
|
|
#define IShader_h__
|
||
|
|
|
||
|
|
#include "IResource.h"
|
||
|
|
|
||
|
|
namespace LifeGraphics
|
||
|
|
{
|
||
|
|
enum SHADER_TYPE
|
||
|
|
{
|
||
|
|
ST_VS = 0,
|
||
|
|
ST_PS = 1,
|
||
|
|
ST_GS = 2
|
||
|
|
};
|
||
|
|
class IShader : public IResource
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
int Flags;
|
||
|
|
virtual ~IShader()
|
||
|
|
{
|
||
|
|
}
|
||
|
|
//public event ShaderCallback SetConstants;
|
||
|
|
|
||
|
|
//public delegate void ShaderCallback(IObject obj, IShader shader, int subset, ICamera camera);
|
||
|
|
|
||
|
|
// public void OnSetConstants(IObject obj, IShader shader, int subset, ICamera camera)
|
||
|
|
//{
|
||
|
|
//if (SetConstants != null)
|
||
|
|
//SetConstants(obj, shader, subset, camera);
|
||
|
|
// }
|
||
|
|
|
||
|
|
virtual void* Disassemble() = 0;
|
||
|
|
virtual SHADER_TYPE getShaderType() = 0;
|
||
|
|
virtual char* GetByteCode() = 0;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
#endif // IShader_h__
|