HRESULT c_gbuffer_rtclear_effect::AllocateResources(IDirect3DDevice9* device, uint32 width, uint32 height) { c_gbuffer_fullscreen_effect::AllocateResources(device, width, height); m_multi_rt.clear_technique = GetTechnique(m_effect, m_multi_rt.count, "Clear", "ALL"); return (IsAvailable() ? S_OK : E_FAIL); }
void Context::GfxUpdate() { this->Update(); if( gGFXINIT ) { gGFXINIT = false; auto fxi = gfxtarget.FXI(); fx_distort = new lev2::FxShader; fxstring256 shader_path; shader_path.format("data/distort.glfx"); fxi->LoadFxShader( shader_path.c_str(), fx_distort ); tek_distort = fxi->GetTechnique(fx_distort,"tek_distort"); assert( tek_distort!=nullptr ); bool ok = fxi->BindTechnique(fx_distort,tek_distort); assert(ok); par_mvp = fxi->GetParameterH( fx_distort, "mtx_wvp" ); par_texms = fxi->GetParameterH( fx_distort, "ImageMS" ); par_llctr = fxi->GetParameterH( fx_distort, "LeftLensCenter" ); par_rlctr = fxi->GetParameterH( fx_distort, "RightLensCenter" ); par_lsctr = fxi->GetParameterH( fx_distort, "LeftScreenCenter" ); par_rsctr = fxi->GetParameterH( fx_distort, "RightScreenCenter" ); par_fbosiz = fxi->GetParameterH( fx_distort, "FboSize" ); par_cbufsiz = fxi->GetParameterH( fx_distort, "CompbufferSize" ); par_chromab = fxi->GetParameterH( fx_distort, "chromab" ); assert( par_mvp!=nullptr ); assert( par_texms!=nullptr ); assert( par_llctr!=nullptr ); assert( par_rlctr!=nullptr ); assert( par_lsctr!=nullptr ); assert( par_rsctr!=nullptr ); assert( par_fbosiz!=nullptr ); assert( par_cbufsiz!=nullptr ); assert( par_chromab!=nullptr ); ////////////////////////////////////////// mrt_l = new RtGroup(&gfxtarget,fbo_w,fbo_h,8); mrt_r = new RtGroup(&gfxtarget,fbo_w,fbo_h,8); fbo_left = new RtBuffer(mrt_l,ETGTTYPE_MRT0,EBUFFMT_RGBA32,fbo_w,fbo_h); fbo_left->mClearColor = fvec4(0,0,.1,1); fbo_right = new RtBuffer(mrt_r,ETGTTYPE_MRT0,EBUFFMT_RGBA32,fbo_w,fbo_h); fbo_right->mClearColor = fvec4(.1,0,0,1); ////////////////////////////////////////// } }
peBool proVertBuff::Create(const char* technique, PRO_PRIMITIVE primitive, peInt size) { m_Primitive = primitive; m_Technique = GetTechnique(technique); m_VertSize = GetTechniqueSize(m_Technique); m_VertFormat = GetTechniqueFormat(m_Technique); m_Size = size; m_MemoryYield = GetYield(m_Primitive, m_Size); if( FAILED( g_pAppDef->d3dDevice->CreateVertexBuffer(m_Size*m_VertSize, 0, m_VertFormat, D3DPOOL_DEFAULT, &m_pVertBuffDef->m_vertBuffD3D, NULL) ) ) { assert(0); return false; } return true; }
void Material::SetActiveTechnique(const std::tstring& name) { m_pActiveTechnique = GetTechnique(name); }
void Material::SetActiveTechnique(unsigned int index) { m_pActiveTechnique = GetTechnique(index); }