{
exception_codes__head = exception_code_root::shader,
- buffer__CreateBuffer_Failed
+ buffer__CreateBuffer_Failed,
+ get_pass_Failed,
+ get_technique_Failed
};
protected:
device& m_dev;
class pass
{
+ protected:
+ d3dpass* m_if;
+ public:
+ pass(d3dpass* pass_in) : m_if(pass_in){}
};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
class technique
{
+ public:
+ enum exception_codes
+ {
+ exception_codes__head = exception_code_root::technique,
+ get_pass_Failed
+ };
+ protected:
+ d3dtechnique* m_if;
+ public:
+ technique(d3dtechnique* tech) : m_if(tech){}
+ /////
+ pass get_pass(const char* name){
+ d3dpass* ps = m_if->GetPassByName(name);
+ if ( ps == NULL ){
+ throw exception(get_pass_Failed,
+ ::std::string("GetPassByName() unknown pass ")+name);
+ }
+ return pass(ps);
+ }
};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
exception_codes__head = exception_code_root::effect,
- effect_D3DX10CreateEffectFromFile_Failed
+ effect_D3DX10CreateEffectFromFile_Failed,
+ get_technique_Failed
};
/// Constructor Param //////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
+ technique get_technique(const char* name)
+ {
+ d3dtechnique* d3dtech = m_if->GetTechniqueByName(name);
+ if ( d3dtech == NULL ){
+ throw exception(get_technique_Failed,
+ ::std::string("GetTechniqueByName() unknown technique ")+name);
+ }
+ return technique(d3dtech);
+ }
};
///////////////////////////////////////////////////////////////////////////