|
27 | 27 | def simplified_tex_update(self, context): |
28 | 28 | from fast64_internal.f3d.f3d_material import setAutoProp |
29 | 29 |
|
30 | | - tex_size = self.get_tex_size() |
| 30 | + tex_size = self.tex_size |
31 | 31 | if self.tex is not None and self.autoprop: |
32 | 32 | setAutoProp(self.S, tex_size[0]) |
33 | 33 | setAutoProp(self.T, tex_size[1]) |
@@ -84,15 +84,44 @@ class TextureProperty(PropertyGroup): |
84 | 84 | menu: bpy.props.BoolProperty() |
85 | 85 | autoprop: bpy.props.BoolProperty( |
86 | 86 | name="Autoprop", |
87 | | - default=True, |
88 | 87 | update=simplified_tex_update, |
| 88 | + default=True, |
89 | 89 | ) |
90 | 90 |
|
91 | | - def get_tex_size(self) -> list[int]: |
92 | | - if self.tex: |
93 | | - return self.tex.size |
| 91 | + @property |
| 92 | + def is_ci(self): |
| 93 | + self.tex_format: str |
| 94 | + return self.tex_format.startswith("CI") |
| 95 | + |
| 96 | + @property |
| 97 | + def is_set(self): |
| 98 | + return self.tex_set and (self.use_tex_reference or self.tex is not None) |
| 99 | + |
| 100 | + @property |
| 101 | + def tlut_mode(self): |
| 102 | + return f"G_TT_{self.ci_format if self.is_ci else 'NONE'}" |
| 103 | + |
| 104 | + @property |
| 105 | + def tex_size(self) -> list[int]: |
| 106 | + if self.tex or self.use_tex_reference: |
| 107 | + if self.tex is not None: |
| 108 | + return list(self.tex.size) |
| 109 | + else: |
| 110 | + return list(self.tex_reference_size) |
94 | 111 | return [0, 0] |
95 | 112 |
|
| 113 | + @property |
| 114 | + def word_usage(self): |
| 115 | + return getTmemWordUsage(self.tex_format, *self.tex_size) |
| 116 | + |
| 117 | + @property |
| 118 | + def format_type(self): |
| 119 | + return texFormatOf[self.tex_format][len("G_IM_FMT_") :] |
| 120 | + |
| 121 | + @property |
| 122 | + def format_size(self): |
| 123 | + return bitSizeDict[texBitSizeF3D[self.tex_format]] |
| 124 | + |
96 | 125 | def draw_default_ui(self, layout: bpy.types.UILayout, index: int): |
97 | 126 | def small_split(layout, prop: str, name: str): |
98 | 127 | split = layout.split(factor=0.25) |
|
0 commit comments