本文整理汇总了C++中initializevariables::InitVariableInfoList类的典型用法代码示例。如果您正苦于以下问题:C++ InitVariableInfoList类的具体用法?C++ InitVariableInfoList怎么用?C++ InitVariableInfoList使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了InitVariableInfoList类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initializeGLPosition
void TCompiler::initializeGLPosition(TIntermNode* root)
{
InitializeVariables::InitVariableInfoList variables;
InitializeVariables::InitVariableInfo var(
"gl_Position", TType(EbtFloat, EbpUndefined, EvqPosition, 4));
variables.push_back(var);
InitializeVariables initializer(variables);
root->traverse(&initializer);
}
示例2: initializeVaryingsWithoutStaticUse
void TCompiler::initializeVaryingsWithoutStaticUse(TIntermNode* root)
{
InitializeVariables::InitVariableInfoList variables;
for (size_t ii = 0; ii < varyings.size(); ++ii)
{
const TVariableInfo& varying = varyings[ii];
if (varying.staticUse)
continue;
unsigned char primarySize = 1, secondarySize = 1;
switch (varying.type)
{
case SH_FLOAT:
break;
case SH_FLOAT_VEC2:
primarySize = 2;
break;
case SH_FLOAT_VEC3:
primarySize = 3;
break;
case SH_FLOAT_VEC4:
primarySize = 4;
break;
case SH_FLOAT_MAT2:
primarySize = 2;
secondarySize = 2;
break;
case SH_FLOAT_MAT3:
primarySize = 3;
secondarySize = 3;
break;
case SH_FLOAT_MAT4:
primarySize = 4;
secondarySize = 4;
break;
default:
ASSERT(false);
}
TType type(EbtFloat, EbpUndefined, EvqVaryingOut, primarySize, secondarySize, varying.isArray);
TString name = varying.name.c_str();
if (varying.isArray)
{
type.setArraySize(varying.size);
name = name.substr(0, name.find_first_of('['));
}
InitializeVariables::InitVariableInfo var(name, type);
variables.push_back(var);
}
InitializeVariables initializer(variables);
root->traverse(&initializer);
}
示例3: initializeVaryingsWithoutStaticUse
void TCompiler::initializeVaryingsWithoutStaticUse(TIntermNode* root)
{
InitializeVariables::InitVariableInfoList variables;
for (size_t ii = 0; ii < varyings.size(); ++ii)
{
const sh::Varying& varying = varyings[ii];
if (varying.staticUse)
continue;
unsigned char primarySize = static_cast<unsigned char>(gl::VariableColumnCount(varying.type));
unsigned char secondarySize = static_cast<unsigned char>(gl::VariableRowCount(varying.type));
TType type(EbtFloat, EbpUndefined, EvqVaryingOut, primarySize, secondarySize, varying.isArray());
TString name = varying.name.c_str();
if (varying.isArray())
{
type.setArraySize(varying.arraySize);
name = name.substr(0, name.find_first_of('['));
}
InitializeVariables::InitVariableInfo var(name, type);
variables.push_back(var);
}
InitializeVariables initializer(variables);
root->traverse(&initializer);
}