GlassHardware enum

The device family whose measurements apply.

One declaration, two questions. Declaring the wrong one is not a crash: it makes the package quote a price that belongs to another device. The choices — the proxy's divisor, whether slots merge — no longer depend on it at all: they are made on quality, and the lever they pull has the same sign on every family measured, the unmeasured one included (D136).

Inheritance
Available extensions

Values

adrenoVulkan → const GlassHardware

Adreno 830 / Impeller-Vulkan, which is where every cycle number in this project comes from (SM-S938B).

Declaring this on another Adreno is an extrapolation the host owns: the laws were fitted on one chip. Declaring it on a Mali or an Xclipse is wrong in a way that shows up as a proxy recorded at a quarter of the resolution for a saving nobody has seen.

appleMetal → const GlassHardware

Apple Metal, measured on an M2 iPad Pro on iOS 26 (D56, D71, D119, D128).

The one family where our whole route has been measured against its own floor rather than assembled out of other people's grids, and where the assembled estimate turned out to be wrong (D63 against D127).

unmeasured → const GlassHardware

Anything else, which is most things — every Android device a silent host runs on. Every price refuses; the choices do not.

They used to. "The conservative end of every policy" was full resolution and no merging, and the first unmeasured device anybody ran got 37 fps from it where a quarter gets 115 and the stock Material 120 (D134). Two refusals made for one reason multiplied into an atlas larger than the screen it sampled (D135). The conservative end of a lever whose sign is measured on every family is the pulled end.

Properties

captureCostModel → ProxyCostModel
How this hardware charges for a capture — the input ProxyResolutionPolicy.choose needs.
no setter
hashCode → int
The hash code for this object.
no setterinherited
index → int
A numeric identifier for the enumerated value.
no setterinherited
maxTextureSide → int
The largest texture this family is guaranteed to allocate, in device pixels a side — the bound AtlasLayout.fitsTexture is asked about (D186).
no setter
name → String

Available on Enum, provided by the EnumName extension

The name of the enum value.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
surfaceCostModel → GlassSurfaceCostModel
Which measurements the glass ledger reads itself against.
no setter

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

detect() → GlassHardware
What can be told without the host saying anything.

Constants

values → const List<GlassHardware>
A constant List of the values in this enum, in order of their declaration.