Class Attribute
java.lang.Object
gaiasky.util.gdx.shader.attribute.Attribute
- All Implemented Interfaces:
Comparable<Attribute>
- Direct Known Subclasses:
BlendingAttribute,ColorAttribute,CubemapAttribute,DepthTestAttribute,DirectionalLightsAttribute,FloatAttribute,IntAttribute,Matrix3Attribute,Matrix4Attribute,PointLightsAttribute,SpotLightsAttribute,TextureAttribute,Vector2Attribute,Vector3Attribute,Vector4Attribute
Extend this class to implement a material attribute. Register the attribute type by statically calling the
register(String) method, whose return value should be used to instantiate the attribute. A class can implement
multiple types.
Modified to use Bits instead of a long to store the attribute types. A long only allows for 64 attributes, while the
solution implemented here enables an unlimited number of them.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract Attributecopy()protected booleanbooleanstatic final StringgetAttributeAlias(Bits type) static final intgetAttributeIndex(Bits type) static final intgetAttributeIndex(String alias) static final BitsgetAttributeType(String alias) static intstatic com.badlogic.gdx.utils.Array<String>getTypes()booleanhas(int index) inthashCode()protected static final intCall this method to register a custom attribute type, see the wiki for an example.toString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Comparable
compareTo
-
Field Details
-
type
The type of this attribute -
index
public final int index
-
-
Constructor Details
-
Attribute
protected Attribute(int index)
-
-
Method Details
-
getAttributeType
- Returns:
- The ID of the specified attribute type, or zero if not available
-
getAttributeAlias
- Returns:
- The alias of the specified attribute type, or null if not available.
-
getAttributeIndex
- Returns:
- The index of the specified attribute type, or -1 if not available.
-
getAttributeIndex
- Returns:
- The index of the specified attribute alias, or -1 if not available.
-
register
Call this method to register a custom attribute type, see the wiki for an example. If the alias already exists, then that ID will be reused. The alias should be unambiguous and will by default be returned by the call totoString().- Parameters:
alias- The alias of the type to register, must be different for each direct type, will be used for debugging.- Returns:
- the index of the newly registered type, or the index of the existing type if the alias was already registered.
-
getNumAttributes
public static int getNumAttributes() -
getTypes
-
has
public boolean has(int index) -
copy
- Returns:
- An exact copy of this attribute
-
equals
-
equals
-
toString
-
hashCode
public int hashCode()
-