| 101 | |
| 102 | |
| 103 | class ShaderRegister(object): |
| 104 | def __init__(self, stream, version, stage): |
| 105 | self.register_type = stream.read_uint8() |
| 106 | if version <= 9: |
| 107 | if self.register_type == 0: |
| 108 | self.register_type = 0 |
| 109 | elif self.register_type == 1: |
| 110 | self.register_type = 36 |
| 111 | elif self.register_type == 2: |
| 112 | self.register_type = 68 |
| 113 | elif self.register_type == 3: |
| 114 | self.register_type = 1 |
| 115 | else: |
| 116 | self.register_type = 36 |
| 117 | self.register_index = stream.read_uint32() |
| 118 | if version > 12: |
| 119 | self.array_count = stream.read_uint32() |
| 120 | self.register_space = stream.read_uint8() |
| 121 | else: |
| 122 | self.array_count = 1 |
| 123 | self.register_space = stage |
| 124 | |
| 125 | |
| 126 | _TRINITY_FLOAT_PARAMETERS = {1: 'Tr2FloatParameter', 2: 'Tr2Vector2Parameter', 3: 'Tr2Vector3Parameter', |