Loop over enums to create constants

This commit is contained in:
Andrew Murray 2023-10-17 19:50:17 +11:00
parent 5e9a2e3000
commit 51f7359c94

View File

@ -11,6 +11,7 @@ Full text of the CC0 license:
""" """
import io import io
import struct import struct
import sys
from enum import IntEnum, IntFlag from enum import IntEnum, IntFlag
from . import Image, ImageFile, ImagePalette from . import Image, ImageFile, ImagePalette
@ -263,62 +264,43 @@ class D3DFMT(IntEnum):
# Backward compat layer # Backward compat layer
DDSD_CAPS = DDSD.CAPS module = sys.modules[__name__]
DDSD_HEIGHT = DDSD.HEIGHT for item in DDSD:
DDSD_WIDTH = DDSD.WIDTH setattr(module, "DDSD_" + item.name, item.value)
DDSD_PITCH = DDSD.PITCH for item in DDSCAPS:
DDSD_PIXELFORMAT = DDSD.PIXELFORMAT setattr(module, "DDSCAPS_" + item.name, item.value)
DDSD_MIPMAPCOUNT = DDSD.MIPMAPCOUNT for item in DDSCAPS2:
DDSD_LINEARSIZE = DDSD.LINEARSIZE setattr(module, "DDSCAPS2_" + item.name, item.value)
DDSD_DEPTH = DDSD.DEPTH for item in DDPF:
setattr(module, "DDPF_" + item.name, item.value)
DDSCAPS_COMPLEX = DDSCAPS.COMPLEX DDS_FOURCC = DDPF.FOURCC
DDSCAPS_TEXTURE = DDSCAPS.TEXTURE DDS_RGB = DDPF.RGB
DDSCAPS_MIPMAP = DDSCAPS.MIPMAP DDS_RGBA = DDPF.RGB | DDPF.ALPHAPIXELS
DDS_LUMINANCE = DDPF.LUMINANCE
DDS_LUMINANCEA = DDPF.LUMINANCE | DDPF.ALPHAPIXELS
DDS_ALPHA = DDPF.ALPHA
DDS_PAL8 = DDPF.PALETTEINDEXED8
DDSCAPS2_CUBEMAP = DDSCAPS2.CUBEMAP DDS_HEADER_FLAGS_TEXTURE = DDSD.CAPS | DDSD.HEIGHT | DDSD.WIDTH | DDSD.PIXELFORMAT
DDSCAPS2_CUBEMAP_POSITIVEX = DDSCAPS2.CUBEMAP_POSITIVEX DDS_HEADER_FLAGS_MIPMAP = DDSD.MIPMAPCOUNT
DDSCAPS2_CUBEMAP_NEGATIVEX = DDSCAPS2.CUBEMAP_NEGATIVEX DDS_HEADER_FLAGS_VOLUME = DDSD.DEPTH
DDSCAPS2_CUBEMAP_POSITIVEY = DDSCAPS2.CUBEMAP_POSITIVEY DDS_HEADER_FLAGS_PITCH = DDSD.PITCH
DDSCAPS2_CUBEMAP_NEGATIVEY = DDSCAPS2.CUBEMAP_NEGATIVEY DDS_HEADER_FLAGS_LINEARSIZE = DDSD.LINEARSIZE
DDSCAPS2_CUBEMAP_POSITIVEZ = DDSCAPS2.CUBEMAP_POSITIVEZ
DDSCAPS2_CUBEMAP_NEGATIVEZ = DDSCAPS2.CUBEMAP_NEGATIVEZ
DDSCAPS2_VOLUME = DDSCAPS2.VOLUME
DDPF_ALPHAPIXELS = DDPF.ALPHAPIXELS DDS_HEIGHT = DDSD.HEIGHT
DDPF_ALPHA = DDPF.ALPHA DDS_WIDTH = DDSD.WIDTH
DDPF_FOURCC = DDPF.FOURCC
DDPF_PALETTEINDEXED8 = DDPF.PALETTEINDEXED8
DDPF_RGB = DDPF.RGB
DDPF_LUMINANCE = DDPF.LUMINANCE
DDS_FOURCC = DDPF_FOURCC DDS_SURFACE_FLAGS_TEXTURE = DDSCAPS.TEXTURE
DDS_RGB = DDPF_RGB DDS_SURFACE_FLAGS_MIPMAP = DDSCAPS.COMPLEX | DDSCAPS.MIPMAP
DDS_RGBA = DDPF_RGB | DDPF_ALPHAPIXELS DDS_SURFACE_FLAGS_CUBEMAP = DDSCAPS.COMPLEX
DDS_LUMINANCE = DDPF_LUMINANCE
DDS_LUMINANCEA = DDPF_LUMINANCE | DDPF_ALPHAPIXELS
DDS_ALPHA = DDPF_ALPHA
DDS_PAL8 = DDPF_PALETTEINDEXED8
DDS_HEADER_FLAGS_TEXTURE = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT DDS_CUBEMAP_POSITIVEX = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_POSITIVEX
DDS_HEADER_FLAGS_MIPMAP = DDSD_MIPMAPCOUNT DDS_CUBEMAP_NEGATIVEX = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_NEGATIVEX
DDS_HEADER_FLAGS_VOLUME = DDSD_DEPTH DDS_CUBEMAP_POSITIVEY = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_POSITIVEY
DDS_HEADER_FLAGS_PITCH = DDSD_PITCH DDS_CUBEMAP_NEGATIVEY = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_NEGATIVEY
DDS_HEADER_FLAGS_LINEARSIZE = DDSD_LINEARSIZE DDS_CUBEMAP_POSITIVEZ = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_POSITIVEZ
DDS_CUBEMAP_NEGATIVEZ = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_NEGATIVEZ
DDS_HEIGHT = DDSD_HEIGHT
DDS_WIDTH = DDSD_WIDTH
DDS_SURFACE_FLAGS_TEXTURE = DDSCAPS_TEXTURE
DDS_SURFACE_FLAGS_MIPMAP = DDSCAPS_COMPLEX | DDSCAPS_MIPMAP
DDS_SURFACE_FLAGS_CUBEMAP = DDSCAPS_COMPLEX
DDS_CUBEMAP_POSITIVEX = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEX
DDS_CUBEMAP_NEGATIVEX = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEX
DDS_CUBEMAP_POSITIVEY = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEY
DDS_CUBEMAP_NEGATIVEY = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEY
DDS_CUBEMAP_POSITIVEZ = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEZ
DDS_CUBEMAP_NEGATIVEZ = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEZ
DXT1_FOURCC = D3DFMT.DXT1 DXT1_FOURCC = D3DFMT.DXT1
DXT3_FOURCC = D3DFMT.DXT3 DXT3_FOURCC = D3DFMT.DXT3
@ -405,7 +387,7 @@ class DdsImageFile(ImageFile.ImageFile):
else: else:
msg = f"Unsupported bitcount {bitcount} for {pfflags_}" msg = f"Unsupported bitcount {bitcount} for {pfflags_}"
raise OSError(msg) raise OSError(msg)
elif pfflags & DDPF_PALETTEINDEXED8: elif pfflags & DDPF.PALETTEINDEXED8:
self._mode = "P" self._mode = "P"
self.palette = ImagePalette.raw("RGBA", self.fp.read(1024)) self.palette = ImagePalette.raw("RGBA", self.fp.read(1024))
self.tile = [("raw", (0, 0) + self.size, 0, "L")] self.tile = [("raw", (0, 0) + self.size, 0, "L")]