本文整理汇总了C++中QOpenGLFunctions_2_1::glLightfv方法的典型用法代码示例。如果您正苦于以下问题:C++ QOpenGLFunctions_2_1::glLightfv方法的具体用法?C++ QOpenGLFunctions_2_1::glLightfv怎么用?C++ QOpenGLFunctions_2_1::glLightfv使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QOpenGLFunctions_2_1
的用法示例。
在下文中一共展示了QOpenGLFunctions_2_1::glLightfv方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MakeLightsNeutral
void ccMaterial::MakeLightsNeutral(const QOpenGLContext* context)
{
//get the set of OpenGL functions (version 2.1)
QOpenGLFunctions_2_1* glFunc = context->versionFunctions<QOpenGLFunctions_2_1>();
assert(glFunc != nullptr);
if (glFunc == nullptr)
return;
GLint maxLightCount;
glFunc->glGetIntegerv(GL_MAX_LIGHTS, &maxLightCount);
for (int i = 0; i < maxLightCount; ++i)
{
if (glFunc->glIsEnabled(GL_LIGHT0 + i))
{
float diffuse[4];
float ambiant[4];
float specular[4];
glFunc->glGetLightfv(GL_LIGHT0 + i, GL_DIFFUSE, diffuse);
glFunc->glGetLightfv(GL_LIGHT0 + i, GL_AMBIENT, ambiant);
glFunc->glGetLightfv(GL_LIGHT0 + i, GL_SPECULAR, specular);
diffuse[0] = diffuse[1] = diffuse[2] = ( diffuse[0] + diffuse[1] + diffuse[2]) / 3; //'mean' (gray) value
ambiant[0] = ambiant[1] = ambiant[2] = ( ambiant[0] + ambiant[1] + ambiant[2]) / 3; //'mean' (gray) value
specular[0] = specular[1] = specular[2] = (specular[0] + specular[1] + specular[2]) / 3; //'mean' (gray) value
glFunc->glLightfv(GL_LIGHT0 + i, GL_DIFFUSE, diffuse);
glFunc->glLightfv(GL_LIGHT0 + i, GL_AMBIENT, ambiant);
glFunc->glLightfv(GL_LIGHT0 + i, GL_SPECULAR, specular);
}
}
}