#ifndef COMPILER_TRANSLATOR_STATIC_TYPE_H_
#define COMPILER_TRANSLATOR_STATIC_TYPE_H_
#include "compiler/translator/Types.h"
namespace sh
{
namespace StaticType
{
namespace Helpers
{
static constexpr size_t kStaticMangledNameLength = …;
struct StaticMangledName
{ … };
constexpr StaticMangledName BuildStaticMangledName(TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
uint8_t primarySize,
uint8_t secondarySize)
{ … }
static constexpr size_t kStaticArrayMangledNameLength = …;
struct StaticArrayMangledName
{ … };
constexpr StaticArrayMangledName BuildStaticArrayMangledName(TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
uint8_t primarySize,
uint8_t secondarySize,
const unsigned int *arraySizes,
size_t numArraySizes)
{ … }
kMangledNameInstance;
kMangledNameArrayInstance;
instance;
arrayInstance;
}
template <TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
uint8_t primarySize,
uint8_t secondarySize>
constexpr const TType *Get()
{ … }
template <TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
uint8_t primarySize,
uint8_t secondarySize,
const unsigned int *arraySizes,
size_t numArraySizes>
constexpr const TType *GetArray()
{ … }
template <TBasicType basicType,
TPrecision precision,
uint8_t primarySize = 1,
uint8_t secondarySize = 1>
constexpr const TType *GetBasic()
{ … }
template <TBasicType basicType,
TPrecision precision,
uint8_t primarySize = 1,
uint8_t secondarySize = 1>
constexpr const TType *GetTemporary()
{ … }
template <TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
uint8_t primarySize = 1,
uint8_t secondarySize = 1>
constexpr const TType *GetQualified()
{ … }
namespace Helpers
{
template <TBasicType basicType, TPrecision precision, TQualifier qualifier, uint8_t secondarySize>
constexpr const TType *GetForVecMatHelper(uint8_t primarySize)
{ … }
}
template <TBasicType basicType, TPrecision precision, TQualifier qualifier = EvqGlobal>
constexpr const TType *GetForVecMat(uint8_t primarySize, uint8_t secondarySize = 1)
{ … }
template <TBasicType basicType, TPrecision precision>
constexpr const TType *GetForVec(TQualifier qualifier, uint8_t size)
{ … }
}
}
#endif