当前位置: 首页>>代码示例>>C++>>正文


C++ initializevariables::InitVariableInfoList类代码示例

本文整理汇总了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);
}
开发者ID:FahimArnob,项目名称:angle,代码行数:9,代码来源:Compiler.cpp

示例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);
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:51,代码来源:Compiler.cpp

示例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);
}
开发者ID:FahimArnob,项目名称:angle,代码行数:24,代码来源:Compiler.cpp


注:本文中的initializevariables::InitVariableInfoList类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。