Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion material/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ def f64_material_parse(f3d_mat: "F3DMaterialProperty", always_set: bool, set_lig
elif use_tex0 or use_tex1:
uv_basis = 0 if use_tex0 else 1
if uv_basis is not None:
state.tex_size = tuple(getattr(f3d_mat, f"tex{uv_basis}").get_tex_size())
state.tex_size = tuple(getattr(f3d_mat, f"tex{uv_basis}").tex_size)

if cc_uses["Texture 0"] and cc_uses["Texture 1"]:
state.mip_count = f3d_mat.rdp_settings.num_textures_mipmapped - 1
Expand Down
39 changes: 34 additions & 5 deletions properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
def simplified_tex_update(self, context):
from fast64_internal.f3d.f3d_material import setAutoProp

tex_size = self.get_tex_size()
tex_size = self.tex_size
if self.tex is not None and self.autoprop:
setAutoProp(self.S, tex_size[0])
setAutoProp(self.T, tex_size[1])
Expand Down Expand Up @@ -84,15 +84,44 @@ class TextureProperty(PropertyGroup):
menu: bpy.props.BoolProperty()
autoprop: bpy.props.BoolProperty(
name="Autoprop",
default=True,
update=simplified_tex_update,
default=True,
)

def get_tex_size(self) -> list[int]:
if self.tex:
return self.tex.size
@property
def is_ci(self):
self.tex_format: str
return self.tex_format.startswith("CI")

@property
def is_set(self):
return self.tex_set and (self.use_tex_reference or self.tex is not None)

@property
def tlut_mode(self):
return f"G_TT_{self.ci_format if self.is_ci else 'NONE'}"

@property
def tex_size(self) -> list[int]:
if self.tex or self.use_tex_reference:
if self.tex is not None:
return list(self.tex.size)
else:
return list(self.tex_reference_size)
return [0, 0]

@property
def word_usage(self):
return getTmemWordUsage(self.tex_format, *self.tex_size)

@property
def format_type(self):
return texFormatOf[self.tex_format][len("G_IM_FMT_") :]

@property
def format_size(self):
return bitSizeDict[texBitSizeF3D[self.tex_format]]

def draw_default_ui(self, layout: bpy.types.UILayout, index: int):
def small_split(layout, prop: str, name: str):
split = layout.split(factor=0.25)
Expand Down