From 18461fee44a7fd733b3949edba7f76bae1d882d4 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Mon, 6 Dec 2021 03:46:18 -0600 Subject: [PATCH] Fixes for Qt6 --- src/DDS/DDSDefinitions.py | 359 ++++++++++++++++++++++++++------------ src/DDS/DDSFile.py | 109 +++++++----- src/DDS/glstuff.py | 12 +- src/DDSPreview.py | 163 +++++++++-------- 4 files changed, 403 insertions(+), 240 deletions(-) diff --git a/src/DDS/DDSDefinitions.py b/src/DDS/DDSDefinitions.py index 37f7b8c..a058370 100644 --- a/src/DDS/DDSDefinitions.py +++ b/src/DDS/DDSDefinitions.py @@ -5,12 +5,14 @@ from typing import ClassVar, List from .glstuff import GL_IMAGE_FORMAT, CompressedGLTextureFormat, UncompressedGLTextureFormat -DDS_MAGIC_NUMBER = b"DDS " #b"\x20\x53\x44\x44" +DDS_MAGIC_NUMBER = b"DDS " # b"\x20\x53\x44\x44" + class IntEnumFromZero(IntEnum): def _generate_next_value_(name, start, count, last_values): return count + class D3D10_RESOURCE_DIMENSION(IntEnumFromZero): D3D10_RESOURCE_DIMENSION_UNKNOWN = auto() D3D10_RESOURCE_DIMENSION_BUFFER = auto() @@ -18,6 +20,7 @@ class D3D10_RESOURCE_DIMENSION(IntEnumFromZero): D3D10_RESOURCE_DIMENSION_TEXTURE2D = auto() D3D10_RESOURCE_DIMENSION_TEXTURE3D = auto() + class DXGI_FORMAT(IntEnumFromZero): DXGI_FORMAT_UNKNOWN = auto() DXGI_FORMAT_R32G32B32A32_TYPELESS = auto() @@ -139,18 +142,18 @@ class DXGI_FORMAT(IntEnumFromZero): DXGI_FORMAT_V208 = auto() DXGI_FORMAT_V408 = auto() DXGI_FORMAT_FORCE_UINT = auto() - + def DataclassFromBytes(dataclass): class LoadableDataclass(dataclass): - def __init__(self, bytes = None): + def __init__(self, bytes=None): super(LoadableDataclass, self).__init__() if bytes: self.fromBytes(bytes) - + def fromStream(self, byteStream): self.fromBytes(byteStream.read(struct.calcsize(self.structFormat))) - + def fromBytes(self, bytes): loaded = struct.unpack(self.structFormat, bytes) fields = dataclasses.fields(self) @@ -167,14 +170,15 @@ def DataclassFromBytes(dataclass): else: self.__dict__[field.name] = field.type(loaded[memberIndex]) memberIndex += 1 - + return LoadableDataclass + @DataclassFromBytes @dataclasses.dataclass class DDS_PIXELFORMAT: structFormat: ClassVar[str] = "