本文整理汇总了C++中ref_ptr::AddShader方法的典型用法代码示例。如果您正苦于以下问题:C++ ref_ptr::AddShader方法的具体用法?C++ ref_ptr::AddShader怎么用?C++ ref_ptr::AddShader使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ref_ptr
的用法示例。
在下文中一共展示了ref_ptr::AddShader方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateTailorScene
void CreateTailorScene()
{
// Load shaders
try
{
ref_ptr<Shader> tailorShader( CreateShaderFromFile(device, Shader::FRAGMENT, "data/Shaders/tailor.frag" ASSET_MANAGER) );
if (!tailorShader) {
throw std::runtime_error("Shader file not loaded");
}
tailorProgram.reset( device->CreateProgram() );
tailorProgram->AddShader( transformShader.get() );
tailorProgram->AddShader( tailorShader.get() );
if ( SGL_OK != tailorProgram->Dirty() ) {
throw std::runtime_error("Shader program not compiled");
}
tailorUniformMVP = tailorProgram->GetUniform4x4F("modelViewProjectionMatrix");
tailorColorUniform = tailorProgram->GetUniform4F("color");
tailorUniformA = tailorProgram->GetUniformF("a");
tailorUniformB = tailorProgram->GetUniformF("b");
tailorUniformC = tailorProgram->GetUniformF("c");
tailorUniformDensity = tailorProgram->GetUniformF("density");
assert( tailorUniformA );
assert( tailorUniformB );
assert( tailorUniformC );
assert( tailorUniformDensity );
int posLoc = tailorProgram->AttributeLocation("vp_position");
VertexLayout::ELEMENT elements[] =
{
{posLoc, 2, 0, 8, FLOAT, VertexLayout::ATTRIBUTE},
};
vertexLayout.reset( device->CreateVertexLayout(1, elements) );
//tailorUniformA->SetValue(-0.7);
//tailorUniformB->SetValue(0.5);
}
catch(std::runtime_error& err)
{
LOGE(err.what());
}
}