本文整理汇总了C++中ProgramPtr::set_uniform方法的典型用法代码示例。如果您正苦于以下问题:C++ ProgramPtr::set_uniform方法的具体用法?C++ ProgramPtr::set_uniform怎么用?C++ ProgramPtr::set_uniform使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProgramPtr
的用法示例。
在下文中一共展示了ProgramPtr::set_uniform方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
void
Uniform<UniformSymbol>::apply(ProgramPtr prog, const RenderContext& ctx)
{
assert_gl("Uniform<UniformSymbol>::apply:enter");
switch(m_value)
{
case UniformSymbol::NormalMatrix:
prog->set_uniform(m_name, glm::mat3(ctx.get_view_matrix() * ctx.get_model_matrix()));
break;
case UniformSymbol::ViewMatrix:
prog->set_uniform(m_name, ctx.get_view_matrix());
break;
case UniformSymbol::ModelMatrix:
prog->set_uniform(m_name, ctx.get_model_matrix());
break;
case UniformSymbol::ModelViewMatrix:
prog->set_uniform(m_name, ctx.get_view_matrix() * ctx.get_model_matrix());
break;
case UniformSymbol::ProjectionMatrix:
prog->set_uniform(m_name, ctx.get_projection_matrix());
break;
case UniformSymbol::ModelViewProjectionMatrix:
prog->set_uniform(m_name, ctx.get_projection_matrix() * ctx.get_view_matrix() * ctx.get_model_matrix());
break;
default:
log_error("unknown UniformSymbol %d", static_cast<int>(m_value));
break;
}
assert_gl("Uniform<UniformSymbol>::apply:exit");
}
示例2: apply
void apply(ProgramPtr prog, const RenderContext& ctx)
{
prog->set_uniform(m_name, m_value);
}