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

Method _load

shadercompiler/python/shadercompiler/effectinfo.py:595–632  ·  view source on GitHub ↗
(self, path)

Source from the content-addressed store, hash-verified

593 self._load(path)
594
595 def _load(self, path):
596 with open(path, 'rb') as f:
597 data = f.read()
598 self._stream = _StructStream(data)
599 stream = self._stream
600 version = stream.read_uint32()
601 self._version = version
602 if version < 2 or version > 15:
603 raise RuntimeError('unsupported effect file version')
604 if version >= 15:
605 self._compilerVersion = stream.read_uint32()
606 self._sourceHash = stream.read_raw(32)
607 if version < 5:
608 header_size = stream.read_uint32()
609 if header_size == 0:
610 raise RuntimeError('effect file contains no compiled effects')
611 if header_size * 3 * 4 + 4 > stream.remaining():
612 raise RuntimeError('invalid header size')
613 self._offsets = {}
614 for i in range(header_size):
615 key = stream.read_uint32()
616 self._offsets[key] = (stream.read_uint32(), stream.read_uint32())
617 self._string_table = _StringTable(stream)
618 else:
619 self._string_table = _StringTable(stream)
620 permutation_count = stream.read_uint8()
621 self.permutations = []
622 for i in range(permutation_count):
623 self.permutations.append(Permutation(stream, self._string_table, version))
624 header_size = stream.read_uint32()
625 if header_size == 0:
626 raise RuntimeError('effect file contains no compiled effects')
627 if header_size * 3 * 4 + 4 > stream.remaining():
628 raise RuntimeError('invalid header size')
629 self._offsets = {}
630 for i in range(header_size):
631 key = stream.read_uint32()
632 self._offsets[key] = (stream.read_uint32(), stream.read_uint32())
633
634 def get_shader(self, permutation=0):
635 """

Callers 1

__init__Method · 0.95

Calls 8

_StructStreamClass · 0.85
_StringTableClass · 0.85
readMethod · 0.80
read_uint32Method · 0.80
read_rawMethod · 0.80
remainingMethod · 0.80
read_uint8Method · 0.80
PermutationClass · 0.70

Tested by

no test coverage detected