-
Notifications
You must be signed in to change notification settings - Fork 44
Description
TexClampMode in BSEffectShaderProperty is currently interpreted as an integer rather than an enum value. It cannot be intepreted as an member of the existing TexClampMode due to that being stored as an uint and the adjacent fields in the BSEffectShaderProperty.
Preferably, it should be possible to find a way to keep the access to the tex clamp mode uniform across the BSLightingShaderProperties and return the same type.
One possible solution would be to create a bitfield to be used in both places.
<bitfield name="TextureProperties" storage="uint">
<member width="1" pos="0" mask="0x01" name="wrap t" type="bool" />
<member width="1" pos="1" mask="0x02" name="wrap s" type="bool" />
<member width="8" pos="8" mask="0xFF00" name="Lighting Influence" type="byte" />
<member width="8" pos="16" mask="0xFF0000" name="Env Map Min LOD" type="byte" />
</bitfield>or even two, with the second one missing the extra members like so:
<bitfield name="TextureProperties" storage="uint">
<member width="1" pos="0" mask="0x01" name="wrap t" type="bool" />
<member width="1" pos="1" mask="0x02" name="wrap s" type="bool" />
</bitfield>In order to prevent access to members that the rest don't have/are non-functional.
However, I want to hold off on this while the niftools addon is being overhauled. Also, since I don't actually know what the extra bytes do other than going off their name, I don't yet know of a meaningful name to assign to the field.