import { EnumClass , EnumIO , _from , _fromString } from '../misc/EnumIO' ; export type ShaderVariableUpdateIntervalEnum = EnumIO ; class ShaderVariableUpdateIntervalClass extends EnumClass implements ShaderVariableUpdateIntervalEnum { constructor ( { index , str } ) { super ( { index , str } ) ; } } const FirstTimeOnly = new ShaderVariableUpdateIntervalClass ( { index : 0 , str : 'FirstTimeOnly' } ) ; const EveryTime = new ShaderVariableUpdateIntervalClass ( { index : 1 , str : 'EveryTime' } ) ; const RenderPass = new ShaderVariableUpdateIntervalClass ( { index : 2 , str : 'RenderPass' } ) ; const typeList = [ FirstTimeOnly , EveryTime , RenderPass ] ; function from ( index ) { return _from ( { typeList , index } ) as ShaderVariableUpdateIntervalEnum ; } function fromString ( str ) { return _fromString ( { typeList , str } ) as ShaderVariableUpdateIntervalEnum ; } export const ShaderVariableUpdateInterval = Object . freeze ( { FirstTimeOnly , EveryTime , RenderPass , from , fromString , } ) ;