本文整理汇总了C++中Program::SetUniform方法的典型用法代码示例。如果您正苦于以下问题:C++ Program::SetUniform方法的具体用法?C++ Program::SetUniform怎么用?C++ Program::SetUniform使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Program
的用法示例。
在下文中一共展示了Program::SetUniform方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SwapBuffers
void Game::SwapBuffers() {
Program* p = this->_blitProgram;
if (this->_paused) {
p = this->_blitProgramMap["Sepia"];
}
if (p != NULL && p->ProgramId != 0) {
p->Use();
p->BindTextures();
if (this->_paused) {
p->SetUniform("sepiaRgb", vec3(1.2f, 1.0f, 0.8f));
}
p->SetUniform("iGlobalTime", (float)this->_totalTicks);
p->SetUniform("MVP", GLFuncs::GetInstance()->StaticProjection);
p->SetUniform("iResolution", vec2(this->_g->DisplayWidth, this->_g->DisplayHeight));
}
this->_g->SwapBuffers();
}
示例2: Bind
void Skin::Bind(int flags, Program& program) const {
static const char* names[] = {
"uniTexDiffuse", "uniTexNormal", "uniTexAdd", "uniTexSpec"
};
for(int i = 0; i < NUM_LAYERS; ++i) {
if((1 << i) & flags) {
if(!_textures[i]) COM::log << "Skin::Bind: attempting to bind non-existent texture on layer " << names[i] << std::endl;
else {
program.SetUniform(names[i], i);
_textures[i]->Bind(i);
}
} else {
glx.ActiveTexture(GL_TEXTURE0 + i);
glBindTexture(GL_TEXTURE_2D, 0);
}
}
}