class DDS: def __init__(self, data:bytes, height:int, width:int) -> None: self.data = bytearray(b'\x44\x44\x53\x20') # DDS magic # Header # Size self.data.extend((124).to_bytes(4, "little")) #flags self.data.extend(b'\x07\x10\x0A\x00') #height self.data.extend((height).to_bytes(4, "little")) #width self.data.extend((width).to_bytes(4, "little")) #pitchOrLinearSize self.data.extend((height*width).to_bytes(4, "little")) #depth self.data.extend((1).to_bytes(4, "little")) #mipMapCount self.data.extend((1).to_bytes(4, "little")) #reserved self.data.extend((0).to_bytes(0x2C, "little")) #dds pixel format #size self.data.extend((32).to_bytes(4, "little")) #flags self.data.extend((4).to_bytes(4, "little")) #fourCC self.data.extend((b'\x44\x58\x31\x30')) #RGBBitCount self.data.extend((0).to_bytes(4, "little")) #masks self.data.extend((0).to_bytes(4, "little")) self.data.extend((0).to_bytes(4, "little")) self.data.extend((0).to_bytes(4, "little")) self.data.extend((0).to_bytes(4, "little")) #caps self.data.extend((0x1000).to_bytes(4, "little")) self.data.extend((0).to_bytes(4, "little")) self.data.extend((0).to_bytes(4, "little")) self.data.extend((0).to_bytes(4, "little")) #reserved self.data.extend((0).to_bytes(4, "little")) #dds Header DXT10 #DXGI Format self.data.extend((99).to_bytes(4, "little")) #resourceDimension self.data.extend((3).to_bytes(4, "little")) #miscFlag self.data.extend((0).to_bytes(4, "little")) #arraySize self.data.extend((1).to_bytes(4, "little")) #miscFlag2 self.data.extend((0).to_bytes(4, "little")) self.data.extend(data) pass