Package icyllis.arc3d.compiler.tree

# Class Type.StructType

java.lang.Object
icyllis.arc3d.compiler.tree.Node
icyllis.arc3d.compiler.tree.Symbol
icyllis.arc3d.compiler.tree.Type
icyllis.arc3d.compiler.tree.Type.StructType

Enclosing class:
  `Type`

public static final class Type.StructType extends Type

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class icyllis.arc3d.compiler.tree.Type

  `Type.AliasType, Type.ArrayType, Type.CoercionCost, Type.Field, Type.GenericType, Type.ImageType, Type.MatrixType, Type.SamplerType, Type.ScalarType, Type.StructType, Type.VectorType`

  ## Nested classes/interfaces inherited from class icyllis.arc3d.compiler.tree.Node

  `Node.ElementKind, Node.ExpressionKind, Node.StatementKind, Node.SymbolKind`

- ## Field Summary

  ### Fields inherited from class icyllis.arc3d.compiler.tree.Type

  `kArray_TypeKind, kBoolean_ScalarKind, kFloat_ScalarKind, kGeneric_TypeKind, kMatrix_TypeKind, kMaxNestingDepth, kNonScalar_ScalarKind, kOther_TypeKind, kSampler_TypeKind, kScalar_TypeKind, kSigned_ScalarKind, kStruct_TypeKind, kUnsigned_ScalarKind, kUnsizedArray, kVector_TypeKind, kVoid_TypeKind`

  ### Fields inherited from class icyllis.arc3d.compiler.tree.Node

  `mPosition`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getComponents()`
  For type that contains scalars, returns the number of scalars.
  `Type.Field[]`
  `getFields()`
  `int`
  `getNestingDepth()`
  If the type is a struct, returns the depth of the most deeply-nested field.
  `boolean`
  `isInterfaceBlock()`
  `boolean`
  `isStruct()`

  ### Methods inherited from class icyllis.arc3d.compiler.tree.Type

  `canCoerceTo, checkLiteralOutOfRange, coerceExpression, convertArraySize, convertArraySize, getArrayName, getArraySize, getCoercibleTypes, getCoercionCost, getCols, getComponentType, getDesc, getDimensions, getElementType, getKind, getMaxValue, getMinValue, getMinWidth, getRank, getRows, getScalarKind, getType, getTypeKind, getWidth, isArray, isArrayed, isBoolean, isBooleanOrCompound, isCombinedSampler, isFloat, isFloatOrCompound, isGeneric, isInBuiltinTypes, isInteger, isMatrix, isMultiSampled, isNumeric, isOpaque, isRelaxedPrecision, isSampled, isScalar, isSeparateSampler, isShadow, isSigned, isSignedOrCompound, isStorageImage, isUnsigned, isUnsignedOrCompound, isUnsizedArray, isUsableInArray, isVector, isVoid, makeAliasType, makeAliasType, makeArrayType, makeCombinedType, makeGenericType, makeImageType, makeMatrixType, makeSamplerType, makeScalarType, makeScalarType, makeSeparateType, makeSpecialType, makeStructType, makeTextureType, makeVectorType, matches, resolve, toCompound, toString, toVector`

  ### Methods inherited from class icyllis.arc3d.compiler.tree.Symbol

  `accept, getName, setName`

  ### Methods inherited from class icyllis.arc3d.compiler.tree.Node

  `getEndOffset, getStartOffset`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### isStruct

    public boolean isStruct()
    Overrides:
      `isStruct` in class `Type`

  - ### isInterfaceBlock

    public boolean isInterfaceBlock()
    Overrides:
      `isInterfaceBlock` in class `Type`

  - ### getFields

    @Nonnull public Type.Field[] getFields()
    Overrides:
      `getFields` in class `Type`

  - ### getComponents

    public int getComponents()
    Description copied from class: `Type`
    For type that contains scalars, returns the number of scalars. For all other types, causes an assertion failure.
    Overrides:
      `getComponents` in class `Type`

  - ### getNestingDepth

    public int getNestingDepth()
    Description copied from class: `Type`
    If the type is a struct, returns the depth of the most deeply-nested field.
    Overrides:
      `getNestingDepth` in class `Type`