MCPcopy Create free account
hub / github.com/carbonengine/trinity / Constant

Class Constant

shadercompiler/python/shadercompiler/effectinfo.py:130–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

128
129
130class Constant(object):
131 def __init__(self, stream, string_table, version):
132 self.name = string_table.get_string(stream.read_uint32())
133 self.offset = stream.read_uint32()
134 self.size = stream.read_uint32()
135 self.type = stream.read_uint8()
136 if version < 11:
137 if self.type in (0, 1):
138 pass
139 elif self.type == 2:
140 self.type = 3
141 else:
142 self.type = 4
143 self.dimension = stream.read_uint8()
144 self.elements = stream.read_uint32()
145 self.is_srgb = stream.read_uint8() != 0
146 self.is_autoregister = stream.read_uint8() != 0
147 self.default_value = None
148 self.trinity_type = None
149 if self.type == 0: # float
150 if self.elements > 1:
151 self.trinity_type = 'TriFloatArrayParameter'
152 else:
153 if self.dimension == 16 and 'Reflection' in self.name:
154 self.trinity_type = 'TriVariableParameter'
155 else:
156 self.trinity_type = _TRINITY_FLOAT_PARAMETERS.get(self.dimension)
157
158 def read_default_value(self, data):
159 if self.type == 0:
160 value = []
161 if self.elements > 1:
162 for i in range(self.elements):
163 value.append(struct.unpack_from('f', data, self.offset + 4 * i)[0])
164 self.default_value = value
165 else:
166 for i in range(self.dimension):
167 try:
168 value.append(struct.unpack_from('f', data, self.offset + 4 * i)[0])
169 except struct.error:
170 value.append(0.0)
171 if self.dimension == 16:
172 self.default_value = tuple(value[0:4]), tuple(value[4:9]), tuple(value[8:13]), tuple(value[12:16])
173 elif self.dimension == 1:
174 self.default_value = value[0]
175 else:
176 self.default_value = tuple(value)
177
178
179class Resource(object):

Callers 2

__init__Method · 0.70
__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected