<div dir="ltr">I don't like the fact that the design which allows the rgba to be different sizes cannot make them vary between float and decimal. The main reason is so that an integer for Alpha can be supported. I think maybe there should be a bit that changes the interpretation of the bit widths to a 16-valued type enumeration. For n-bit integers use n-1 as now, but remove the unusual ones and replace them with floating point and signed types. Use a lookup table to get type + width. I really don't think there are more than 16 of them:<div><br></div><div>8, 16, 32, 64 bit unsigned</div><div>8, 16, 32, 64 bit float<br></div><div>this set leaves 8 unused values, which maybe could be allocated in the future for signed types or 128-bit types. You could also provide a few more unsigned widths (1,2,4,10,12?)</div><div><br></div></div>