port from perforce
This commit is contained in:
53
aiwaz/Aiwaz/Resources/Shader/Shader.h
Normal file
53
aiwaz/Aiwaz/Resources/Shader/Shader.h
Normal file
@@ -0,0 +1,53 @@
|
||||
#pragma once
|
||||
|
||||
#include "IFileSystem.h"
|
||||
#include "IEngine.h"
|
||||
#include "IShader.h"
|
||||
#include "../Commands/CommandUserBase.h"
|
||||
|
||||
|
||||
class Shader
|
||||
: public IShader
|
||||
, public CommandUserBase
|
||||
{
|
||||
protected:
|
||||
static const unsigned char ApplyFirstPassCommandType = 0;
|
||||
static const unsigned char NextPassCommandType = 1;
|
||||
|
||||
public:
|
||||
Shader(IEngine& argEngine);
|
||||
virtual ~Shader();
|
||||
|
||||
virtual void LoadFromFile(const string16& argValue);
|
||||
|
||||
virtual string8 get_TechniqueName() const { return m_TechniqueName; }
|
||||
virtual void set_TechniqueName(const string8& argValue);
|
||||
|
||||
virtual ID3D10EffectTechnique* get_DX10Technique() const { return m_Technique; }
|
||||
virtual IInternalShader* get_InternalShader() const { return m_InternalShader; }
|
||||
|
||||
virtual bool TryApplyNextPass();
|
||||
virtual void ApplyFirstPass();
|
||||
virtual uint32 get_CurrentRenderPass() const { return m_CurrentPass; }
|
||||
|
||||
virtual void set_Priority(unsigned char argValue);
|
||||
virtual unsigned char get_Priority() const;
|
||||
|
||||
protected:
|
||||
virtual void Uninitialize();
|
||||
IInternalShader* CreateOrFindShader(const string16& argFileName);
|
||||
|
||||
// ICommandUser
|
||||
virtual CommandExecuteResult::Enumeration ExecuteCommand(unsigned char argCommandType, ICommandBuffer& argCurrentBuffer, uint32 argCurrentPositon);
|
||||
virtual string8 get_UserName() const { return "Shader"; }
|
||||
|
||||
private:
|
||||
IEngine& m_Engine;
|
||||
|
||||
string8 m_TechniqueName;
|
||||
uint32 m_CurrentPass;
|
||||
ID3D10EffectTechnique* m_Technique;
|
||||
IInternalShader* m_InternalShader;
|
||||
D3D10_TECHNIQUE_DESC m_TechDesc;
|
||||
unsigned char m_Priority;
|
||||
};
|
||||
Reference in New Issue
Block a user